pip下载指令(换个中国开源网站)pip install sklearn -i https://pypi.tuna.tsinghua.edu.cn/simple/
感知机(线性回归)
感知机训练集线性不可分是,感知机学习算法不收敛,迭代结果会发生震荡。
k近邻模型
已知特征空间被划分为两个或多个子空间,对新的输入依据近邻原则划分到子空间的某一空间内。
划分原则:距离、k值选择、分类决策规则。
k值选择:二维空间中,次数选择不同,距离范围不同,k越大,容纳范围越大。k值过小,容易过拟合。
一般用交叉验证法选取最优k值。
k近邻法的实现:kd树
实现k近邻法时,主要考虑的问题时如何对训练数据进行快递k近邻搜索。线性扫描计算耗时,为了提高k近邻搜索的效率,考虑使用特殊记过存储训练数据,以减少计算距离次数,如kd树法。
kd树是一种二叉树,表示对k维空间的一个划分,
空间k近邻划分(曼哈顿距离)
arr=np.array([2,3,5,4,9,6,4,7,8,10,7,2,9,2])
color=['#FF1493','#0000FF','#A52A2A','#FFD700','#00FF00','#000080','#FF0000']
arr=arr.reshape(7,2)
x=arr[:,0]
y=arr[:,1]
dis=np.empty([7],dtype=int,order='c')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(left=0,right=30)
plt.ylim(bottom=0,top=30)
for i in range(1,30):
for j in range(1,30):
for t in range(0,7):
dis[t]=abs(i-arr[t,0])+abs(j-arr[t,1]) #改距离度量,欧氏距离...
min_index=np.argmin(dis) #数组最值索引
area=np.pi*5*5
plt.scatter(i,j,s=area,c=color[min_index],alpha=0.5)
# print(min_index)
plt.show()