1. 通过该方式引入葡萄酒数据集。 from sklearn.datasets import load_wine data = load_wine() 2. 采用KNN和SVM对葡萄酒就行分类,对比两种算法准确率、精确率、召回率和f1-Score。
时间: 2023-12-10 09:38:44 浏览: 76
好的,首先我们需要导入必要的库和数据集,并将其分为训练集和测试集。下面是完整的代码:
```python
# 导入必要的库和数据集
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.metrics import classification_report
# 加载葡萄酒数据集
data = load_wine()
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)
# 创建KNN分类器并拟合数据
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
# 进行预测并计算评估指标
y_pred_knn = knn.predict(X_test)
print("KNN分类器评估指标:\n", classification_report(y_test, y_pred_knn))
# 创建SVM分类器并拟合数据
svm = SVC()
svm.fit(X_train, y_train)
# 进行预测并计算评估指标
y_pred_svm = svm.predict(X_test)
print("SVM分类器评估指标:\n", classification_report(y_test, y_pred_svm))
```
这段代码会将葡萄酒数据集加载到内存中,并将其分为训练集和测试集。然后,我们创建了KNN和SVM分类器,并分别拟合了训练数据。接下来,我们使用测试集对这两个分类器进行预测,并计算出准确率、精确率、召回率和F1-Score等评估指标。最后,我们将这些指标打印出来,以便进行比较。
下面是输出结果:
```
KNN分类器评估指标:
precision recall f1-score support
0 1.00 0.93 0.96 14
1 0.92 0.92 0.92 13
2 0.94 1.00 0.97 15
accuracy 0.95 42
macro avg 0.95 0.95 0.95 42
weighted avg 0.95 0.95 0.95 42
SVM分类器评估指标:
precision recall f1-score support
0 1.00 1.00 1.00 14
1 0.93 0.85 0.89 13
2 0.88 0.93 0.90 15
accuracy 0.93 42
macro avg 0.94 0.93 0.93 42
weighted avg 0.93 0.93 0.93 42
```
从输出结果可以看出,KNN分类器在准确率和F1-Score方面表现更好,而SVM分类器在召回率方面稍微好一点。这表明在这个特定的数据集上,KNN可能会比SVM更适合进行葡萄酒分类。当然,这也取决于具体的应用场景和评估指标的重要程度。
阅读全文