首页
学习
活动
专区
工具
TVP
发布

KNN的R语言和python实现

今天继续昨天的题目

利用KNN对测试数据进行预测并画出图形

R版本

生成测试数据并画图

minX1

minX2

maxX1

maxX2

X1.range

X2.range

test

ggplot(test, aes(X1, X2)) + geom_point(size=0.5)

require(class)

knnplot

KNN

test$predict

# 将因子型数据转成数值型

test$z

title = paste('k=', as.character(k), sep='')

g

geom_point(aes(colour = predict), size=0.5) +

geom_contour(aes(z=z), colour='black', size = 0.1) +

#其中opts

theme(legend.position = "none") + labs(title=title)

# training points

g

return(list(gplot=g,pred=test))

}

mm

mm$gplot

mm$pred

python版本

minx1=min(data1.X1)

minx2=min(data1.X2)

maxx1=max(data1.X1)

maxx2=max(data1.X2)

#建立两个序列

#以指定的时间间隔返回均匀间隔的数字。

#返回均匀间隔的样本,在间隔[start,stop]上计算。

#间隔的终点可以选择性地排除。

X1_range=np.linspace(start=minx1, stop=maxx1, num=100)

X2_range=np.linspace(start=minx2, stop=maxx2, num=100)

test=pd.DataFrame({'X1':np.tile(X1_range,100), 'X2':np.repeat(X2_range,100)})

#s控制每个point的大小

plt.scatter(test.X1,test.X2,s=0.5)

利用sklearn库对数据进行KNN分类

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=3)

knn.fit(data1[['X1','X2']], data1['Y'])

MM=pd.DataFrame(knn.predict(test))

test_total=pd.concat([test,MM],axis=1)

test_total.columns = ['X1', 'X2','Y']

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171215G006US00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券