网站建设功能需求,seo是什么姓氏,网页定制,怎样用ps做网站KNN算法-鸢尾花种类预测 文章目录 KNN算法-鸢尾花种类预测1. 数据集介绍2. KNN优缺点#xff1a; K最近邻#xff08;K-Nearest Neighbors#xff0c;KNN#xff09;算法是一种用于模式识别和分类的简单但强大的机器学习算法。它的工作原理非常直观#xff1a;给定一个新数…KNN算法-鸢尾花种类预测 文章目录 KNN算法-鸢尾花种类预测1. 数据集介绍2. KNN优缺点 K最近邻K-Nearest NeighborsKNN算法是一种用于模式识别和分类的简单但强大的机器学习算法。它的工作原理非常直观给定一个新数据点KNN算法会查找离这个数据点最近的K个已知数据点然后基于这K个最近邻数据点的类别来决定新数据点的类别。简而言之KNN算法通过周围数据点的多数投票来决定新数据点所属的类别。KNN常用于分类问题如图像分类、文本分类、垃圾邮件检测等。它也可以用于回归问题称为K最近邻回归K-Nearest Neighbors Regression用于预测数值型输出。
1. 数据集介绍
Iris数据集是常用的分类实验数据集由Fisher1936搜集整理。Iris也称为鸢尾花数据集是一类多重变量分析的数据集。关于数据集的介绍
实例数量150个三种各有50个属性数量4个数值型数值型帮助预测的属性和类Attribute Information 萼片长度萼片宽度花瓣长度花瓣宽度 cm山鸢尾变色鸢尾维吉尼亚鸢尾
以下是代码、注释以及输出
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# K—近邻算法
def KNN_demo():sklearn.neighbors.KNeighborsClassifier(n_neighbors5,algorithmauto)n_neighbors:int可选默认为5k_neighbors查询默认使用的邻居数algorithm:{auto,ball_tree,kd_tree,brute}可选用于计算最近邻居的算法‘ball_tree’将会使用BallTreekd_tree将会使用KDTree。auto将尝试根据传递给fit方法的值来决定最合适的算法。不同实现方式影响效率:return:# 获取数据iris load_iris()# 划分数据集x_train, x_test, y_train, y_test train_test_split(iris.data, iris.target, random_state 6)# 特征工程 标准化transfer StandardScaler()x_train transfer.fit_transform(x_train)x_test transfer.transform(x_test)# KNN算法预估器estimator KNeighborsClassifier(n_neighbors 3)estimator.fit(x_train, y_train)# 模型评估# 方法一y_predict estimator.predict(x_test)print(y_predict:\n, y_predict)print(直接比对真实值和预测值\n, y_test y_predict)# 方法二score estimator.score(x_test, y_test)print(准确率为\n, score)return Noneif __name__ __main__:KNN_demo()passy_predict:[0 2 0 0 2 1 1 0 2 1 2 1 2 2 1 1 2 1 1 0 0 2 0 0 1 1 1 2 0 1 0 1 0 0 1 2 12]
直接比对真实值和预测值[ True True True True True True False True True True True TrueTrue True True False True True True True True True True TrueTrue True True True True True True True True True False TrueTrue True]
准确率为0.92105263157894732. KNN优缺点
优点简单易于实现不需训练缺点懒惰算法对测试样本分类时计算量大内存开销大必须指定K值K值选择不当则分类精度不能保证。使用场景小数据场景几千~几万样本具体场景具体业务去测试。