sklearn代码

sklearn步骤:
1,实例化 2,通过模型接口训练数据 3,通过模型接口提取需要的信息

主要代码:
from sklearn import tree #导入模块
clf = tree.DecisionTreeClassifier() #实例化
clf = clf.fit(x_train, y_train,) #用训练集数据训练模型
result = clf.score(X_test, y_test) #导入测试集,得结果

sklearn用不纯度Criterion来确定确定最佳节点,可选信息熵或者基尼系数作为Criterion

from sklearn import tree          #导入树模块
from sklearn.datasets import load_wine  #导入红酒数据
from sklearn.model_selection import train_test_split   #划分训练集测试集
wine = load_wine()  #下载数据,字典形式
wine.data  #标签列
wine.data.shape
wine.target  #标签列
import pandas as pd
pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)
#连接起来,形成表格式
wine.feature_names  #特征名
wine.target_names   #目标列的类
xtrain,xtest,ytrain,ytest=train_test_split(wine.data,wine.target,test_size=0.3)
#按30%测试集,70%训练集划分数据
xtrain.shape
xtest.shape
clf=tree.DecisionTreeClassifier(criterion='entropy')
#实例化 criterion选择信息增益,默认的是基尼系数
#
#random_state设置了一个随机种子,保证了每次结果输出一致
clf=clf.fit(xtrain,ytrain) #训练模型
score=clf.score(xtest,ytest)  #返回预测的准确度
score
import graphviz
feature_name = ['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']
#特征名转成了中文dot_data = tree.export_graphviz(clf,feature_names = feature_name,class_names=["威士忌","伏特加","琴酒"],filled=True,rounded = True)
#filled - 是否填充颜色
#rounded - 框的形状graph = graphviz.Source(dot_data)
graph
#不纯度为0 时,可以选择出叶子节点clf.feature_importances_
#显示决策树选择的特征,以及其对应的贡献
#没有使用的特征,重要性是0[*zip(feature_name,clf.feature_importances_)]
#将特征的名字和对应的重要性进行匹配
#根节点 类黄酮 贡献最大#训练集上的拟合效果
score_train=clf.score(xtrain,ytrain)
score_train
#不能认为过拟合,因为测试集score也不错

剪枝参数1

正确的剪枝是优化的核心

max_depth 限制树的最大深度,建议从3开始测试

min_samples_leaf 限定n,一个节点在分支后的每个子节点都至少有n个训练样本,建议从5开始

min_samples_split 限定n,一个节点至少有n个训练样本,建议从5开始

