python机器学习-chapter2_10

•enumerate()用于同时返回索引和对应的值

list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
    print index, item
>>>
0 这
1 是
2 一个
3 测试

numpy.ravel()用于拉平数组

n = [[1, 2, 3],
       [4, 5, 6]]
n.ravel()
>>>[1, 2, 3, 4, 5, 6]

 

•随机森林:随机森林构造很多决策树,每棵树和其他树都略有不同,,但以不同的方式过拟合,对这些树的结果取平均值来降低过拟合

分类与回归:

分类:进行软投票。每个算法做出软预测,给出每个可能的输出标签的概率,对所有树的预测概率取平均值,将概率最大的类别作为预测结果

回归:算法对每棵树进行预测,对这些结果取平均值作为最终预测

随机森林中的随机化:①选择用于构造树的数据点(自助采样)②选择每次划分测试的特征

随机森林的重要参数:

♠n_estimators:森林中决策树的个数,越大越好

♠max_fearures:结点选择特征时,特征子集的大小。决定每棵树的随机性大小。

♠n_jobs:训练随机森林时所使用的CPU内核数,如n_job = -1,即使用所有内核

优点:

♠不需要反复调节参数就可以得到很好地结果

♠不需要对数据进行缩放

缺点:

♠可视化效果不好

♠对维度非常高的稀疏数据(例如文本数据),表现不好

 

•梯度提升机:通过合并多个决策树来构建一个更为强大模型,使用连续的方法构造树,每棵树都试图纠正前一棵树的错误。

梯度提升机的重要参数:

max_depth:每一棵树的最大深度,通常不超过5。

n_estimators:集成中树的个数,更多的树可以增加模型复杂度,与随机森林不同,此参数并不是越大越好,太大会导致过拟合。

learning_rate:学习率,控制每一颗树纠正前一棵树的强度,与n_estimators高度相关,当学习率低时,需要更多的树构建模型。

通常根据时间和内存的预算来选择合适的n_estimators,然后遍历learning_rate选择出最优的模型。

降低过拟合的方法:①限制最大深度②降低学习率

 

•随机森林与梯度提升机

一般先使用随机森林算法,随机森林的鲁棒性好。

在以下两种情况下考虑使用梯度提升:

①预测时间太长

②对机器学习模型精度的小数点第二位有要求

posted @ 2020-02-10 19:24  啵仔  阅读(136)  评论(0编辑  收藏  举报