威斯康辛乳腺癌数据集进行支持向量机实验
时间: 2023-10-18 14:01:51 浏览: 85
威斯康辛乳腺癌数据集是一个广泛使用的乳腺癌数据集,其中包含了569个样本和30个特征。每个样本代表了一个乳腺肿瘤,其中包括了良性和恶性的肿瘤。每个样本的30个特征包括了肿瘤的大小、形状、质地、边缘、密度等等。
在本实验中,我们将使用支持向量机(SVM)算法对威斯康辛乳腺癌数据集进行分类。SVM是一种强大的分类算法,它可以在高维空间中找到最佳的决策边界以将不同类别的数据分开。
以下是实验的步骤:
1. 导入数据集
我们可以使用sklearn库中的load_breast_cancer函数来导入数据集。
```python
from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
```
2. 数据预处理
在进行机器学习实验之前,我们需要对数据进行预处理。我们可以将数据集分成训练集和测试集,并对特征进行标准化处理。
```python
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.3, random_state=42)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
```
3. SVM模型训练和预测
我们可以使用sklearn库中的SVC函数来创建SVM模型。我们可以选择不同的内核函数,如线性、多项式、径向基函数等。在本实验中,我们将使用径向基函数内核。
```python
from sklearn.svm import SVC
svm = SVC(kernel='rbf', random_state=42)
svm.fit(X_train, y_train)
y_pred = svm.predict(X_test)
```
4. 模型评估
我们可以使用sklearn库中的各种指标来评估模型的性能,如准确率、精确率、召回率等等。
```python
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
print('Accuracy:', accuracy_score(y_test, y_pred))
print('Precision:', precision_score(y_test, y_pred))
print('Recall:', recall_score(y_test, y_pred))
print('F1 Score:', f1_score(y_test, y_pred))
```
在本实验中,我们使用了径向基函数内核的SVM模型,它在威斯康辛乳腺癌数据集上的分类性能非常好。我们可以看到,该模型的准确率为97.66%,精确率为98.11%,召回率为96.88%,F1分数为97.49%。这表明该模型可以非常准确地对乳腺癌患者进行分类。