ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

机器学习 KNN算法实现 (鸢尾花)

2021-05-04 13:01:13  阅读:275  来源: 互联网

标签:KNN iris shape print 算法 train test import 鸢尾花


 

 

 

 

frame 是Pandas的dataframe对象

alpha 图像透明度

figsize 英寸为单位的图像大小

diagonal 只能在{‘hist','kde'}中选一个 hist表示直方图 kde表示核密度估计

     这个参数是scatter_matrix的关键参数

marker 是标记类型,如圈,点,三角号

代码

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris_dataset=load_iris()
X_train,X_test,y_train,y_test=train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=2)
#print("X_train",X_train)
#print("y_train",y_train)
#print("X_test",X_test)
#print("y_test",y_test)
#print("X_train shape: {}".format(X_train.shape))
#print("X_test shape: {}".format(X_test.shape))
import pandas as  pd
import matplotlib.pyplot as plt
iris_dataframe=pd.DataFrame(X_train,columns=iris_dataset.feature_names)
pd.plotting.scatter_matrix(iris_dataframe,c=y_train,figsize=(15,15),marker='o',hist_kwds={'bins':20},s=60,alpha=.8)
plt.show()

其中在 jupyter notebook里是不需要import matplotlib.pyplot 就可以显示图像

但是在VScode里必须 加这句

 

从中可以看出 比如 special width 和 special length 之间的关系比较杂乱

我们在训练模型时要优先选择关系明显的特征对进行学习

 

 

 

 

 

n_neighbors 表示近邻数量

weights 计算距离时的权重   缺省值是uniform 表示平均权重

             distance表示距离远近设置不同的权重

metric 是距离的计算 缺省值是 minkowski  闵氏距离 

           显然当P=2即为欧氏距离

                      P=1即为曼哈顿距离

 

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
iris=datasets.load_iris()
print("数据集结构:",iris.data.shape)
#获取属性
iris_X=iris.data
#获取类别
iris_y=iris.target
#划分数据集和训练集
iris_train_X,iris_test_X,iris_train_y,iris_test_y=train_test_split(iris_X,iris_y,test_size=0.2,random_state=0)
#分类器初始化,参数默认
knn=KNeighborsClassifier()
#对训练集进行训练
knn.fit(iris_train_X,iris_train_y)
#对测试集数据的鸢尾花类型进行预测
predict_result=knn.predict(iris_test_X)
print("测试集大小:",iris_test_X.shape)
print("真实结果:",iris_test_y)
print("预测结果:",predict_result)
#显示预测结果准确率
print("预测准确率",knn.score(iris_test_X,iris_test_y))

 

标签:KNN,iris,shape,print,算法,train,test,import,鸢尾花
来源: https://www.cnblogs.com/fengzhiyuan/p/14729135.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有