摘要:一定義二個(gè)人理解其實(shí)簡單理解就是通過計(jì)算新加入點(diǎn)與附近個(gè)點(diǎn)的距離,然后尋找到距離最近的個(gè)點(diǎn),進(jìn)行占比統(tǒng)計(jì),找到個(gè)點(diǎn)中數(shù)量占比最高的,那么新加入的樣本,它的就是頻數(shù)最高的三實(shí)踐語言歐拉距離樣本繪圖計(jì)算距離歐拉距離求出和相
一、定義
url:https://en.wikipedia.org/wiki...
In pattern recognition, the k-nearest neighbors algorithm (k-NN) is a non-parametric method used for classification and regression.[1] In both cases, the input consists of the k closest training examples in the feature space. The output depends on whether k-NN is used for classification or regression:二、個(gè)人理解In k-NN classification, the output is a class membership. An object is classified by a majority vote of its neighbors, with the object being assigned to the class most common among its k nearest neighbors (k is a positive integer, typically small). If k = 1, then the object is simply assigned to the class of that single nearest neighbor.
In k-NN regression, the output is the property value for the object. This value is the average of the values of its k nearest neighbors.
其實(shí)簡單理解就是:通過計(jì)算新加入點(diǎn)與附近K個(gè)點(diǎn)的距離,然后尋找到距離最近的K個(gè)點(diǎn),進(jìn)行占比統(tǒng)計(jì),找到k個(gè)點(diǎn)中數(shù)量占比最高的target,那么新加入的樣本,它的target就是頻數(shù)最高的target三、實(shí)踐
語言:python3
歐拉距離:
# -*- coding: utf-8 -*- """ Created on Sat Mar 17 11:17:18 2018 @author: yangzinan """ import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt from math import sqrt from collections import Counter # 樣本 x= [ [3.393533211,2.331273381], [3.110073483,1.781539638], [1.343808831,3.368360954], [3.582294042,4.679179110], [2.280362439,2.866990263], [7.423436942,4.696522875], [5.745051997,3.533989803], [9.172168622,2.511101045], [7.792783481,3.424088941], [7.939820817,0.791637231] ] y= [0,0,0,0,0,1,1,1,1,1] x_train = np.array(x) y_train = np.array(y) # 繪圖 plt.scatter(x_train[y_train==0,0],x_train[y_train==0,1],color="red") plt.scatter(x_train[y_train==1,0],x_train[y_train==1,1],color="green") x_point = np.array([8.093607318,3.365731514]) plt.scatter(x_point[0],x_point[1],color="blue") plt.show() #計(jì)算距離 歐拉距離 distances = [] for d in x_train: # 求出和x相差的距離 d_sum = sqrt(np.sum(((d-x)**2))) distances.append(d_sum) print(distances) #求出最近的點(diǎn) #按照從小到大的順序,得到下標(biāo) nearest = np.argsort(distances) #指定應(yīng)該求出的個(gè)數(shù) k = 3 topK_y = [] #求出前K個(gè)target for i in nearest[:k]: topK_y.append(y_train[i]) #得到頻數(shù)最高的target,那么新加入點(diǎn)target 就是頻數(shù)最高的 predict_y = Counter(topK_y).most_common(1)[0][0] print(predict_y)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44639.html
摘要:大家好,今天我們來了解如何使用在各種云服務(wù)提供商的平臺(tái)上部署。是一個(gè)可以幫助我們在自己的電腦云服務(wù)提供商的平臺(tái)以及我們數(shù)據(jù)中心的機(jī)器上創(chuàng)建機(jī)器的應(yīng)用程序。支持幾個(gè)流行的云平臺(tái),如及其它等等,所以我們可以在不同的平臺(tái)使用相同的接口來部署。 大家好,今天我們來了解如何使用Docker Machine在各種云服務(wù)提供商的平臺(tái)上部署Docker。Docker Machine是一個(gè)可以幫助我們在自己的...
摘要:很明顯,有有分錢沒有分錢售出糖果糖果售罄四個(gè)狀態(tài),同時(shí)也對(duì)應(yīng)四個(gè)動(dòng)作投入分錢,退回分錢,轉(zhuǎn)動(dòng)曲柄和發(fā)放糖果。狀態(tài)模式的類圖如下狀態(tài)模式是將多個(gè)行為封裝在狀態(tài)對(duì)象中,的行為隨時(shí)可委托到其中一個(gè)狀態(tài)中。 問題:有一個(gè)糖果公司需要設(shè)計(jì)一個(gè)糖果售賣機(jī),控制流程如下圖,需要怎么實(shí)現(xiàn)? showImg(http://media.gusibi.mobi/5aI8Zy9kkfNI8jzRA8VYMG...
摘要:大家好,今天我們來了解如何使用在各種云服務(wù)提供商的平臺(tái)上部署。是一個(gè)可以幫助我們在自己的電腦云服務(wù)提供商的平臺(tái)以及我們數(shù)據(jù)中心的機(jī)器上創(chuàng)建機(jī)器的應(yīng)用程序。支持幾個(gè)流行的云平臺(tái),如及其它等等,所以我們可以在不同的平臺(tái)使用相同的接口來部署。 大家好,今天我們來了解如何使用Docker Machine在各種云服務(wù)提供商的平臺(tái)上部署Docker。Docker Machine是一個(gè)可以幫助我們在...
閱讀 2574·2021-09-30 09:48
閱讀 2564·2019-08-30 14:10
閱讀 2708·2019-08-29 11:22
閱讀 1837·2019-08-26 13:51
閱讀 2276·2019-08-26 12:02
閱讀 2415·2019-08-23 16:06
閱讀 3548·2019-08-23 14:06
閱讀 1093·2019-08-23 13:56