栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习(9)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习(9)

#先分割数据或现特征工程都可以 取决于结果 一般先分割 因为要预测 肯定要先分割 x_train, x_test, y_train, y_test train_test_split(x, y, test_size 0.25) #进行处理 特征工程 特征-》类别-》one-hot编码 类别性的要转换为one-hot编码 否则无法计算 dict DictVectorizer(sparse False) #转化成字典才能抽取 这里使用的是字典的特征提取 包括数值型的特征一起 不会改变数值型的数据 x_train dict.fit.transform(x_train.to_dict(orient records )) print(dict.get_feature_names()) x_test dict.transform(x_test.to_dict(orient records ))#一行一条数据 print(x_train) # 决策时预测 默认参数 dec DecisionTreeClassifier() #规定决策树深度 dec DecisionTreeClassifier(max_depth 5) dec.fit(x_train, y_train) #预测准确率 print( 决策树的预测准确率 dec.score(x_test, y_test)) #导出决策树的结构 export_graphviz(dec, out_file ./tree.dot , feature_names [ 年龄 pclass 1st , pclass 2nd , plass 3rd , sex female , 女性 ] ) return None

 转化后类别表示

 使用默认参数的准确率

 语法 决策树可以可视化导出

 导出需要cmd里安装一个工具 见2 然后运行3 如果改变代码 想再得到图 需要再运行一次3命令

 然后在相应的目录下找到生成的文件

 由上图可见 基尼十分细致 将特征的具体的值也作为了判断依据

优点

简单的理解和解释 树木可视化。

需要很少的数据准备 其他技术通常需要数据归一化

缺点 深度对于结果有影响 越复杂的树 可能造成过拟合

决策树学习者可以创建不能很好地推广数据的过于复杂的树 这被称为过拟合。

决策树可能不稳定 因为数据的小变化可能会导致完全不同的树被生成

改进 减少过拟合

减枝cart算法 有API

随机森林

二、随机森林【smart bagging】

集成学习方法

集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型 各自独立地学习和作出预测。这些预测最后结合成单预测 因此优于任何一个单分类的做出预测。 

定义 在机器学习中 随机森林是一个包含多个决策树的分类器 并且其输出的类别是由个别树输出的类别的众数而定。

不同于bagging 只有随机有放回抽取样本【只有bootsrap方法】

随机森林建立多个决策树的过程

 【bootstrap方法】 【随机抽取特征方法】

算法

根据下列算法而建造每棵树

用N来表示训练用例 样本 的个数 M表示特征数目。输入特征数目m 用于确定决策树上一个节点的决策结果 其中m应远小于M。从N个训练用例 样本 中以有放回抽样的方式 取样N次 形成一个训练集 即bootstrap取样 并用未抽到的用例 样本 作预测 评估其误差。 

为什么要随机抽样训练集

如果不进行随机抽样 每棵树的训练集都一样 那么最终训练出的树分类结果也是完全一样的

为什么要有放回地抽样

如果不是有放回的抽样 那么每棵树的训练样本都是不同的 都是没有交集的 这样每棵树都是“有偏的” 都是绝对“片面的” 当然这样说可能不对 也就是说每棵树训练出来都是有很大的差异的 而随机森林最后分类取决于多棵树 弱分类器 的投票表决。 

语法

class sklearn.ensemble.RandomForestClassifier(n_estimators 10, criterion ’gini’, max_depth None, bootstrap True, random_state None)

随机森林分类器

【参数常用值上述已经给出】 

随机森林的超参数

n_estimatorsmax_depth

实现

from sklearn.feature_extraction import DictVectorizer
import pandas as pd
from sklearn.tree import DecisionTressClassifier, export_graphviz
from sklearn.ensemble import RandomforestClassifier
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267569.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号