小城镇建设的网站文献,苏州小程序开发,英语机构网站建设方案,网店推广的作用是什么目录 一、KNN 算法简介
二、KNN算法的使用
1.读取数据
2.处理数据
三、训练模型
1.导入KNN模块
2.训练模型
3.出厂前测试
四、进行测试
1.处理数据
2.进行测试
总结 一、KNN 算法简介 KNN 是一种基于实例的学习算法。它通过比较样本之间的距离来进行预测。算法的核心…目录 一、KNN 算法简介
二、KNN算法的使用
1.读取数据
2.处理数据
三、训练模型
1.导入KNN模块
2.训练模型
3.出厂前测试
四、进行测试
1.处理数据
2.进行测试
总结 一、KNN 算法简介 KNN 是一种基于实例的学习算法。它通过比较样本之间的距离来进行预测。算法的核心思想是对于一个未知样本通过找到距离该样本最近的 (k) 个已知样本根据这些已知样本的标签来预测未知样本的标签或数值。 二、KNN算法的使用
1.读取数据
import pandas as pd# numpy 读取二维数据
# pandas 读取表格类的数据 本文使用xlsx数据 所以用pandas# 读取数据train_data:训练集
test_data:测试集train_data pd.read_excel(鸢尾花训练数据.xlsx)
test_data pd.read_excel(鸢尾花测试数据.xlsx) 2.处理数据
提取出特征和分类标签 处理训练集数据;
数据重排;
变量与标签分离.train_x train_data[[萼片长(cm), 萼片宽(cm), 花瓣长(cm), 花瓣宽(cm)]] # 特征
train_y train_data[[类型_num]] # 提取单列返回series 需要用[]将其变成列表 # 标签将每一列数据进行标准化处理减小误差大部分情况下能够减小误差 标准化语法 归一化0~1 是对每一个特征列进行归一化
Z-Score标准化 -1~1
# 这里用的是scale模块 即Z-Score标准化方法
from sklearn.preprocessing import scaledata pd.DataFrame()
# 对每一列数据进行标准化 目标: 让每个特征数据都在差不多大小范围内
data[萼片长标准化] scale(train_x[萼片长(cm)])
data[萼片宽标准化] scale(train_x[萼片宽(cm)])
data[花瓣长标准化] scale(train_x[花瓣长(cm)])
data[花瓣宽标准化] scale(train_x[花瓣宽(cm)]) 三、训练模型
1.导入KNN模块 使用sklearn库中的KNN模块from sklearn.neighbors import KNeighborsClassifier 2.训练模型 knn KNeighborsClassifier(n_neighbors9): 创建一个 KNN 分类器对象 n_neighbors9 表示选择 9 个最近邻居来进行分类 使用交叉验证等方法选择合适的 K 值。常用的选择方式是尝试不同的 K 值并选择表现最好的 K。 选择奇数的 K 值可以避免在分类时出现平局情况。 knn.fit(data, train_y): 使用 data 作为特征数据和 train_y 作为目标标签训练 KNN 模型。训练完成后knn 变成一个已经训练好的模型可以用来对新数据进行预测。
knn KNeighborsClassifier(n_neighbors9) # 参数最好是奇数 均值好判断
knn.fit(data, train_y) # 训练模型 knn就是训练好的模型 3.出厂前测试
使用训练集数据和分类对这个训练好的模型进行出厂前的测试
train_predicted knn.predict(data) # 用knn模型对训练集data进行预测 相当于复习
score knn.score(data, train_y) # 直接将使用data数据预测后的数据与data数据原分类进行对比 可以用来判断复习的正确率
print(score)
测试结果
0.9696969696969697 # 说明该模型存在一点误差 四、进行测试
1.处理数据
测试集的数据在读取数据时已经读取过了直接处理数据即可
# 测试
test_x test_data[[萼片长(cm), 萼片宽(cm), 花瓣长(cm), 花瓣宽(cm)]] # 特征
test_y test_data[[类型_num]] # 标签test_data pd.DataFrame()
# 对每一列数据进行标准化
test_data[萼片长标准化] scale(test_x[萼片长(cm)])
test_data[萼片宽标准化] scale(test_x[萼片宽(cm)])
test_data[花瓣长标准化] scale(test_x[花瓣长(cm)])
test_data[花瓣宽标准化] scale(test_x[花瓣宽(cm)])2.进行测试
test_predicted knn.predict(test_data) # 使用knn模型对test_data数据进行预测
print(test_predicted)
score knn.score(test_data, test_y) # 判断测试集正确率
print(score)
测试结果
[0 0 0 0 0 1 0 1 1]
0.8888888888888888 总结 KNN 算法是一种直观且实用的机器学习算法适用于许多实际问题。它的优点在于简单易用但在处理大数据集或高维数据时可能会遇到计算性能问题。通过合理选择 K 值和距离度量可以提高 KNN 算法的效果。