#重新生成模型,加上剪枝参数
clf=tree.DecisionTreeClassifier(criterion='entropy',random_state=30,splitter='random',max_depth=3# ,min_samples_leaf=10,min_samples_split=10)
#
clf = clf.fit(xtrain,ytrain) #训练模型
dot_data = tree.export_graphviz(clf,feature_names = feature_name,class_names=["威士忌","伏特加","琴酒"],filled=True,rounded = True)
graph = graphviz.Source(dot_data)
graph
#不纯度为0 时,可以选择出叶子节点#训练集上的拟合效果
score_train=clf.score(xtrain,ytrain)
score_train
#剪枝后的拟合效果score=clf.score(xtest,ytest)
score

剪枝参数2

max_features 限制可以使用的特征数量,例如特征900个太多了

min_impurity_decrease 设定一个阈值,信息增益在小于该阈值时,不再进行分支

确定最优的剪枝参数,最优参数不能一个一个的尝试

# 默认的max_depth是1,但是由于分到最后一个可能会导致过拟合的情况出现,因此经常使用几个常见的剪枝参数来预防过拟合。这边就只用了max_depth这个参数
import matplotlib.pyplot as plt
test=[]
for i in range(10):clf=tree.DecisionTreeClassifier(criterion='entropy',max_depth=i+1,random_state=30)clf=clf.fit(xtrain,ytrain)score=clf.score(xtest,ytest)test.append(score)
plt.plot(range(1,11),test,color='red',label='max_depth')
plt.show()
# 可以看出在3的时候,数据是相对最好的。

目标权重参数

class_weight 给少量的标签更多的权重,让模型更加偏向少数类。 该参数默认None,表示自动给相同的权重
weight_fraction_leaf 对应的剪枝参数

重要属性与接口

属性:模型训练后,能够调用查看模型的各种性质 feature_import sklearn 接口:fit和score apply 和predict
apply返回每个测试样本所在的叶子节点的索引
predict 返回每个测试样本的分类、回归结果

所有接口中要求输入xtest和x_train部分,输入的特征矩阵必须至少至少是一个二维矩阵,不接受一维矩阵!!!!

#apply返回每个测试样本所在的叶子节点的索引
clf.apply(xtest)#predict 返回每个测试样本的分类、回归结果
clf.predict(xtest)

python实现-决策树2-sklearn相关推荐

  1. python利用决策树进行特征选择

    python利用决策树进行特征选择(注释部分为绘图功能),最后输出特征排序: import numpy as np import tflearn from tflearn.layers.core im ...

  2. 监督学习 | 决策树之Sklearn实现

    文章目录 1. Sklearn中决策树的超参数 1.1 最大深度 max_depth 1.2 每片叶子的最小样本数 min_samples_leaf 1.3 每次分裂的最小样本数 min_sample ...

  3. 手把手教你用python实现决策树的策略规则挖掘

    在之前的文章中关于策略涉及内容较多,有基于iv.随机森林筛选策略规则,有xgb挖掘规则的,今天手把手教大家如何用python实现决策树的策略规则挖掘的. 一.项目案例 策略规则的制定与实际业务是分不开 ...

  4. 数据分享|PYTHON用决策树分类预测糖尿病和可视化实例

    全文下载链接:http://tecdat.cn/?p=23848 在本文中,决策树是对例子进行分类的一种简单表示.它是一种有监督的机器学习技术,数据根据某个参数被连续分割.决策树分析可以帮助解决分类和 ...

  5. 【sklearn入门】决策树在sklearn中的实现--实战红酒分类案例

    scikit-learn简介 scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包.它通过NumPy, SciPy和 Matplotlib等python数值 ...

  6. 使用Python、Pandas、Sklearn预测NBA比赛结果

    Abstract: 作为课程作业,下面的内容是利用每场胜负数据.球员的生物数据等进行的NBA比赛预测.内容包括:1. 获得数据 2. 构造特征 3. 学习验证.最后能够提升16%的准确率. 获取数据集 ...

  7. python实现决策树分类模型(小白入门超简单实战)

    注:由于我不喜欢研究机器学习的原理而更关注于实战,所以本文只讲解python实现决策树模型的代码. 数据集:Iris(鸢尾花卉数据集),是一类多重变量分析的数据集.数据集包含150个数据样本,分为3类 ...

  8. 决策树在sklearn中的实现

    1 概述 1.1 决策树是如何工作的 1.2 构建决策树 1.2.1 ID3算法构建决策树 1.2.2 简单实例 1.2.3 ID3的局限性 1.3 C4.5算法 & CART算法 1.3.1 ...

  9. Python进行决策树和随机森林

    Python进行决策树和随机森林 一.决策树 第一步,导入库: 第二步,导入数据: 第三步,数据预处理: 第四步,决策树: 第五步,决策树评价: 第六步,生成决策树图. 二.随机森林 第一步,随机森林 ...

  10. Python中机器学习神器——sklearn模块

    参考文章 Python机器学习笔记:sklearn库的学习 ML神器:sklearn的快速使用 机器学习与Sklearn的初识 传统的机器学习任务从开始到建模的一般流程是:获取数据 → 数据预处理 → ...

最新文章

  1. SpringCloud系列——Zuul 动态路由
  2. 2010年3月4日参加由张应杭老师主讲的关于传统文化的培训-一个有益的PPT分享给大家...
  3. ccf a类期刊_喜报:我院2篇学生论文被CCFA类会议AAAI(2020)接收
  4. eclipse开发android的好处,从Eclipse切换到IntelliJ IDEA for Android开发的好处
  5. python 整数 1字节_Python程序打印代表整数的字节数组
  6. django 模板mysql_59 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用...
  7. 『转』死去度百飞鸽传书
  8. Python gevent学习笔记 1
  9. 直播电商只能卖便宜货吗?
  10. 怎么用bat关闭远程协助计算机,Windows批处理请求远程协助
  11. python是什么 自学-Python怎样自学?
  12. 加速网站速度的最佳做法_(2)把样式表放在顶部
  13. Linux内存管理之页面回收
  14. linux so fprintf,Linux下printf、fprintf、sprintf的区别
  15. SharePoint2016 - How to create App Catalog site?
  16. 《我的第一本思维导图》读书笔记
  17. 如何在数字经济浪潮中脱颖而出?荣联科技集团的创新与转型
  18. RAC学习笔记(2)-DB2和Oracle体系结构
  19. sx html5编辑器,SX HTML5全栈可视编辑器
  20. [编程题] 创造新世界

热门文章

  1. java版我的世界_我的世界Java版1.16
  2. 你肯定想学习的顶级Python项目(附代码)
  3. IBM面试题 50条狗 有病狗 有几条病狗?
  4. ElasticSearch 狂神说
  5. 知识总结--性能优化总结(摘录+转载)
  6. msf之进阶免杀技术,无视360
  7. android 获取drawable 对象,Android 实现将本地资源图片转换成Drawable的方法
  8. python使用pandas模块介绍以及使用,dataframe结构,Series结构,基本数据操作,DataFrame运算,pandas画图,存储,缺失值处理,离散化,合并
  9. 网格建模资源管理(第一次翻译老外的东西,嘿嘿!)
  10. BitTorrent网络中基于Kademlia协议到DHT无服务器泛互联网搜索软件推荐