sklearn机器学习要点总结

1.总体流程

引入数据集

#1.导入数据
#使用数据集时,以鸢尾花数据集为例
from sklearn.datasets import load_iris
iris=load_iris()
iris.keys()

将数据集转换为DataFram:

import pandas as pd
iris_data=pd.DataFrame(iris.data,columns=iris.feature_names)
iris_data['target']=iris.target_names[iris.target] 
iris_data.head(3).append(iris_data.tail(3))

可视化数据

import seaborn as sns
sns.pairplot(iris_data,hue='target',palette='husl')

数据预处理

#参考:https://blog.csdn.net/weixin_45589116/article/details/123921246?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-123921246-blog-124317243.235^v27^pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.1&utm_relevant_index=2

from sklearn.preprocessing import StandardScaler
X=StandardScaler().fit_transform(iris.data)    #关于fit()、fit_transform()和transform()的区别参考上面资料
y=iris.target

数据集划分为训练集和测试集

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=33) 

创建模型估计器(estimator)

用于回归的估计器

#线性回归
from sklearn.linear_model import LinearRegression
lr=LinearRegression()

#查看相关帮助:help(LinearRegression)
#支持向量回归SVR
from sklearn.svm import SVR
svr=SVR()

#查看相关帮助:help(SVR)
#kNN用于回归
#参考:https://blog.csdn.net/qq_43671574/article/details/103557073

from sklearn.neighbors import KNeighborsRegressor
knn_reg=KNeighborsRegressor()

用于分类的估计器

#逻辑回归用于分类
from sklearn.linear_model import LogisticRegression   #助记:把LinearRegression改成LogisticRegression即可
lgr=LogisticRegression()

#查看相关帮助:help(LogisticRegression)
#支持向量用于分类:使用LinearSVC,只适用于线性可分的数据集,对于大数据集训练非常快,一般作为初始训练的首选
from sklearn.svm import LinearSVC
lsvc=LinearSVC()
#支持向量用于分类:使用SVC,适用于线性可分和不可分的数据集(通过使用核函数),性能不如LinearSVC
from sklearn.svm import SVC
svc=SVC()
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier()

用训练集训练模型估计器estimator

#根据需要,用具体的上文估计器去替换下面的estimator
#estimator.fit(X_train,y_train)
knn.fit(X_train,y_train)

用模型估计器对测试集数据做预测

#根据需要,用具体的上文估计器去替换下面的estimator
#y_pred=estimator.predict(X_test)
y_pred=knn.predict(X_test)

对模型估计器的学习效果进行评价

#最简单的评估方法:就是调用估计器的score(),该方法的两个参数要求是测试集的特征矩阵和标签向量
#对于回归问题,score()返回的结果就是r2_score,参考\machine learning\Regression.ipynb文件
#对于分类问题,score()返回的结果就是下面的ACC
#根据需要,用具体的上文估计器去替换下面的estimator
#print(estimator.score(X_test,y_test))
print(knn.score(X_test,y_test))

#对于二分类问题,还可以使用metrics子包中的confusion_matrix()、precision_score()、recall_score、accuracy_score()等
#这些方法的参数分别是测试集的真实标签和预测标签
from sklearn import metrics
confusion_matrix = metrics.confusion_matrix(y_test,y_pred)       # 混淆矩阵(注意与上面示例的混淆矩阵的图位置并不一一对应)
#recall_score = metrics.recall_score(y_test,y_pred)               # 召回率(查全率)=tp/(tp+fn)
#pre_score = metrics.precision_score(y_test,y_pred)               # 准确率(查准率)=tp/(tp+fp)
ACC = metrics.accuracy_score(y_test,y_pred)                      # 准确度ACC=(tp+tn)/(tp+tn+fp+fn)
print(ACC)

#对于多分类问题,还可以使用metrics子包中的classification_report
print(metrics.classification_report(y_test,y_pred,target_names=iris.target_names)) 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纵观星宇宙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值