实验要求
数据中已经分好了训练集和测试集,是二分类问题(阴性和阳性),使用支持向量机建模对数据进行分类。
具体要求:
(1) 得出相应的分类指标准确率accuracy,精确率precision,召回率recall,F1-score,并画出最终的ROC曲线,得出AUC值。
(2) 对比感知机算法也进行训练和测试,比较两个算法的结果。
(3) 运用5-fold Cross-validation方法进行验证。
数据展示
代码
导包
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.linear_model import Perceptron
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, roc_curve
from sklearn.model_selection import cross_val_score, cross_val_predict
加载数据
# 加载数据
train = pd.read_csv(r"C:\Users\guo\Desktop\课程\医学数据挖掘\实验3-支持向量机分析乳腺癌数据实验\breast-cancer-train.csv").iloc[:, 1:]
test = pd.read_csv(r"C:\Users\guo\Desktop\课程\医学数据挖掘\实验3-支持向量机分析乳腺癌数据实验\breast-cancer-test.csv").iloc[:, 1:]
x_train, y_train = train.iloc[:, :-1], train.iloc[:, -1]
x_test, y_test = test.iloc[:, :-1], test.iloc[:, -1]
SVM
# 用线性核函数建立支持向量机模型
model = svm.SVC(kernel=