快速入门Python机器学习(26)

简介: 快速入门Python机器学习(26)

10.4 投票分类(Voting Classifier)


10.4.1 理论

模型 :A - 99%、B - 1%,表示模型  认为该样本是 A 类型的概率为 99%,为 B 类型的概率为 1%。


硬投票

Hard Voting

模型

A得分

B得分

获胜者

1

99%

1%

A

2

49%

51%

B

3

40%

60%

B

4

90%

10%

A

5

30%

70%

B

A:两票、B三票,B获胜


软投票

Soft Voting

模型

A得分

B得分

1

99%

1%

2

49%

51%

3

40%

60%

4

90%

10%

5

30%

70%

A(99%+49%+40%+90%+30%)/5=61.6%

B(1%+51%+60%+10%+70%)/5=38.4%

A获胜


10.4.2投票分类(Voting Classifier)

类参数、属性和方法


class sklearn.ensemble.VotingClassifier(estimators, *, voting='hard', weights=None, n_jobs=None, flatten_transform=True, verbose=False)


参数

属性

类型

解释

voting

{'hard', 'soft'}, default='hard'

如果'hard',则使用预测的类别标签进行多数规则投票。否则,如果为'soft',则根据预测概率之和的最大值预测类别标签,这是一组校准良好的分类器所推荐的。


属性

属性

类型

解释

estimators_

list of classifiers

非“下降”估计量中定义的拟合子估计量的集合。

named_estimators_

Bunch

属性按名称访问任何合适的子估计量。

classes_

array-like of shape (n_predictions,)

类别标签。


方法

fit(X, y[, sample_weight])

拟合估计值。

fit_transform(X[, y])

返回每个估计量的类别标签或概率。

get_params([deep])

从集合中获取估计量的参数。

predict(X)

预测X的类标签。

score(X, y[, sample_weight])

返回给定测试数据和标签的平均准确度。

set_params(**params)

从集合中设置估计器的参数。

transform(X)

返回每个估计量的类标签或X的概率。


投票分类(Voting Classifier)分析

def My_VotingClassifier(mydata,title):
      warnings.filterwarnings("ignore")
     myutil = util()
     if title=="两个月亮数据":
       X, y = mydata
     else:
       X,y = mydata.data,mydata.target
     X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
     votings=['hard','soft']
      for voting in votings:
           voting_clf = VotingClassifier(estimators=[('log_clf', LogisticRegression()),('svm_clf', SVC(probability=True)),('dt_clf', DecisionTreeClassifier(random_state=666))], voting=voting)
           voting_clf.fit(X_train, y_train)
           mytitle = title+" "+voting+"Voting训练"
           myutil.print_scores(voting_clf,X_train,y_train,X_test,y_test,mytitle)
           myutil.plot_learning_curve(VotingClassifier(estimators=[('log_clf', LogisticRegression()),('svm_clf', SVC(probability=True)),('dt_clf', DecisionTreeClassifier(random_state=666))], voting='hard'),X,y,mytitle)
           myutil.show_pic(mytitle)
def call_VotingClassifier():
       mydatas = [datasets.make_moons(n_samples=500, noise=0.3, random_state=42), datasets.load_iris(), datasets.load_wine(), datasets.load_breast_cancer()]
       titles = ["两个月亮数据","鸢尾花数据","红酒数据","乳腺癌数据"]
       for (mydata,title) in zip(mydatas, titles):
              My_VotingClassifier(mydata,title)


分别用到:LogisticRegressionSVCDecisionTreeClassifier

probability必须为true


输出

两个月亮数据 hardVoting训练:
93.60%
两个月亮数据 hardVoting训练:
90.40%
两个月亮数据 softVoting训练:
96.27%
两个月亮数据 softVoting训练:
90.40%
鸢尾花数据 hardVoting训练:
96.43%
鸢尾花数据 hardVoting训练:
100.00%
鸢尾花数据 softVoting训练:
100.00%
鸢尾花数据 softVoting训练:
100.00%
红酒数据 hardVoting训练:
98.50%
红酒数据 hardVoting训练:
95.56%
红酒数据 softVoting训练:
100.00%
红酒数据 softVoting训练:
95.56%
乳腺癌数据 hardVoting训练:
96.48%
乳腺癌数据 hardVoting训练:
96.50%
乳腺癌数据 softVoting训练:
97.89%
乳腺癌数据 softVoting训练:
95.80%

image.png

image.png

image.png

image.png


数据

Hard

Soft

两个月亮数据

93.60%

96.27%

90.40%

90.40%

鸢尾花数据

96.43%

100.00%

100.00%

100.00%

红酒数据

98.50%

100.00%

95.56%

95.56%

乳腺癌数据

96.48%

97.89%

96.50%

95.80%

目录
相关文章
|
5天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
16 3
|
10天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
20 1
|
16天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
21天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
16 1
|
22天前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
18 2
|
6月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
233 14
|
6月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
113 1
|
6月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
6月前
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
299 0
|
6月前
|
机器学习/深度学习 数据采集 监控
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
874 0