随机森林

集成学习(ensemble)

由多种算法给出判断结果并投票,以一定的原则综合这些投票并进行决策.
e.g. 病情确诊
sk-learn中提供了Voting Classifier接口

# hard voting classifier,少数服从多数
voting_clf = VotingClassifier(estimators=[
    ('log_clf',LogisticRegression()),
    ('svc_clf',SVC()),
    ('dt_clf',DecisionTreeClassifier())
])
voting_clf.fit(X_train,y_train)
voting_clf.score(X_test,y_test)

#soft voting classifier,每个分类在所有投票中给出的概率相加,取概率最大的分类
voting_clf = VotingClassifier(estimators=[
    ('log_clf',LogisticRegression()),
    ('svc_clf',SVC(probability=True)),
    ('dt_clf',DecisionTreeClassifier())
],voting='soft')
voting_clf.fit(X_train,y_train)
voting_clf.score(X_test,y_test)

局限:虽然有很多的机器学习方法,但是从投票的角度看,仍然不够多
解决方案:创建更多的不一致的子模型,集成更多的子模型额的意见
子模型准确率-子模型数量和集成学习准确率的关系如下


20190612121003.jpg

取样方式分为bagging(放回取样,在统计学中称bootstrap)和pasting(不放回取样)

随机森林

对样本数据随机取部分特征和部分样本训练决策树模型,最后对所有决策树模型进行集成学习的算法

你可能感兴趣的:(随机森林)