哪个网站网页做的好看,阜阳做网站多少钱,wordpress适应ie6,企业网站icp是什么Scikit-Learn决策树 1、决策树分类2、Scikit-Learn决策树分类2.1、Scikit-Learn决策树API2.2、Scikit-Learn决策树初体验2.3、Scikit-Learn决策树实践#xff08;葡萄酒分类#xff09; 1、决策树分类 2、Scikit-Learn决策树分类
2.1、Scikit-Learn决策树API 官方文档#… Scikit-Learn决策树 1、决策树分类2、Scikit-Learn决策树分类2.1、Scikit-Learn决策树API2.2、Scikit-Learn决策树初体验2.3、Scikit-Learn决策树实践葡萄酒分类 1、决策树分类 2、Scikit-Learn决策树分类
2.1、Scikit-Learn决策树API 官方文档https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier
中文官方文档https://scikit-learn.org.cn/view/784.html
2.2、Scikit-Learn决策树初体验 下面我们使用Scikit-Learn提供的API制作两个交错的半圆形状数据集来演示Scikit-Learn决策树
1制作数据集
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets# 生成两个交错的半圆形状数据集
X, y datasets.make_moons(noise0.25, random_state666)
plt.scatter(X[y 0, 0], X[y 0, 1])
plt.scatter(X[y 1, 0], X[y 1, 1])
plt.show()2训练决策树分类模型
from sklearn.tree import DecisionTreeClassifier # 决策树分类器# 使用CART分类树的默认参数
dt_clf DecisionTreeClassifier()
# dt_clf DecisionTreeClassifier(max_depth2, max_leaf_nodes4)
# 训练拟合
dt_clf.fit(X, y)3绘制决策边界
# 绘制决策边界
decision_boundary_fill(dt_clf, axis[-1.5, 2.5, -1.0, 1.5])
plt.scatter(X[y 0, 0], X[y 0, 1])
plt.scatter(X[y 1, 0], X[y 1, 1])
plt.show()其中使用到的绘制函数详见文章传送门
当使用CART分类树的默认参数时其决策边界如图所示 由图可见在不加限制的情况下一棵决策树会生长到所有的叶子都是纯净的或者或者没有更多的特征可用为止。这样的决策树往往会过拟合也就是说它在训练集上表现的很好而在测试集上却表现的很糟糕
当我们限制决策树的最大深度max_depth2并且最大叶子节点数max_leaf_nodes4时其决策边界如下图所示 通过限制一些参数对决策树进行剪枝可以让我们的决策树具有更好的泛化性
2.3、Scikit-Learn决策树实践葡萄酒分类 2.3.1、葡萄酒数据集
葡萄酒Wine数据集是来自加州大学欧文分校UCI的公开数据集这些数据是对意大利同一地区种植的葡萄酒进行化学分析的结果。数据集共178个样本包括三个不同品种每个品种的葡萄酒中含有13种成分特征、一个类别标签分别使是0/1/2来代表葡萄酒的三个分类
数据集的属性信息13特征1标签如下
from sklearn.datasets import load_winewine load_wine()
data pd.DataFrame(datawine.data, columnswine.feature_names)
data[class] wine.target
print(data.head().to_string())
alcohol malic_acid ash alcalinity_of_ash magnesium total_phenols flavanoids nonflavanoid_phenols proanthocyanins color_intensity hue od280/od315_of_diluted_wines proline class
0 14.23 1.71 2.43 15.6 127.0 2.80 3.06 0.28 2.29 5.64 1.04 3.92 1065.0 0
1 13.20 1.78 2.14 11.2 100.0 2.65 2.76 0.26 1.28 4.38 1.05 3.40 1050.0 0
2 13.16 2.36 2.67 18.6 101.0 2.80 3.24 0.30 2.81 5.68 1.03 3.17 1185.0 0
3 14.37 1.95 2.50 16.8 113.0 3.85 3.49 0.24 2.18 7.80 0.86 3.45 1480.0 0
4 13.24 2.59 2.87 21.0 118.0 2.80 2.69 0.39 1.82 4.32 1.04 2.93 735.0 0属性/标签说明alcohol酒精含量百分比malic_acid苹果酸含量克/升ash灰分含量克/升alcalinity_of_ash灰分碱度mEq/Lmagnesium镁含量毫克/升total_phenols总酚含量毫克/升flavanoids类黄酮含量毫克/升nonflavanoid_phenols非黄酮酚含量毫克/升proanthocyanins原花青素含量毫克/升color_intensity颜色强度单位absorbancehue色调在1至10之间的一个数字od280/od315_of_diluted_wines稀释葡萄酒样品的光密度比值用于测量葡萄酒中各种化合物的浓度proline脯氨酸含量毫克/升class分类标签class_0(59)、class_1(71)、class_2(48)
数据集的概要信息如下
# 数据集大小
print(wine.data.shape) # (178, 13)
# 标签名称
print(wine.target_names) # [class_0 class_1 class_2]
# 分类标签
print(data.groupby(class)[class].count())class
0 59
1 71
2 48
Name: class, dtype: int64数据集的缺失值情况
# 缺失值无缺失值
print(data.isnull().sum())2.3.2、决策树实践葡萄酒分类 未完待续…