KNN算法 鸢尾花种类预测

目录

一:KNN原理

二:数据处理

三:超参调试、模型保存及使用

四:鸢尾花种类预测 详细步骤 


一:KNN原理

从训练集中找到跟待测数据最近的k条记录

根据这些记录的分类决定新数据的分类

主要因素包括有:K邻居数目、训练集大小(数据集[训练集]长度的开平方)

1)计算距离:欧式距离 n个影响因素  p

2)找邻居:圈定一个距离待测数据最近的K个相邻对象

3)做分类:根据这些记录做出分类

详细见下面这篇文章

KNN算法原理 

二:数据处理

文件读取数据

特征数据、标签数据 --> DataFrame、数据洗牌、重置index

数据格式转换numpy ndarray 维度转换 

详细见下面这篇文章 

鸢尾花数据集处理

三:超参调试、模型保存及使用

超参调试

1:K 小于数据集[训练集]长度开平方

2:权重weight

3:p 维度*2--欧式距离的次方数加和

4:网络模型交叉数据验证 best_param

模型保存及使用

joblib

dump

load

对于测试集的创建--feature+label

详细见下面这篇文章

KNN搜索最优超参数 

四:鸢尾花种类预测 详细步骤 

4.1 加载数据

# 加载数据  鸢尾花load_iris
iris_datasets = load_iris()

4.2 提取特征数据

# 特征数据
iris_data = iris_datasets['data']

4.3 提取标签数据

# 标签数据
iris_target = iris_datasets['target']

4.4 数据集划分

# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size=0.2, random_state=6)

4.5 选择算法

# 选择算法 -- 有监督的分类问题
# KNN K近邻算法(近朱者赤近墨者黑)
# 创建算法
knn_model = KNeighborsClassifier(n_neighbors=3)

4.6 构建模型

# 构建基于训练集的模型
knn_model.fit(X_train, y_train)

4.7 模型评分

# 模型评分
score = knn_model.score(X_test, y_test)
print(score)

输出结果:0.9333333333333333 

4.8 调参优化

# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size=0.5, random_state=6)
# 选择算法 -- 有监督的分类问题
# KNN K近邻算法(近朱者赤近墨者黑)
# 创建算法
knn_model = KNeighborsClassifier(n_neighbors=3)
# 构建基于训练集的模型
knn_model.fit(X_train, y_train)
# 模型评分
score = knn_model.score(X_test, y_test)
print(score)

将test_size设置为0.5的时候,模型评分较高,评分结果如下

0.9733333333333334

4.9 模型预测

# 模型预测
predict_y = knn_model.predict(X_test)
print(predict_y == y_test)
[ True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True False  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
 False  True  True  True  True  True  True  True  True  True  True  True
  True  True  True]

可以看出False预测错误就两个,模型评分还是比较高的 

4.10 完整源码分享

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# 加载数据  鸢尾花load_iris
iris_datasets = load_iris()
# 特征数据
iris_data = iris_datasets['data']
# 标签数据
iris_target = iris_datasets['target']
# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size=0.5, random_state=6)
# 选择算法 -- 有监督的分类问题
# KNN K近邻算法(近朱者赤近墨者黑)
# 创建算法
knn_model = KNeighborsClassifier(n_neighbors=3)
# 构建基于训练集的模型
knn_model.fit(X_train, y_train)
# 模型评分
score = knn_model.score(X_test, y_test)
print(score)
# 模型预测
predict_y = knn_model.predict(X_test)
print(predict_y == y_test)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现 KNN算法实现鸢尾花数据集分类 C语言实现
根据提供的引用内容,我们可以了解到KNN算法是一种基于实例的学习或非泛化学习的方法,它可以用于分类和回归。在分类问题中,KNN算法的目标是预测一个未知样本所属的类别,该样本的类别由其最近邻居的类别决定。在回归问题中,KNN算法的目标是预测一个未知样本的值,该值由其最近邻居的平均值决定。 下面是使用Matlab实现KNN算法鸢尾花数据集进行分类的示例代码: ```matlab % 加载数据集 load iris_dataset.mat % 将数据集分为训练集和测试集 [trainInd,testInd] = dividerand(size(irisInputs,2),0.7,0.3); trainInputs = irisInputs(:,trainInd); trainTargets = irisTargets(:,trainInd); testInputs = irisInputs(:,testInd); testTargets = irisTargets(:,testInd); % 训练模型 k = 5; % 设置K值 mdl = fitcknn(trainInputs',trainTargets','NumNeighbors',k); % 预测测试集 predictedTargets = predict(mdl,testInputs'); % 计算准确率 accuracy = sum(predictedTargets == testTargets')/length(testTargets) % 显示结果 figure gscatter(testInputs(1,:),testInputs(2,:),predictedTargets) hold on gscatter(trainInputs(1,:),trainInputs(2,:),trainTargets,'k','+') xlabel('花萼长度') ylabel('花萼宽度') legend('预测结果','训练集') ``` 该代码首先加载了鸢尾花数据集,然后将其分为训练集和测试集。接下来,代码使用fitcknn函数训练了一个KNN分类器,并使用predict函数对测试集进行预测。最后,代码计算了预测的准确率,并使用gscatter函数将预测结果可视化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenruhan_QAQ_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值