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

作者:冽夫 时间:2023-01-03 23:54:25 

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


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 LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from xgboost import XGBClassifier
import numpy as np
import warnings
warnings.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()的行返回结果。

来源:https://blog.csdn.net/helloworld0906/article/details/103214002

标签:Python,sklearn,fit,predict
0
投稿

猜你喜欢

  • js增强的自定义事件模型

    2008-02-18 12:37:00
  • golang三元表达式的使用方法

    2023-08-28 14:34:09
  • python 对给定可迭代集合统计出现频率,并排序的方法

    2023-02-10 17:28:47
  • IIS 301重定向与程序代码实现301重定向的差别

    2022-04-16 07:45:23
  • SQL Server中的SQL语句优化与效率问题

    2024-01-20 05:26:57
  • python xlsxwriter库生成图表的应用示例

    2022-03-02 20:01:33
  • Python调用腾讯云短信服务发送手机短信

    2021-10-07 16:55:38
  • 解决Linux下Tomcat向MySQL插入数据中文乱码问题

    2024-01-29 13:06:36
  • windows下Python安装、使用教程和Notepad++的使用教程

    2023-04-21 09:31:39
  • MySQL8.0设置远程访问权限的方法

    2024-01-15 19:25:43
  • python中Event实现线程间同步介绍

    2023-08-18 07:07:08
  • JavaScript模拟实现自由落体效果

    2024-05-02 16:19:47
  • 在Python中操作字典之clear()方法的使用

    2021-10-02 15:57:38
  • 如何实现SQL Server 2005快速Web分页

    2009-01-21 14:51:00
  • asp超强的Server Application Error 的解决方法

    2008-11-13 13:04:00
  • 如何用Python搭建gRPC服务

    2023-02-08 16:00:54
  • Django后台admin的使用详解

    2023-11-21 14:57:50
  • 使用python爬取微博数据打造一颗“心”

    2022-05-28 22:30:09
  • Python try-except-else-finally的具体使用

    2022-10-18 14:31:45
  • Python配置文件yaml的用法详解

    2023-07-04 21:02:56
  • asp之家 网络编程 m.aspxhome.com