码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-09-25 12:29:33      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:算法   cat   marker   经典算法   k最近邻   元素   数组   cti   分类   

邻近算法,或者说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]

 

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

标签:算法   cat   marker   经典算法   k最近邻   元素   数组   cti   分类   

原文地址:https://www.cnblogs.com/itman123/p/11583747.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!