解锁式学习
749人加入学习
(0人评价)
机器学习-Sklearn(第三版)
价格 免费
承诺服务
该课程属于 2243-咸鱼-算法方向-数据挖掘-就业:否 请加入后再学习

使用随机森林填补缺失值。n个数据,特征T有缺失值,把特征T当作标签,作为训练集。遍历所有特征,缺失值最少的特征进行填补,因为一开始需要的缺失值最少。当进行到最后一行时,那么在弥补缺失值最多的数据时,就有足够多的准确数据了。

[展开全文]

RandomForestRegressor(随机森林回归)

一、参数criterion取值不同(与决策树部分相同)

1)"mse":回归树中,MSE是分支质量衡量指标,也是回归树回归质量衡量指标

2)"friedman_mse"

3)"mae"

二、模型衡量指标不同:R²或MSE(常用)

三、常用接口apply, predict, fit, score,没有predict_proba

注:如何打印模型评估指标列表?

import sklearn
sorted(sklearn.metrics.SCORERS.keys())

 

[展开全文]

2、random_state

1)随机森林中的random_state控制的是生成森林的模式,设成固定值生成一组固定的树

2)决策树中的random_state控制随机选择特征分支

3)随机性越大,bagging效果一般越好,因此一般不设置,若追求稳定性可设置成固定值

3、bootstrap、oob_score

1)bootstrap默认为True,控制有放回的随机抽样

2)oob_score默认为False,设置为True表示希望用袋外数据测试模型,此时训练函数中放入完整数据(不用划分训练集、测试集)

三、重要属性

1、estimators_,查看森林中树的状况

.estimators[num]取出一棵树

2、oob_score_,查看在袋外数据上测试结果

3、feature_importance_查看特征重要性(用zip把特征重要性和特征名连起来,易于观察哪一个特征更为重要)

四、重要接口

1、4个常用接口:apply(返回测试集中每一个样本在每一棵树中叶子节点的索引;需要画图或需要提取单独叶子节点时使用)、fit、predict(返回对测试集预测的标签)、score

2、predict_proba:

1)返回每个测试样本被分到每一类标签的概率,标签几类,返回几个

[展开全文]

二、RandomForestClassifier(随机森林分类器)参数

1、n_estimators:森林中树木的数量

1)越大往往越好,但计算量越大,达到一定值精确性波动,一般在0-200内选

2)单个决策树准确度越高,随机森林的准确度也会越高

 

[展开全文]

随机森林

一、概述

1、集成算法

1)集成算法考虑多个评估器的结果,汇总获取更好的分类、回归表现

2)三种集成算法:装袋法bagging(模型独立),提升法boosting(模型相关),stacking

3)随机森林是一种bagging集成算法

[展开全文]

随机森林填补获取数据集时的缺失值。

sklearn.impute.SimpleImputer轻松填补数据缺失值。

 

[展开全文]

随机森林的回归。

分类树与回归树,MSE均方误差。

回归树衡量指标mse、firedman_mse与MAE

sklearn使用负值的均方误差作为衡量指标,因为表示的是损失。

load_boston是一个标签连续型数据集。

regressor是模型

boston.data完整的矩阵、boston.target是标签。来回验证十次,scoring选择指标进行打分。

[展开全文]

一半以上的决策树判断错误,才会导致随机森林才会判断错误。

comb是求和。

相同的训练集与参数,随机森林中的树会有不同的判断结果,选择重要的特征进行提问。

estimators,查看森林中树的参数或属性。每棵树中的random_state不一样,导致每棵树都不一样。

random_state固定,随机森林中的树是固定的,但随机挑选的特征,导致树是不一样。随机性越大,效果越好。

bootstrap用于控制抽样技术的参数。

自主集:从原始训练集中进行n次有放回抽样,得到的数据集。自主集会包含63%的原始数据集元素。剩下37%数据可以作为测试模型的数据,称为袋外数据。

wine.target为wine的标签。

一个自助集里,样本A永远不被抽到的概率:(1-1/n)^n

oob_score训练分数。

apply返回所在叶子节点的索引

predict_proba返回每个样本对应类别的标签的概率。

[展开全文]

n_estimators基评估器数量,该值越大,越好。

到达一定程度后,精确性会开始波动。

[展开全文]

如何进行增维?(放到回归树中的数据必须是二维的)

