利用matplotlib和KNeighborsClassifier进行机器学习和预测数据

代码:

# 声明
# -*- coding: utf-8 -*-
"""
Created on Mon May 13 12:16:01 2024

@author: admin
"""
# 导入库
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# 下面是两个机器学习的库
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
#定义函数
x1,y1=[],[]
#导入本地数据
fr = open('F:/bigdata/knn.txt', mode='r', encoding='gbk')
for line in fr.readlines():
    lineArr=line.strip().split()
    x1.append([int(lineArr[0]),int(lineArr[1])])
    y1.append(int(lineArr[2]))
# 转换数据类型
X=np.array(x1)
y=np.array(y1)
X_train,X_test,Y_train,Y_test=train_test_split(X,y,test_size=0.16)
    
#网格采样点的个数,采样点越多,分析界面越清晰
N,M=90,90
#分割成训练集合测试集
knn=KNeighborsClassifier(3)
knn.fit(X,y)
#生成采样点的横坐标值S
t1=np.linspace(0,25,N)
#生成采样点的纵坐标值
t2=np.linspace(0,12,N)
#生成网格采样点S
x1,x2=np.meshgrid(t1,t2)
#将采样点作为测试点
x_show=np.stack((x1.flat,x2.flat),axis=1)
#print(x_show)
knn=KNeighborsClassifier(3)
knn.fit(X,y)
#预测采样点的值
y_show_hat=knn.predict(x_show)
#使之与输入的形状相同
y_show_hat=y_show_hat.reshape(x1.shape)
cm_light=mpl.colors.ListedColormap(['#A0FFA0','#FFA0A0','#A0A0FF'])
#预测值的显示
plt.pcolormesh(x1,x2,y_show_hat,cmap=cm_light,alpha=0.3)
plt.show()

导入的文件knn.txt,自己在本地新建文件放入数据:

2  4  1
4  3  2
10 6  3
12 9  2
3  11 3
20 7  2
22 5  2
21 10 1
11 2  3
24 1  1

效果图:

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值