编程语言
首页 > 编程语言> > Python3入门机器学习 经典算法与应用

Python3入门机器学习 经典算法与应用

作者:互联网

邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。

数据预备,这里使用random函数生成10*2的矩阵作为两列特征值,1个10个元素数组作为类别值

import numpy as np
import matplotlib.pyplot as plt
 
x_train = np.random.rand(10,2)*8
y_train = np.random.randint(0,2,10)
x = np.array([3,4])
k=3
plt.scatter(x_train[y_train==1,0],x_train[y_train==1,1],color="red")
plt.scatter(x_train[y_train==0,0],x_train[y_train==0,1],color="green")
plt.scatter(x[0],x[1],marker='+',color="blue")
plt.show()

绿点为类别0,红点为类别1

X_train = np.array(x_train)
 
Y_train = np.array(y_train)
 
from math import sqrt
distances = []
for x_train in X_train:
    d = sqrt(np.sum((x-x_train)**2))
    distances.append(d)
 
distances = [sqrt(np.sum((x-x_train)**2)) for x_train in X_train]
argindex = np.argsort(distances)
 
from collections import Counter
 
topK_Y = [Y_train[i] for i in argindex[:k]]
 
votes = Counter(topK_Y)
votes.most_common(1)[0][0]

 

标签:distances,plt,入门,类别,算法,train,np,import,Python3
来源: https://www.cnblogs.com/itman123/p/11583747.html