赞
踩
本项目是分别用ID3算法和CART算法进行决策树模型的配置,训练,然后对“双十一”期间顾客是否买服装的数据集进行分析与预测。其中顾客购买服装数据集包含:review(商品评价变量)、discount(打折程度)、needed(是否必需)、shipping(是否包邮)、buy(是否购买)。
2.实现过程
(1)导入包。
代码如下:
- import pandas as pd
- import numpy as np
- from sklearn import tree
- from sklearn import metrics
- from sklearn.model_selection import train_test_split
(2)读取顾客购买服装的数据集(数据集路径:data/data76088/3_buy.csv),探索数据。
代码如下:
- data = pd.read_csv("data/data76088/3_buy.csv")
- print("data:",data)
(3)划分数据集,测试集。
代码如下:
- x, y = np.split(data, indices_or_sections=(4,), axis=1)
- x_train, x_test, y_train, y_test = train_test_split(
- x, y, test_size=0.30)
- print("x_train.shape:", x_train.shape)
- print("y_train.shape:", y_train.shape)
- print("x_test.shape:", x_test.shape)
- print("y_test.shape:", y_test.shape)
(4)分别用ID3算法和CART算法进行决策树模型的配置、模型的训练、模型的预测、模型的评估。
代码如下:
- clf_CART = tree.DecisionTreeClassifier(
- criterion='gini', max_depth=4) # CART基尼系数
- clf_ID3 = tree.DecisionTreeClassifier(
- criterion='entropy', max_depth=4) # ID3信息熵
- # ### 训练模型
- clf_CART.fit(x_train, y_train) # 模型训练
- clf_ID3.fit(x_train, y_train) # 模型训练
- # ### 模型预测
- predictions_CART = clf_CART.predict(x_test) # 模型测试
- print("predictions_CART", predictions_CART)
- predictions_ID3 = clf_ID3.predict(x_test) # 模型测试
- print("predictions_ID3", predictions_ID3)
- # ### 模型评估
- print('CART的准确率: %s' % accuracy_score(y_test, predictions_CART))
- print('ID3的准确率: %s' % accuracy_score(y_test, predictions_ID3))
(1)问题:ID3算法和CART算法分别有什么特点
ID3 算法计算的是信息增益,信息增益指的就是划分可以带来纯度的提高,信息熵的下降。它可以生成二叉树或多叉树。而 CART 只支持二叉树。同时 CART 决策树比较特殊,既可以作分类树,又可以作回归树。
1.读取顾客购买服装的数据集(数据集路径:data/data76088/3_buy.csv),探索数据。
2.划分数据集,测试集
3.分别用ID3算法和CART算法进行决策树模型的配置、模型的训练、模型的预测、模型的评估
1.通过此实验了解了决策树的典型算法有ID3和CART,了解了ID3和CART模型的配置,模型训练,预测和评估的方法,明白了其区别和各自的特点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。