sklearn集成学习 关于 算法准确率的两个问题

1. 集成学习中soft voting的准确率低于hard voting。
代码如下：
``````import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
x,y = datasets.make_moons(n_samples = 500,noise = 0.3, random_state = 42)
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y,random_state = 42)
from sklearn.ensemble import VotingClassifier
voting_clf = VotingClassifier(estimators = [
('log_clf',LogisticRegression()),
('svm_clf',SVC()),
('dt_clf',DecisionTreeClassifier())
],voting = 'hard')
voting_clf.fit(x_train,y_train)
voting_clf.score(x_test,y_test)
voting_clf2 = VotingClassifier(estimators = [
('log_clf',LogisticRegression()),
('svm_clf',SVC(probability = True)), #修改SVC参数
('dt_clf',DecisionTreeClassifier(random_state = 666))],voting = 'soft')
voting_clf2.fit(x_train,y_train)
voting_clf2.score(x_test,y_test)# soft 与hard 的结果都是0.904 很奇怪

``````
1. 集成学习中采用决策树的数量增多，准确率并没有提高。
代码如下：
``````import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
x,y = datasets.make_moons(n_samples = 500,noise = 0.3, random_state = 42)
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y,random_state = 42)
bagging_clf = BaggingClassifier(DecisionTreeClassifier(),
n_estimators =500, max_samples = 100,bootstrap = True)
# n_estimator 多少个子模型 max_samples看多少样本 bootstrap是否放回
%%time
bagging_clf.fit(x_train,y_train)# 500个决策树
bagging_clf.score(x_test,y_test)
single_dec_tree = DecisionTreeClassifier()
single_dec_tree.fit(x_train,y_train)# 1个决策树
single_dec_tree.score(x_test,y_test)
bagging_clf5000 = BaggingClassifier(DecisionTreeClassifier(),
n_estimators = 5000,max_samples = 100,bootstrap = True)
# 5000个决策树
%%time
bagging_clf5000.fit(x_train,y_train)
bagging_clf5000.score(x_test,y_test)
# 单个决策树的准确率为0.88，500个是0.928，5000个是0.912
``````

• 写回答

• 系统已结题 2月24日
• 已采纳回答 2月16日
• 修改了问题 2月6日
• 创建了问题 2月5日

悬赏问题

• ¥15 用循环结构解决，刚学C语言
• ¥16 请问pyglet如何做出不同按扭跳转不同页面的效果，以及如何储存选择选项的次数(语言-python)
• ¥15 python怎么自动填表、登录?
• ¥15 python列表嵌套按条件合并
• ¥15 VBA怎么把工作簿A中的第N列，复制到工作簿B中的第N列。
• ¥20 除了狗屎npm, 推荐一些编写web应用的方式？
• ¥30 如何对嵌套结构体进行动态内存分配
• ¥15 关于sprintf的几个问题
• ¥15 不确定行列数的迷宫文件传入
• ¥15 怎么解决kali linux从root文件夹里复制文件权限不够的问题