机器学习——python训练KNN模型实战(傻瓜式教学,小学生都可以学会)代码开源

机器学习实战目录

第一章 python训练线性模型实战

第二章 python训练决策树模型实战

第三章 python训练神经网络模型实战

第四章 python训练支持向量机模型实战

第五章 python训练贝叶斯分类器模型实战

第六章 python训练集成学习模型实战

第七章 python训练聚类模型实战

第八章 python训练KNN模型实战

第九章 python训练CNN模型实战

第十章 python训练RNN模型实战

......(会一直更新)

第八章 python训练KNN模型实战

目录

机器学习实战目录

第八章 python训练KNN模型实战

1. 下载数据集

2. 读取数据集

3. 数据预处理

4. 划分训练集和测试集

5. 定义KNN模型

6. 训练模型

7. 测试模型

完整代码如下:

参考资料:


训练KNN模型的步骤如下:

1. 下载数据集

可以在 UCI ML Repository、Kaggle 等网站中下载各种类型的数据集。以使用的 iris 数据集为例,具体步骤如下:

- 前往 UCI ML Repository 网站 (https://archive.ics.uci.edu/ml/datasets/iris)。

- 点击 Data Folder 中的链接,下载 iris.data 文件。

- 将下载后的 iris.data 文件放入项目文件夹下。

2. 读取数据集

使用 pandas 库中的 read_csv() 函数读取 iris 数据集,并将数据集划分成特征向量和标签两部分,其中特征向量是用于训练 KNN 模型的数据。


``` python

import pandas as pd



colnames = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

iris = pd.read_csv('iris.data', names=colnames)



X = iris.iloc[:, :-1].values

y = iris.iloc[:, -1].values

```

3. 数据预处理

KNN 算法对数据特征值的量纲比较敏感,因此在训练之前需要对数据进行标准化处理。可以使用 sklearn 中的 StandardScaler 类来实现该过程。


``` python

from sklearn.preprocessing import StandardScaler



scaler = StandardScaler()

X = scaler.fit_transform(X)

```

4. 划分训练集和测试集

使用 train_test_split() 函数将数据集划分为训练集和测试集。


``` python

from sklearn.model_selection import train_test_split



X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

```

5. 定义KNN模型

在 sklearn 中,可以使用 KNeighborsClassifier 类来定义 KNN 分类器。


``` python

from sklearn.neighbors import KNeighborsClassifier



knn = KNeighborsClassifier(n_neighbors=3)

```

6. 训练模型

使用 fit() 函数对模型进行训练。


``` python

knn.fit(X_train, y_train)

```

7. 测试模型

使用 predict() 函数对测试集进行预测,并使用 accuracy_score() 函数计算准确率。


``` python

from sklearn.metrics import accuracy_score



y_pred = knn.predict(X_test)

accuracy = accuracy_score(y_test, y_pred)

print("Accuracy:", accuracy)

```

完整代码如下:


``` python

import pandas as pd

from sklearn.preprocessing import StandardScaler

from sklearn.neighbors import KNeighborsClassifier

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score



# 读取数据集

colnames = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

iris = pd.read_csv('iris.data', names=colnames)



# 准备训练数据

X = iris.iloc[:, :-1].values

y = iris.iloc[:, -1].values



# 数据预处理

scaler = StandardScaler()

X = scaler.fit_transform(X)



# 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)



# 定义KNN模型

knn = KNeighborsClassifier(n_neighbors=3)



# 训练模型

knn.fit(X_train, y_train)



# 测试模型

y_pred = knn.predict(X_test)

accuracy = accuracy_score(y_test, y_pred)

print("Accuracy:", accuracy)

```

参考资料:

[[1](https://zhuanlan.zhihu.com/p/138040633)]

大家觉得有帮助的话还请大家给个收藏关注鼓励一下,有什么问题评论区留言,看到会恢复哒~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值