请帮我找一个用于SVM二分类的数据集,并给出python代码
时间: 2024-10-05 20:03:23 浏览: 37
SVM对鸢尾花(Iris)数据集进行分类的Python代码
SVM(Support Vector Machine)是一种常用的监督学习算法,常用于二分类和多分类问题。常用的数据集如Iris数据集、Digits手写数字数据集或者Breast Cancer Wisconsin(诊断)数据集都适合用来演示SVM的应用。这里以经典的Iris数据集为例,它是Python scikit-learn库内置的一个小型数据集。
首先,你需要安装必要的库,包括`scikit-learn`(sklearn):
```bash
pip install -U scikit-learn
```
然后,你可以使用下面的Python代码加载并预处理Iris数据集,最后训练一个SVM模型:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
# 加载数据集
iris = datasets.load_iris()
X = iris.data[:, :2] # 取前两个特征做二分类(假设你想要区分Setosa和Versicolor)
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 创建SVM分类器
svm = SVC(kernel='linear') # 线性核,其他如'rbf'是非线性的
# 训练模型
svm.fit(X_train, y_train)
# 预测
y_pred = svm.predict(X_test)
# 打印一些评估指标(例如准确率)
print("Accuracy:", svm.score(X_test, y_test))
```
阅读全文