python代码中使用k近邻分类算法,针对红酒数据集进行训练和预测,输出其准确率与混淆矩阵
时间: 2024-02-24 17:59:30 浏览: 84
好的,以下是针对红酒数据集的k近邻分类算法的Python代码,其中包括数据预处理、模型训练、预测和评估:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
# 读取红酒数据集
wine_data = pd.read_csv('winequality-red.csv')
# 数据预处理
X = wine_data.drop('quality', axis=1) # 特征
y = wine_data['quality'] # 目标变量
y = y.apply(lambda x: 1 if x >= 6 else 0) # 将目标变量二值化,6分及以上为好酒,标记为1,否则为差酒,标记为0
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 模型训练
k = 5 # 设置k值
knn = KNeighborsClassifier(n_neighbors=k)
knn.fit(X_train, y_train)
# 预测
y_pred = knn.predict(X_test)
# 评估
accuracy = accuracy_score(y_test, y_pred) # 准确率
confusion = confusion_matrix(y_test, y_pred) # 混淆矩阵
print('准确率:', accuracy)
print('混淆矩阵:\n', confusion)
```
请注意,在运行此代码之前,您需要下载红酒数据集 "winequality-red.csv" 并确保该文件位于当前工作目录下。
阅读全文