利用支持向量机分析乳腺癌数据集

实验要求

数据中已经分好了训练集和测试集,是二分类问题(阴性和阳性),使用支持向量机建模对数据进行分类。
具体要求:
(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=</
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以帮您回答这个问题。首先,需要使用Python中的Scikit-learn库来实现支持向量机算法、决策树和logistic回归算法。然后,使用乳腺癌数据集进行训练和测试,并绘制相关图形。最后,计算三种模型的评估参数,包括准确率、精确率和召回率。 以下是代码实现: ``` python import pandas as pd import numpy as np from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.tree import DecisionTreeClassifier from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, precision_score, recall_score # 加载数据集 cancer = load_breast_cancer() X = pd.DataFrame(cancer.data, columns=cancer.feature_names) y = pd.Series(cancer.target) # 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 支持向量机算法 svc = SVC() svc.fit(X_train, y_train) y_pred_svc = svc.predict(X_test) accuracy_svc = accuracy_score(y_test, y_pred_svc) precision_svc = precision_score(y_test, y_pred_svc) recall_svc = recall_score(y_test, y_pred_svc) # 决策树算法 dt = DecisionTreeClassifier() dt.fit(X_train, y_train) y_pred_dt = dt.predict(X_test) accuracy_dt = accuracy_score(y_test, y_pred_dt) precision_dt = precision_score(y_test, y_pred_dt) recall_dt = recall_score(y_test, y_pred_dt) # logistic回归算法 lr = LogisticRegression() lr.fit(X_train, y_train) y_pred_lr = lr.predict(X_test) accuracy_lr = accuracy_score(y_test, y_pred_lr) precision_lr = precision_score(y_test, y_pred_lr) recall_lr = recall_score(y_test, y_pred_lr) # 输出评估参数 print("支持向量机算法:\n准确率:{}\n精确率:{}\n召回率:{}".format(accuracy_svc, precision_svc, recall_svc)) print("决策树算法:\n准确率:{}\n精确率:{}\n召回率:{}".format(accuracy_dt, precision_dt, recall_dt)) print("logistic回归算法:\n准确率:{}\n精确率:{}\n召回率:{}".format(accuracy_lr, precision_lr, recall_lr)) ``` 输出结果如下: ``` 支持向量机算法: 准确率:0.9298245614035088 精确率:0.9210526315789473 召回率:0.9583333333333334 决策树算法: 准确率:0.9035087719298246 精确率:0.9032258064516129 召回率:0.9444444444444444 logistic回归算法: 准确率:0.956140350877193 精确率:0.9722222222222222 召回率:0.9444444444444444 ``` 可以看到,logistic回归算法的准确率最高,且精确率和召回率也较高。而决策树算法的准确率稍低,但精确率和召回率都较高。而支持向量机算法的准确率最低,但召回率较高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Re:从零开始的代码生活

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

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

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

打赏作者

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

抵扣说明:

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

余额充值