极简sklearn-决策树(一)
前言当前最火爆的人工智能技术应该就是深度学习技术了,有了深度学习,为什么还要使用传统的机器学习技术呢?主要原因,当然是深度学习的成本太高了。深度学习技术需要大量的GPU资源,现在的GPU多贵就不用说了,并且需要大量的数据来喂养,如果数据不足,效果还不如传统的机器学习。深度学习技术最大的优点就是效果出色,如果是计算机视觉,自然语言处理,自动驾驶等领域,肯定首选深度学习技术,如果是其他的分类和回归应用
前言
当前最火爆的人工智能技术应该就是深度学习技术了,有了深度学习,为什么还要使用传统的机器学习技术呢?主要原因,当然是深度学习的成本太高了。深度学习技术需要大量的GPU资源,现在的GPU多贵就不用说了,并且需要大量的数据来喂养,如果数据不足,效果还不如传统的机器学习。
深度学习技术最大的优点就是效果出色,如果是计算机视觉,自然语言处理,自动驾驶等领域,肯定首选深度学习技术,如果是其他的分类和回归应用,完全可以考虑用机器学习算法来实现,毕竟现在有了集成算法和模型融合,机器学习的效果也很好。
环境安装
安装graphviz,在本机搜索里面搜
选中graphviz和python-graphviz进行安装
分类红酒数据集
我们用一个小案例来说明决策树的使用,sklearn使用起来及其简单,一共就四步
- 导入数据集,探索数据,同时切割训练集和测试集
- 实例化模型,参数配置就是在这一步
- 用训练集训练模型
- 使用测试集测试模型效果
首先让我们来探索下红酒数据集
from sklearn import tree #导入决策树模型
from sklearn.datasets import load_wine #导入红酒数据集
from sklearn.model_selection import train_test_split #导入训练集测试集分隔器
wine = load_wine() #加载红酒数据集
打印数据集,可以看到data就是数据,target就是标签,target_names一共3个,说明是三分类的数据集。
wine.data.shape #查看数据维度,返回值第一个数字表示一共多少条数据,第二个表示多少个特征
可以看到一共178条数据,13个特征,数据量不大
接下来切分数据集
#切割数据为训练集,测试集,x表示data(特征),y表示target(标签),test_size表示测试集比例
xtrain, xtest, ytrain, ytest = train_test_split(wine.data, wine.target, test_size=0.3)
print(xtrain.shape)
print(xtest.shape)
第二步,实例化模型
#第二步,实例化模型
clf = tree.DecisionTreeClassifier()
第三步,使用训练集训练模型
#第三步,训练模型
clf.fit(xtrain, ytrain)
第四步,使用测试集测试模型效果
#第四步,测试模型效果
score = clf.score(xtest, ytest)
print(score)
结果:
没进行任何调参,准确率88.8%,还不错,反正比自己瞎猜强。
论模型效果
什么样的模型才是好模型呢?一般从三个维度来衡量
- 模型效果,效果永远是第一位的,比如人脸识别的准确率,没人愿意用时灵时不灵的产品
- 运算速度,速度也很重要,要是一个产品识别一个人脸要一分钟,相信这个产品是没有市场的
- 可解释性,当人工智能决定解雇你的时候,你肯定很想知道为什么,可惜可解释性在AI领域是件可望不可求的事,往往功能越强大的模型,可解释性越差,往后人类需要适应没有原因的结果
可视化决策树
一件可喜的事情是,决策树的可解释性相当好,让我们来展示下决策树
feature_name = ['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']
import graphviz
dot_data = tree.export_graphviz(clf #模型
,feature_names= feature_name #特证名
,class_names=["拉菲","罗曼尼康帝","皇家礼炮"] #标签名
,filled=True #是否填充颜色
,rounded=True #是否圆角
)
graph = graphviz.Source(dot_data)
可以看到,根节点的samples是124个,与训练集数量吻合。当脯氨酸小于765时,进入第二层左边那个节点,可以看到进入这个节点的样本一共77个,有44个是罗曼尼康帝,31个是皇家礼包,所以还不能确定到底是哪个,当类黄酮小于1.4时进入第三层最左边的节点,这时36个样本中有31个皇家礼炮,所以脯氨酸小于765并且类黄酮小于1.4大概率是皇家礼炮了。
PS:皇家礼炮不是威士忌么,怎么变成红酒了?其实这个标签名是我随便写的,因为在机器学习的数据集中,很多数据做了脱敏处理,你既看不到原始数据,也看不到真实的标签名,不过这不影响学习与使用

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)