美文网首页
KNN最邻近分类运用

KNN最邻近分类运用

作者: 一天天111 | 来源:发表于2019-10-21 09:37 被阅读0次
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import neighbors#导入KNN模块
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']#解决绘图中文乱码问题

import warnings
#不发出警告
warnings.filterwarnings('ignore')

#创建数据
data=pd.DataFrame({'name':['北京遇上西雅图','喜欢你','疯狂动物城','战狼2','力王','敢死队'],
                  'fight':[3,2,1,101,99,98],
                  'kiss':[104,100,81,10,5,2],
                  'type':['Romance','Romance','Romance','Action','Action','Action']})

print(data)

plt.scatter(data[data['type']=='Romance']['fight'],data[data['type']=='Romance']['kiss'],color='r',marker='o',label='Romance')
plt.scatter(data[data['type']=='Action']['fight'],data[data['type']=='Action']['kiss'],color='g',marker='o',label='Action')
# =============================================================================
# 
# # plt.legend()
# 
# 
# #knn.fit(X,y)
# # 其中X是数组形式(下面的例子中会有注释讲解),在X中的每一组数据可以是 tuple 也可以是 list 或者一维 array,但要注意所有数据的长度必须一样(等同于特征的数量)。这一点非常的重要。我们可以把X看成是一个矩阵形式,每一行代表的是一个输入实例的特征数据。
# # y 是一个和 X 长度相同的 list 或一个一维 array,其中每个元素是 X 中相对应的数据的分类标签。
# 
# #用已知的分类数据,建立分类模型
# knn=neighbors.KNeighborsClassifier()
# knn.fit(data[['fight','kiss']],data['type'])
# 
# #进行分类预测
# example=np.array([18,90])
# #knn.predict([18,90])#这样会报错,需要进行reshape(1,-1),因为我们只有一个数据
# example=example.reshape(1,-1)
# pre_res=knn.predict(example)
# print("预测的类型是:",pre_res)
# print("过")
# 
# #用图表的形式表示出来
# plt.scatter(18,90,color='r',marker='x',label='Romance')
# plt.ylabel('kiss')
# plt.xlabel('fight')
# plt.text(18,90,'《你的名字》',color='r')
# 
# 
# 
# 
# #更多数据预测
# data2=pd.DataFrame(np.random.randn(100,2)*50,columns=['fight','kiss'])
# data2['typetest']=knn.predict(data2)
# #print(data2)
# 
# #图形化表示
# plt.scatter(data[data['type']=='Romance']['fight'],data[data['type']=='Romance']['kiss'],color='r',marker='o',label='Romance')
# plt.scatter(data[data['type']=='Action']['fight'],data[data['type']=='Action']['kiss'],color='g',marker='o',label='Action')
# plt.legend()
# 
# 
# plt.scatter(data2[data2['typetest']=='Romance']['fight'],data2[data2['typetest']=='Romance']['kiss'],color='r',marker='x',label='Romance')
# plt.scatter(data2[data2['typetest']=='Action']['fight'],data2[data2['typetest']=='Action']['kiss'],color='g',marker='x',label='Action')
# 
# 
# data2.head()
# 
# =============================================================================

#案例二:植物分类
#导入数据
from sklearn import datasets
iris=datasets.load_iris()
#print(iris)
print(iris.keys())
print('数据长度为:%i条'%len(iris['data']))

print(iris.feature_names)
print(iris.target_names)
print(iris.data[:5])

#feature_name--特征分类:萼片长度、萼片宽度、花瓣长度、花瓣宽度
#目标类别:setosa、versicolor、virginica
data=pd.DataFrame(iris.data,columns=iris.feature_names)
data['target']=iris.target
ty=pd.DataFrame({'target':[0,1,2],
               'target_names':iris.target_names})
iris.target
df=pd.merge(data,ty,on='target')
data.head()

knn=neighbors.KNeighborsClassifier()
knn.fit(iris.data,df['target_names'])
ex=np.array([0.2,0.1,0.3,0.4])
ex=ex.reshape(1,-1)
pre_data=knn.predict(ex)#p: 在机器学习系列中,我们知道p=1时,距离方法定义为曼哈顿距离,在p=2的时候我们定为欧几里得距离。默认值为2。
#每一组数据可以是 tuple 也可以是 list 或者一维 array
pre_data# 结果--array(['setosa'], dtype=object)

相关文章

  • KNN最邻近分类运用

  • SKIL/工作流程/KNN(K邻近值算法)

    K邻近值算法 除了部署转换和网络模型,SKIL还允许你部署KNN模型。 KNN (k邻近值算法) 是最简单的分类算...

  • 机器学习笔记:K-近邻算法(KNN)

    一、介绍 KNN算法称为邻近算法,或者说K邻近算法(kNN,k-NearestNeighbor),分类算法。 KN...

  • KNN 最邻近

    一、KNN介绍 既可以做回归也可以做分类 k邻近的3要素(1) 选择合适的K(一般选奇数):通过交叉验证来选(2)...

  • knn算法

    knn算法 knn算法简介 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法。所谓K...

  • 7.最邻近规则分类KNN

    1. 综述 2. 例子: 未知电影属于什么类型? 3. 算法详述 其他距离衡量:余弦值(cos), 相关度 (co...

  • 邻近算法KNN

    邻近算法 邻近算法,或者说K最近邻(KNN,K-NearestNeighbor)分类算法是数据挖掘[https:/...

  • 李飞飞哔哩哔哩2019-08-06

    曼哈顿距离:使用差值的绝对值和。 欧式距离: Knn (k最邻近) 交叉验证法 。 图像分类 向量机:

  • KNN算法实现及其交叉验证

    KNN算法 用NumPy库实现K-nearest neighbors回归或分类。 knn 邻近算法,或者说K最近邻...

  • KNN算法及python实现

    KNN算法又称最邻近规则分类((K-Nearest Neighbor) 算法详述 通过上面点的转化后,我们根据KN...

网友评论

      本文标题:KNN最邻近分类运用

      本文链接:https://www.haomeiwen.com/subject/vwbzmctx.html