python_sklearn库的使用

python_sklearn库的使用sklearn库的使用

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

python_sklearn库的使用

读取数据并按比例分为训练集和测试集

import pandas as pd
import sklearn.model_selection import train_test_split

data = pd.read_csv('./dataset/data.csv', header=None, sep='')
x_data = data.iloc[:, :-1]	#输入变量
y_data = data.iloc[:, -1:]	#实际结果
x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.2)

train_test_split()可以将数据按比例随机分为训练集和测试集;参数如下:

第一个参数:输入变量

第二个参数:与输入变量对应的实际结果

test_size:测试集占总数据的比例。例如test_size=0.2,则训练集:测试集=8:2

random_state:随机数的种子。若为None,则每次生成的数据都是随机的;若为整数,则每次生成的数据相同。

使用机器学习算法训练

1.监督学习

sklearn.neighbors 				#近邻算法
sklearn.svm 					#支持向量机
sklearn.kernel_ridge 			#核-岭回归
sklearn.discriminant_analysis 	#判别分析
sklearn.linear_model 			#广义线性模型

sklearn.ensemble		 		#集成学习
sklearn.tree 					#决策树
sklearn.naive_bayes 			#朴素贝叶斯
sklearn.cross_decomposition 	#交叉分解
sklearn.gaussian_process 		#高斯过程

sklearn.neural_network 			#神经网络
sklearn.calibration 			#概率校准
sklearn.isotonic 				#保守回归
sklearn.feature_selection 		#特征选择
sklearn.multiclass 				#多类多标签算法

2.无监督学习

sklearn.decomposition 			#矩阵因子分解
sklearn.cluster 				#聚类
sklearn.manifold 				#流形学习
sklearn.mixture 				#高斯混合模型
sklearn.neural_network 			#无监督神经网络
sklearn.covariance 				#协方差估计

3.数据变换

sklearn.feature_extraction 		#特征提取
sklearn.feature_selection 		#特征选择
sklearn.preprocessing 			#预处理
sklearn.random_projection 		#随机投影
sklearn.kernel_approximation 	#核逼近

示例

from sklearn.linear_model import LogisticRegression

logr = LogisticRegression()	#新建一个逻辑回归器
logr.fit(x_train, y_train.values.ravel())	#对训练集进行拟合
y_pred = logr.predict(x_test)	#使用训练好的逻辑回归器对测试集进行预测

计算模型的评价指标

使用sklearn.metrics可以计算模型的各种评价指标,例如:准确率、召回率、精确度、F1分数、ROC曲线、AUC等指标。

from sklearn.metrics import accuracy_score, recall_score, precision_score, roc_curve

acc = accuracy_score(y_test, y_pred)	#计算准确率
recall = recall_score(y_test, y_pred)	#计算召回率
precision = precision_score(y_test, y_pred)	#计算精确度

#ROC曲线
fpr, tpr, thresholds = roc_curve(y_test, y_pred)
plt.([0, 1], [0, 1], 'k-')
plt.plot(fpr, tpr)
plt.show()
from classification_report

print(classification_report(y_test, y_predict, digits=5))

输出结果为:
在这里插入图片描述

评价指标说明

在这里插入图片描述

准确率:所有样本总被分对的比例
a c c = T P + T N T P + T N + F P + F N acc=\frac{TP+TN}{TP+TN+FP+FN} acc=TP+TN+FP+FNTP+TN
召回率(灵敏度):所有正例中被分对的比例
r e c a l l = T P T P + F N recall = \frac{TP}{TP+FN} recall=TP+FNTP
精确度:被分为正例的示例中实际为正例的比例
p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP+FP} precision=TP+FPTP
特效度:所有负例中被分对的比例(即为classification_report中负样本的recall值)
s p e c i f i c i t y = T N F P + T N specificity = \frac{TN}{FP+TN} specificity=FP+TNTN

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180974.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Redis 客户端连接

    Redis 客户端连接Redis命令用于在redis服务上执行操作。要在redis服务上执行命令需要一个redis客户端。Redis客户端在Redis包中有提供,这个包在我们前面的安装教程中就有安装过了。Redis通过监听一个TCP端口或者Unixsocket的方式来接收来自客户端的连接,当一个连接建立后,Redis内部会进行以下一些操作:首先,客户端socket会被设置

  • 关联数据及其应用

    关联数据及其应用转载自:http://blog.sciencenet.cn/blog-357889-578799.html关联数据(LinkedData)是万维网的发明人——蒂姆•伯纳斯-李(TimBerners-Lee)——提出的一种万维网上发布数据的方式,可以看成语义Web的一种实现方式。它一般要求采用RDF数据模型,利用URI(统一资源标识符)命名数据实体,发布和部署实例数据和类数据

  • linux删除文件夹命令「建议收藏」

    linux删除文件夹命令「建议收藏」1、删除html文件夹:rmhtml-r2、删除文件:rmfiles.txt-r3、新建:mkdirhtml

  • day08(异常处理,创建异常,finally,throws和throw的区别)

    day08(异常处理,创建异常,finally,throws和throw的区别)

  • python爬取琳琅社区整站视频(一晚6000部)[通俗易懂]

    python爬取琳琅社区整站视频(一晚6000部)[通俗易懂]琳琅社区(传闻中最受男人喜爱的网站),哼哼,我倒要看看是不是真的该项目用于爬取琳琅社区整站视频(仅供学习)主要使用:python3.7+scrapy2.19+Mysql8.0+win10首先确定需要爬取的内容,定义item:classLinglangItem(scrapy.Item): #视频属于哪个模块video_belong_module=scrap…

  • mybatis的rowbounds_oracle使用rownum分页

    mybatis的rowbounds_oracle使用rownum分页物理分页和逻辑分页物理分页:直接从数据库中拿出我们需要的数据,例如在Mysql中使用limit。逻辑分页:从数据库中拿出所有符合要求的数据,然后再从这些数据中拿到我们需要的分页数据。优缺点物理分页每次都要访问数据库,逻辑分页只访问一次。物理分页占用内存少,逻辑分页相对较多。物理分页数据每次都是最新的,逻辑分页有可能滞后。在mybatis中,使用RowBounds进行分页,非常方便,不需要在sql语句中写limit,即可完成分页功能。但是由于它是在sql查询出所有结果的

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号