您的位置:首页技术文章
文章详情页

Python sklearn中的.fit与.predict的用法说明

【字号: 日期:2022-07-19 14:18:55浏览:15作者:猪猪

我就废话不多说了,大家还是直接看代码吧~

clf=KMeans(n_clusters=5) #创建分类器对象fit_clf=clf.fit(X) #用训练器数据拟合分类器模型clf.predict(X) #也可以给新数据数据对其预测print(clf.cluster_centers_) #输出5个类的聚类中心y_pred = clf.fit_predict(X) #用训练器数据X拟合分类器模型并对训练器数据X进行预测print(y_pred) #输出预测结果

补充知识:sklearn中调用某个机器学习模型model.predict(x)和model.predict_proba(x)的区别

model.predict_proba(x)不同于model.predict(),它返回的预测值为获得所有结果的概率。(有多少个分类结果,每行就有多少个概率,对每个结果都有一个概率值,如0、1两分类就有两个概率)

我们直接上代码,通过具体例子来进一步讲解:

python3 代码实现:

# -*- coding: utf-8 -*-'''Created on Sat Jul 27 21:25:39 2019@author: ZQQ'''from sklearn.linear_model import LogisticRegressionfrom sklearn.ensemble import RandomForestClassifierfrom xgboost import XGBClassifierimport numpy as npimport warningswarnings.filterwarnings('ignore')# 这个方法只是解决了表面,没有根治# 数据(特征,属性)x_train = np.array([[1,2,3], [1,5,4], [2,2,2], [4,5,6], [3,5,4], [1,7,2]]) # 数据的标签y_train = np.array([1, 0, 1, 1, 0, 0]) # 测试数据x_test = np.array([[2,1,2], [3,2,6], [2,6,4]]) # 导入模型model = LogisticRegression() #model = RandomForestClassifier()#model=XGBClassifier()model.fit(x_train, y_train)# 返回预测标签 print(model.predict(x_test)) print(’---------------------------------------’)# 返回预测属于某标签的概率 print(model.predict_proba(x_test))

运行结果:

Python sklearn中的.fit与.predict的用法说明

分析结果:

使用model.predict() :

预测[2,1,2]为1类

预测[3,2,6]为1类

预测[2,6,4]为0类

使用model.predict_proba() :

预测[2,1,2]的标签是0的概率为0.19442289,1的概率为0.80557711

预测[3,2,6]的标签是0的概率为0.04163615,1的概率为0.95836385

预测[2,6,4]的标签是0的概率为0.83059324,1的概率为0.16940676

预测为0类的概率值和预测为1的概率值和为1

同理,如果标签继续增加,3类:0,1, 2

预测为0类的概率值:a

预测为1类的概率值:b

预测为2类的概率值:c

预测出来的概率值的和a+b+c=1

注:model.predict_proba()返回所有标签值可能性概率值,这些值是如何排序的呢?

返回模型中每个类的样本概率,其中类按类self.classes_进行排序。

通过numpy.unique(label)方法,对label中的所有标签值进行从小到大的去重排序。

得到一个从小到大唯一值的排序。这也就对应于model.predict_proba()的行返回结果。

以上这篇Python sklearn中的.fit与.predict的用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持好吧啦网。

标签: Python 编程
相关文章: