栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

支持向量机,网格搜索,roc曲线练习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

支持向量机,网格搜索,roc曲线练习

首先导入需要用到的包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import roc_curve,auc

读取数据人类嘴型数据,查看数据格式

df=pd.read_csv("training.csv",header=None)
df.info()

第六列为标签,标签为1意味着张嘴,标签为-1意味着嘴没有动,将标签从数据集中分离

target=np.array(df[6])
df=df.drop(columns=6)

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

train_data,test_data=train_test_split(df,random_state=2,train_size=0.7,test_size=0.3)
train_target,test_target=train_test_split(target,random_state=2,train_size=0.7,test_size=0.3)

 网格搜索,找到最优参数,kflod为3折交叉验证,由于电脑性能问题,在gridsearchcv中未加入kflod

model=svm.SVC(kernel='rbf',probability=True)
# kflod = StratifiedKFold(n_splits=3, shuffle = True,random_state=7)
grid_search = GridSearchCV(model,{"C":[0.1,1,10],"gamma":[0.1,0.2,0.3]},n_jobs = -1,refit=bool)
grid_result = grid_search.fit(train_data, train_target)
print(grid_search.best_params_)

利用最优参数进行预测

classifier=svm.SVC(C=0.1,gamma=0.2,kernel='rbf')
from sklearn.metrics import classification_report
clf=classifier.fit(train_data,train_target)
predict_y = classifier.predict(train_data)

绘制ROC曲线

FPR,TPR,threshold=roc_curve(train_target,predict_y,pos_label=1)
AUC=auc(FPR,TPR)
plt.figure()
plt.title('ROC CURVE (AUC={:.2f})'.format(AUC))
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.xlim([0.0,1.0])
plt.ylim([0.0,1.0])
plt.plot(FPR,TPR,color='g')
plt.plot([0, 1], [0, 1], color='m', linestyle='--')
plt.show()

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498917.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号