核SVM完成乳腺癌数据集分类代码
时间: 2024-09-26 19:03:18 浏览: 40
核支持向量机(Kernel Support Vector Machine,简称KSVM)是一种通过将样本映射到高维特征空间来进行非线性分类的机器学习算法。在Python的Scikit-Learn库中,可以使用`svm.SVC()`函数结合核函数实现核SVM。以下是一个使用Scikit-Learn对乳腺癌数据集(Breast Cancer Wisconsin Data Set)进行分类的基本示例:
```python
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载乳腺癌数据集
breast_cancer = datasets.load_breast_cancer()
X = breast_cancer.data
y = breast_cancer.target
# 数据预处理,标准化数值特征
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.3, random_state=42)
# 使用核SVM,这里以径向基函数(RBF)为例,选择合适的C和gamma值
clf = SVC(kernel='rbf', C=1, gamma='scale') # 'scale'表示自动选择gamma值
clf.fit(X_train, y_train)
# 预测
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
# 相关问题--
1. SVM中的C参数和gamma参数各有什么作用?
2. 对于其他类型的核函数,如poly或sigmoid,如何设置?
3. 如果数据不平衡,核SVM会怎样应对?
阅读全文