1).reshape(-1,1)

2)[:,np.newaxis]

 

[展开全文]

集成算法:在数据上构建多个模型,集成所有模型的建模结果。

集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果。

集成评估器:基评估器,装袋法,提升法,stacking

sklearn中的ensemble,集成算法有一半以上都是树的模型。决策树用于分类和回归问题。通过有特征和标签的表格中,通过对特定特征进行提问,总结出决策规则。

如何找到正确的特征去提问,定义衡量分支质量的指标不纯度。

[展开全文]

交叉验证()

1、观察模型稳定性的一种方法,避免测试集训练集划分导致模型不同

2、数据分为n份,依次把其中一份作为测试集,其他为训练集,交叉验证n次求平均值

3、model_selection.cross_val_score的五个参数

1)任何实例化的算法模型

2)不需划分测试集、训练集的特征矩阵

3)不需划分的完整标签

4)cv=10,做十次交叉验证,数据划分为十份,每次一份为测试集,剩下为训练集,通常选5,默认为5

5)scoring="neg_mean_squared_error",neg_mean_squared_error负均方误差。用这个指标评估交叉验证的结果。不填,回归默认返回R平方

1、回归问题处理的是连续型变量

[展开全文]

交叉验证(model_selection.cross_val_score)

1、观察模型稳定性的一种方法,避免测试集训练集划分导致模型不同

2、数据分为n份,依次把其中一份作为测试集,其他为训练集,交叉验证n次求平均值

1、回归问题处理的是连续型变量

[展开全文]

回归树

一、参数、属性、接口几乎和分类树相同)

二、回归树没有标签分布均衡问题,没有class_weight

三、参数criterion差异

1、="mse",均方误差

1)父节点和子节点均方误差的差额,本质是样本真实数据和回归结果的差异。

2)在回归树中,MSE是分枝质量衡量指标、回归树回归质量衡量指标。越小越好。

3)回归树接口score返回的是R平方,不是MSE,取值为负无穷到1,MSE总为正,sklearn中为负值

2、="friedman_mse",费尔德曼均方误差

3、="mae",绝对平均误差

[展开全文]

四、目标权重参数(用的少)

控制目标权重,保持样本标签平衡(不平衡:某类标签占比大,决策树会向占比大标签偏移)

1、class_weight

1)给少量标签更多权重,参数默认None(所有标签相同权重)

2、min_weight_fraction_leaf

1)基于权重的剪枝参数,比min_samples_leaf更偏向主导类

2)样本加权使用此参数剪枝

 

重要接口

1、fit训练,score

2、apply测试样本叶子节点索引,predict返回测试样本分类或回归标签结果(只输入训练集特征,不需要标签y)

注:所有接口中要求输入x_test或x_train部分必须输入二维矩阵,不接受任何一维矩阵输入,若数据只有一个样本,reshape(-1,1)增维

[展开全文]

4、max_features

1)限制分枝考虑的特征个数

2)用于高维数据,防止过拟合

3)缺点:强行设定会导致模型学习不足。

4)如果希望通过降维防止过拟合,最好使用PCA,ICA中的降维算法

5、min_impurity_decrease

1)限制信息增益的大小,信息增益小于指定数值的分枝不会发生

2)信息增益:父节点和子节点信息熵的差(子节点信息熵一定小于父节点信息熵),越大,这一层分枝对决策树贡献越大

注:

1)如何确定最优的剪枝参数?画出超参数学习曲线

2)剪枝参数不一定能提升模型在测试集上的表现

[展开全文]

三、剪枝参数:正确剪枝是优化决策树算法的核心

注:剪枝后准确度不下降,保留剪枝参数,避免重复计算;准确度下降,注掉参数

1、max_depth:限制树的最大参数

高维度、低样本量非常有效,从=3开始尝试,看拟合效果再增加深度

2、min_sample_leaf

1)一个节点在分枝后,每个节点至少包含min_sample_leaf个训练样本samples

2)一般和max_depth搭配使用

3)太小:过拟合,太大:阻止模型学习数据

4)从=5开始使用;

训练集测试集划分不平衡:输入浮点数(含义为样本总量*小数);

类别不多,=1通常最好

3、min_sample_split

1)一个节点至少min_sample_split个样本才被允许分枝

 

 

[展开全文]