使用knn对sklearn wine数据集 进行分类。
时间: 2023-11-24 11:07:11 浏览: 41
好的,下面是使用knn对sklearn wine数据集进行分类的Python代码:
```python
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
wine = load_wine()
X = wine.data
y = wine.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 训练模型
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
# 预测并计算准确率
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)
```
代码解释:
1. 首先,我们导入了`load_wine`函数,它可以帮助我们加载sklearn中的酒数据集。
2. 然后,我们使用`train_test_split`函数将数据集划分为训练集和测试集。
3. 接着,我们使用`KNeighborsClassifier`类初始化一个knn分类器,设置`n_neighbors=5`表示选取最近的5个样本进行预测。
4. 调用`fit`方法训练模型。
5. 最后,我们使用测试集进行预测并计算准确率。
注意:在实际应用中,我们需要对模型进行调优来得到更好的性能。例如,我们可以通过交叉验证选择最优的k值。