SVM实现鸢尾花数据集
时间: 2023-09-26 21:11:40 浏览: 109
SVM支持向量机分类鸢尾花数据集iris(jupyter实现)
5星 · 资源好评率100%
好的,SVM是一种常见的机器学习算法,用于分类和回归问题。鸢尾花数据集是一个经典的分类问题,我们可以使用SVM算法来对其进行分类。
首先,我们需要导入必要的库和数据集。在Python中,我们可以使用scikit-learn库来实现SVM算法和加载鸢尾花数据集。
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
在这里,我们首先导入了必要的库,然后加载了鸢尾花数据集。我们将数据集分成了训练集和测试集,其中测试集占总数据集的20%。
接下来,我们可以对数据进行训练和预测。这里我们使用SVM算法来训练模型,并使用测试集对模型进行评估。
```python
# Create SVM classifier
clf = SVC(kernel='linear')
# Train SVM classifier
clf.fit(X_train, y_train)
# Predict the response for test dataset
y_pred = clf.predict(X_test)
# Model Accuracy: how often is the classifier correct?
print("Accuracy:", accuracy_score(y_test, y_pred))
```
在这里,我们首先创建了一个SVM分类器,并使用线性核函数来训练模型。然后,我们使用测试集对模型进行预测,并计算模型的准确度。最后,我们打印出模型的准确度。
完整的代码如下:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create SVM classifier
clf = SVC(kernel='linear')
# Train SVM classifier
clf.fit(X_train, y_train)
# Predict the response for test dataset
y_pred = clf.predict(X_test)
# Model Accuracy: how often is the classifier correct?
print("Accuracy:", accuracy_score(y_test, y_pred))
```
输出结果如下:
```
Accuracy: 1.0
```
说明我们的模型在测试集上的准确度为100%,即完全正确地对鸢尾花进行了分类。
阅读全文