机器学习之KNN算法

机器学习之KNN算法

KNN概念

KNN(K-Nearest Neighbor)算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。
KNN算法的思想非常简单:对于任意n维输入向量,分别对应于特征空间中的一个点,输出为该特征向量所对应的类别标签或预测值。
KNN算法是一种非常特别的机器学习算法,因为它没有一般意义上的学习过程。它的工作原理是利用训练数据对特征向量空间进行划分,并将划分结果作为最终算法模型。存在一个样本数据集合,也称作训练样本集,并且样本集中的每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。
输入没有标签的数据后,将这个没有标签的数据的每个特征与样本集中的数据对应的特征进行比较,然后提取样本中特征最相近的数据(最近邻)的分类标签。
一般而言,我们只选择样本数据集中前k个最相似的数据,这就是KNN算法中K的由来,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的类别,作为新数据的分类。
其中,在分类问题中,KNN用来预测种类。一般使用“投票法”,选择这k个样本中出现最多的类别来作为测试样本的类别。
在回归问题中,KNN预测一个值。使用“平均法”,将k个样本的实值输出的平均值作为测试样本的输出。

KNN用于分类

import pandas as pd
from numpy import *
import operator
import matplotlib
import matplotlib.pyplot as plt

## 本文数据集为3列,标签集为一列

#此类KNN适用与标签混乱,并且标签只有一列的情况,用于算出它的错误率

#分离出数据和标签,3列的数据集,1列的标签的情况
def file2matrix(filename):
    fr = open(filename)
    arrayOLines = fr.readlines()
    # 得到文件行数
    numberOfLines = len(arrayOLines)
    # print(numberOfLines)
    # 创建返回的NumPy矩阵
    returnMat = zeros((numberOfLines, 3))
    classLabelVector = []
    index = 0
    # 解析文件数据到列表
    for line in arrayOLines:
        line.strip()
        # 截取掉所有的回车字符
        line = line.strip()
        # 数据分割成一个元素列表
        listFromLine = line.split('\t')
        # 下面的3要根据训练的列数确定
        returnMat[index, :] = listFromLine[0:3]
        # classLabelVector.append(int(listFromLine[-1]))
        classLabelVector.append(int(listFromLine[-1]))
        index += 1
    return returnMat, classLabelVector

# 归一化数据
def autoNorm(dataSet):
    minVals = dataSet.min(0)
    maxVals = dataSet.max(0)
    ranges = maxVals - minVals
    normDataSet = zeros(shape(dataSet))
    m = dataSet.shape[0]
    normDataSet = dataSet - tile(minVals, (m, 1))
    # 特征值相除
    normDataSet = normDataSet / tile(ranges, (m, 1))
    return normDataSet, ranges, minVals

# KNN进行分类,这个算法只支持标签为列表的情况
def classify0(inX, dataSet, labels, k):
    dataSetSize = dataSet.shape[0]
    # 距离计算
    diffMat = tile(inX, (dataSetSize, 1)) - dataSet
    sqDiffMat = diffMat ** 2
    sqDistances = sqDiffMat.sum(axis=1)# 按照x轴相加
    distances = sqDistances ** 0.5

    sortedDistIndicies = distances.argsort()
    classCount = {}

    # 选择距离最小的k个点
    for i in range(k):
        voteIlabel = labels[sortedDistIndicies[i]]
        classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1

    # 排序
    sortedClassCount = sorted(classCount.items(),
                              key=operator.itemgetter(1), reverse=True)
    return sortedClassCount[0][0]

if __name__ == '__main__':
    hoRatio = 0.10
    datingDataMat, datingLabels = file2matrix('data/datingTestSet2.txt')
    normMat, ranges, minVals = autoNorm(datingDataMat)
    m = normMat.shape[0]
    numTestVecs = int(m * hoRatio)
    errorCount = 0.0
    for i in range(numTestVecs):
        classifierResult = classify0(normMat[i, :], normMat[numTestVecs:m,:],
                                     datingLabels[numTestVecs:m], 3)
        print("the classifier came back with: {}, the real answer is {}"
              .format(classifierResult, datingLabels[i]))
        if (classifierResult != datingLabels[i]): errorCount += 1.0
    print("the total error rate is: {}".format(errorCount / float(numTestVecs)))

数据集

40920	8.326976	0.953952	3
14488	7.153469	1.673904	2
26052	1.441871	0.805124	1
75136	13.147394	0.428964	1
38344	1.669788	0.134296	1
72993	10.141740	1.032955	1
35948	6.830792	1.213192	3
42666	13.276369	0.543880	3
67497	8.631577	0.749278	1
35483	12.273169	1.508053	3
50242	3.723498	0.831917	1
63275	8.385879	1.669485	1
5569	4.875435	0.728658	2
51052	4.680098	0.625224	1
77372	15.299570	0.331351	1
43673	1.889461	0.191283	1
61364	7.516754	1.269164	1
69673	14.239195	0.261333	1
15669	0.000000	1.250185	2
28488	10.528555	1.304844	3
6487	3.540265	0.822483	2
37708	2.991551	0.833920	1
22620	5.297865	0.638306	2
28782	6.593803	0.187108	3
19739	2.816760	1.686209	2
36788	12.458258	0.649617	3
5741	0.000000	1.656418	2
28567	9.968648	0.731232	3
6808	1.364838	0.640103	2
41611	0.230453	1.151996	1
36661	11.865402	0.882810	3
43605	0.120460	1.352013	1
15360	8.545204	1.340429	3
63796	5.856649	0.160006	1
10743	9.665618	0.778626	2
70808	9.778763	1.084103	1
72011	4.932976	0.632026	1
5914	2.216246	0.587095	2
14851	14.305636	0.632317	3
33553	12.591889	0.686581	3
44952	3.424649	1.004504	1
17934	0.000000	0.147573	2
27738	8.533823	0.205324	3
29290	9.829528	0.238620	3
42330	11.492186	0.263499	3
36429	3.570968	0.832254	1
39623	1.771228	0.207612	1
32404	3.513921	0.991854	1
27268	4.398172	0.975024	1
5477	4.276823	1.174874	2
14254	5.946014	1.614244	2
68613	13.798970	0.724375	1
41539	10.393591	1.663724	3
7917	3.007577	0.297302	2
21331	1.031938	0.486174	2
8338	4.751212	0.064693	2
5176	3.692269	1.655113	2
18983	10.448091	0.267652	3
68837	10.585786	0.329557	1
13438	1.604501	0.069064	2
48849	3.679497	0.961466	1
12285	3.795146	0.696694	2
7826	2.531885	1.659173	2
5565	9.733340	0.977746	2
10346	6.093067	1.413798	2
1823	7.712960	1.054927	2
9744	11.470364	0.760461	3
16857	2.886529	0.934416	2
39336	10.054373	1.138351	3
65230	9.972470	0.881876	1
2463	2.335785	1.366145	2
27353	11.375155	1.528626	3
16191	0.000000	0.605619	2
12258	4.126787	0.357501	2
42377	6.319522	1.058602	1
25607	8.680527	0.086955	3
77450	14.856391	1.129823	1
58732	2.454285	0.222380	1
46426	7.292202	0.548607	3
32688	8.745137	0.857348	3
64890	8.579001	0.683048	1
8554	2.507302	0.869177	2
28861	11.415476	1.505466	3
42050	4.838540	1.680892	1
32193	10.339507	0.583646	3
64895	6.573742	1.151433	1
2355	6.539397	0.462065	2
0	2.209159	0.723567	2
70406	11.196378	0.836326	1
57399	4.229595	0.128253	1
41732	9.505944	0.005273	3
11429	8.652725	1.348934	3
75270	17.101108	0.490712	1
5459	7.871839	0.717662	2
73520	8.262131	1.361646	1
40279	9.015635	1.658555	3
21540	9.215351	0.806762	3
17694	6.375007	0.033678	2
22329	2.262014	1.022169	1
46570	5.677110	0.709469	1
42403	11.293017	0.207976	3
33654	6.590043	1.353117	1
9171	4.711960	0.194167	2
28122	8.768099	1.108041	3
34095	11.502519	0.545097	3
1774	4.682812	0.578112	2
40131	12.446578	0.300754	3
13994	12.908384	1.657722	3
77064	12.601108	0.974527	1
11210	3.929456	0.025466	2
6122	9.751503	1.182050	3
15341	3.043767	0.888168	2
44373	4.391522	0.807100	1
28454	11.695276	0.679015	3
63771	7.879742	0.154263	1
9217	5.613163	0.933632	2
69076	9.140172	0.851300	1
24489	4.258644	0.206892	1
16871	6.799831	1.221171	2
39776	8.752758	0.484418	3
5901	1.123033	1.180352	2
40987	10.833248	1.585426	3
7479	3.051618	0.026781	2
38768	5.308409	0.030683	3
4933	1.841792	0.028099	2
32311	2.261978	1.605603	1
26501	11.573696	1.061347	3
37433	8.038764	1.083910	3
23503	10.734007	0.103715	3
68607	9.661909	0.350772	1
27742	9.005850	0.548737	3
11303	0.000000	0.539131	2
0	5.757140	1.062373	2
32729	9.164656	1.624565	3
24619	1.318340	1.436243	1
42414	14.075597	0.695934	3
20210	10.107550	1.308398	3
33225	7.960293	1.219760	3
54483	6.317292	0.018209	1
18475	12.664194	0.595653	3
33926	2.906644	0.581657	1
43865	2.388241	0.913938	1
26547	6.024471	0.486215	3
44404	7.226764	1.255329	3
16674	4.183997	1.275290	2
8123	11.850211	1.096981	3
42747	11.661797	1.167935	3
56054	3.574967	0.494666	1
10933	0.000000	0.107475	2
18121	7.937657	0.904799	3
11272	3.365027	1.014085	2
16297	0.000000	0.367491	2
28168	13.860672	1.293270	3
40963	10.306714	1.211594	3
31685	7.228002	0.670670	3
55164	4.508740	1.036192	1
17595	0.366328	0.163652	2
1862	3.299444	0.575152	2
57087	0.573287	0.607915	1
63082	9.183738	0.012280	1
51213	7.842646	1.060636	3
6487	4.750964	0.558240	2
4805	11.438702	1.556334	3
30302	8.243063	1.122768	3
68680	7.949017	0.271865	1
17591	7.875477	0.227085	2
74391	9.569087	0.364856	1
37217	7.750103	0.869094	3
42814	0.000000	1.515293	1
14738	3.396030	0.633977	2
19896	11.916091	0.025294	3
14673	0.460758	0.689586	2
32011	13.087566	0.476002	3
58736	4.589016	1.672600	1
54744	8.397217	1.534103	1
29482	5.562772	1.689388	1
27698	10.905159	0.619091	3
11443	1.311441	1.169887	2
56117	10.647170	0.980141	3
39514	0.000000	0.481918	1
26627	8.503025	0.830861	3
16525	0.436880	1.395314	2
24368	6.127867	1.102179	1
22160	12.112492	0.359680	3
6030	1.264968	1.141582	2
6468	6.067568	1.327047	2
22945	8.010964	1.681648	3
18520	3.791084	0.304072	2
34914	11.773195	1.262621	3
6121	8.339588	1.443357	2
38063	2.563092	1.464013	1
23410	5.954216	0.953782	1
35073	9.288374	0.767318	3
52914	3.976796	1.043109	1
16801	8.585227	1.455708	3
9533	1.271946	0.796506	2
16721	0.000000	0.242778	2
5832	0.000000	0.089749	2
44591	11.521298	0.300860	3
10143	1.139447	0.415373	2
21609	5.699090	1.391892	2
23817	2.449378	1.322560	1
15640	0.000000	1.228380	2
8847	3.168365	0.053993	2
50939	10.428610	1.126257	3
28521	2.943070	1.446816	1
32901	10.441348	0.975283	3
42850	12.478764	1.628726	3
13499	5.856902	0.363883	2
40345	2.476420	0.096075	1
43547	1.826637	0.811457	1
70758	4.324451	0.328235	1
19780	1.376085	1.178359	2
44484	5.342462	0.394527	1
54462	11.835521	0.693301	3
20085	12.423687	1.424264	3
42291	12.161273	0.071131	3
47550	8.148360	1.649194	3
11938	1.531067	1.549756	2
40699	3.200912	0.309679	1
70908	8.862691	0.530506	1
73989	6.370551	0.369350	1
11872	2.468841	0.145060	2
48463	11.054212	0.141508	3
15987	2.037080	0.715243	2
70036	13.364030	0.549972	1
32967	10.249135	0.192735	3
63249	10.464252	1.669767	1
42795	9.424574	0.013725	3
14459	4.458902	0.268444	2
19973	0.000000	0.575976	2
5494	9.686082	1.029808	3
67902	13.649402	1.052618	1
25621	13.181148	0.273014	3
27545	3.877472	0.401600	1
58656	1.413952	0.451380	1
7327	4.248986	1.430249	2
64555	8.779183	0.845947	1
8998	4.156252	0.097109	2
11752	5.580018	0.158401	2
76319	15.040440	1.366898	1
27665	12.793870	1.307323	3
67417	3.254877	0.669546	1
21808	10.725607	0.588588	3
15326	8.256473	0.765891	2
20057	8.033892	1.618562	3
79341	10.702532	0.204792	1
15636	5.062996	1.132555	2
35602	10.772286	0.668721	3
28544	1.892354	0.837028	1
57663	1.019966	0.372320	1
78727	15.546043	0.729742	1
68255	11.638205	0.409125	1
14964	3.427886	0.975616	2
21835	11.246174	1.475586	3
7487	0.000000	0.645045	2
8700	0.000000	1.424017	2
26226	8.242553	0.279069	3
65899	8.700060	0.101807	1
6543	0.812344	0.260334	2
46556	2.448235	1.176829	1
71038	13.230078	0.616147	1
47657	0.236133	0.340840	1
19600	11.155826	0.335131	3
37422	11.029636	0.505769	3
1363	2.901181	1.646633	2
26535	3.924594	1.143120	1
47707	2.524806	1.292848	1
38055	3.527474	1.449158	1
6286	3.384281	0.889268	2
10747	0.000000	1.107592	2
44883	11.898890	0.406441	3
56823	3.529892	1.375844	1
68086	11.442677	0.696919	1
70242	10.308145	0.422722	1
11409	8.540529	0.727373	2
67671	7.156949	1.691682	1
61238	0.720675	0.847574	1
17774	0.229405	1.038603	2
53376	3.399331	0.077501	1
30930	6.157239	0.580133	1
28987	1.239698	0.719989	1
13655	6.036854	0.016548	2
7227	5.258665	0.933722	2
40409	12.393001	1.571281	3
13605	9.627613	0.935842	2
26400	11.130453	0.597610	3
13491	8.842595	0.349768	3
30232	10.690010	1.456595	3
43253	5.714718	1.674780	3
55536	3.052505	1.335804	1
8807	0.000000	0.059025	2
25783	9.945307	1.287952	3
22812	2.719723	1.142148	1
77826	11.154055	1.608486	1
38172	2.687918	0.660836	1
31676	10.037847	0.962245	3
74038	12.404762	1.112080	1
44738	10.237305	0.633422	3
17410	4.745392	0.662520	2
5688	4.639461	1.569431	2
36642	3.149310	0.639669	1
29956	13.406875	1.639194	3
60350	6.068668	0.881241	1
23758	9.477022	0.899002	3
25780	3.897620	0.560201	2
11342	5.463615	1.203677	2
36109	3.369267	1.575043	1
14292	5.234562	0.825954	2
11160	0.000000	0.722170	2
23762	12.979069	0.504068	3
39567	5.376564	0.557476	1
25647	13.527910	1.586732	3
14814	2.196889	0.784587	2
73590	10.691748	0.007509	1
35187	1.659242	0.447066	1
49459	8.369667	0.656697	3
31657	13.157197	0.143248	3
6259	8.199667	0.908508	2
33101	4.441669	0.439381	3
27107	9.846492	0.644523	3
17824	0.019540	0.977949	2
43536	8.253774	0.748700	3
67705	6.038620	1.509646	1
35283	6.091587	1.694641	3
71308	8.986820	1.225165	1
31054	11.508473	1.624296	3
52387	8.807734	0.713922	3
40328	0.000000	0.816676	1
34844	8.889202	1.665414	3
11607	3.178117	0.542752	2
64306	7.013795	0.139909	1
32721	9.605014	0.065254	3
33170	1.230540	1.331674	1
37192	10.412811	0.890803	3
13089	0.000000	0.567161	2
66491	9.699991	0.122011	1
15941	0.000000	0.061191	2
4272	4.455293	0.272135	2
48812	3.020977	1.502803	1
28818	8.099278	0.216317	3
35394	1.157764	1.603217	1
71791	10.105396	0.121067	1
40668	11.230148	0.408603	3
39580	9.070058	0.011379	3
11786	0.566460	0.478837	2
19251	0.000000	0.487300	2
56594	8.956369	1.193484	3
54495	1.523057	0.620528	1
11844	2.749006	0.169855	2
45465	9.235393	0.188350	3
31033	10.555573	0.403927	3
16633	6.956372	1.519308	2
13887	0.636281	1.273984	2
52603	3.574737	0.075163	1
72000	9.032486	1.461809	1
68497	5.958993	0.023012	1
35135	2.435300	1.211744	1
26397	10.539731	1.638248	3
7313	7.646702	0.056513	2
91273	20.919349	0.644571	1
24743	1.424726	0.838447	1
31690	6.748663	0.890223	3
15432	2.289167	0.114881	2
58394	5.548377	0.402238	1
33962	6.057227	0.432666	1
31442	10.828595	0.559955	3
31044	11.318160	0.271094	3
29938	13.265311	0.633903	3
9875	0.000000	1.496715	2
51542	6.517133	0.402519	3
11878	4.934374	1.520028	2
69241	10.151738	0.896433	1
37776	2.425781	1.559467	1
68997	9.778962	1.195498	1
67416	12.219950	0.657677	1
59225	7.394151	0.954434	1
29138	8.518535	0.742546	3
5962	2.798700	0.662632	2
10847	0.637930	0.617373	2
70527	10.750490	0.097415	1
9610	0.625382	0.140969	2
64734	10.027968	0.282787	1
25941	9.817347	0.364197	3
2763	0.646828	1.266069	2
55601	3.347111	0.914294	1
31128	11.816892	0.193798	3
5181	0.000000	1.480198	2
69982	10.945666	0.993219	1
52440	10.244706	0.280539	3
57350	2.579801	1.149172	1
57869	2.630410	0.098869	1
56557	11.746200	1.695517	3
42342	8.104232	1.326277	3
15560	12.409743	0.790295	3
34826	12.167844	1.328086	3
8569	3.198408	0.299287	2
77623	16.055513	0.541052	1
78184	7.138659	0.158481	1
7036	4.831041	0.761419	2
69616	10.082890	1.373611	1
21546	10.066867	0.788470	3
36715	8.129538	0.329913	3
20522	3.012463	1.138108	2
42349	3.720391	0.845974	1
9037	0.773493	1.148256	2
26728	10.962941	1.037324	3
587	0.177621	0.162614	2
48915	3.085853	0.967899	1
9824	8.426781	0.202558	2
4135	1.825927	1.128347	2
9666	2.185155	1.010173	2
59333	7.184595	1.261338	1
36198	0.000000	0.116525	1
34909	8.901752	1.033527	3
47516	2.451497	1.358795	1
55807	3.213631	0.432044	1
14036	3.974739	0.723929	2
42856	9.601306	0.619232	3
64007	8.363897	0.445341	1
59428	6.381484	1.365019	1
13730	0.000000	1.403914	2
41740	9.609836	1.438105	3
63546	9.904741	0.985862	1
30417	7.185807	1.489102	3
69636	5.466703	1.216571	1
64660	0.000000	0.915898	1
14883	4.575443	0.535671	2
7965	3.277076	1.010868	2
68620	10.246623	1.239634	1
8738	2.341735	1.060235	2
7544	3.201046	0.498843	2
6377	6.066013	0.120927	2
36842	8.829379	0.895657	3
81046	15.833048	1.568245	1
67736	13.516711	1.220153	1
32492	0.664284	1.116755	1
39299	6.325139	0.605109	3
77289	8.677499	0.344373	1
33835	8.188005	0.964896	3
71890	9.414263	0.384030	1
32054	9.196547	1.138253	3
38579	10.202968	0.452363	3
55984	2.119439	1.481661	1
72694	13.635078	0.858314	1
42299	0.083443	0.701669	1
26635	9.149096	1.051446	3
8579	1.933803	1.374388	2
37302	14.115544	0.676198	3
22878	8.933736	0.943352	3
4364	2.661254	0.946117	2
4985	0.988432	1.305027	2
37068	2.063741	1.125946	1
41137	2.220590	0.690754	1
67759	6.424849	0.806641	1
11831	1.156153	1.613674	2
34502	3.032720	0.601847	1
4088	3.076828	0.952089	2
15199	0.000000	0.318105	2
17309	7.750480	0.554015	3
42816	10.958135	1.482500	3
43751	10.222018	0.488678	3
58335	2.367988	0.435741	1
75039	7.686054	1.381455	1
42878	11.464879	1.481589	3
42770	11.075735	0.089726	3
8848	3.543989	0.345853	2
31340	8.123889	1.282880	3
41413	4.331769	0.754467	3
12731	0.120865	1.211961	2
22447	6.116109	0.701523	3
33564	7.474534	0.505790	3
48907	8.819454	0.649292	3
8762	6.802144	0.615284	2
46696	12.666325	0.931960	3
36851	8.636180	0.399333	3
67639	11.730991	1.289833	1
171	8.132449	0.039062	2
26674	10.296589	1.496144	3
8739	7.583906	1.005764	2
66668	9.777806	0.496377	1
68732	8.833546	0.513876	1
69995	4.907899	1.518036	1
82008	8.362736	1.285939	1
25054	9.084726	1.606312	3
33085	14.164141	0.560970	3
41379	9.080683	0.989920	3
39417	6.522767	0.038548	3
12556	3.690342	0.462281	2
39432	3.563706	0.242019	1
38010	1.065870	1.141569	1
69306	6.683796	1.456317	1
38000	1.712874	0.243945	1
46321	13.109929	1.280111	3
66293	11.327910	0.780977	1
22730	4.545711	1.233254	1
5952	3.367889	0.468104	2
72308	8.326224	0.567347	1
60338	8.978339	1.442034	1
13301	5.655826	1.582159	2
27884	8.855312	0.570684	3
11188	6.649568	0.544233	2
56796	3.966325	0.850410	1
8571	1.924045	1.664782	2
4914	6.004812	0.280369	2
10784	0.000000	0.375849	2
39296	9.923018	0.092192	3
13113	2.389084	0.119284	2
70204	13.663189	0.133251	1
46813	11.434976	0.321216	3
11697	0.358270	1.292858	2
44183	9.598873	0.223524	3
2225	6.375275	0.608040	2
29066	11.580532	0.458401	3
4245	5.319324	1.598070	2
34379	4.324031	1.603481	1
44441	2.358370	1.273204	1
2022	0.000000	1.182708	2
26866	12.824376	0.890411	3
57070	1.587247	1.456982	1
32932	8.510324	1.520683	3
51967	10.428884	1.187734	3
44432	8.346618	0.042318	3
67066	7.541444	0.809226	1
17262	2.540946	1.583286	2
79728	9.473047	0.692513	1
14259	0.352284	0.474080	2
6122	0.000000	0.589826	2
76879	12.405171	0.567201	1
11426	4.126775	0.871452	2
2493	0.034087	0.335848	2
19910	1.177634	0.075106	2
10939	0.000000	0.479996	2
17716	0.994909	0.611135	2
31390	11.053664	1.180117	3
20375	0.000000	1.679729	2
26309	2.495011	1.459589	1
33484	11.516831	0.001156	3
45944	9.213215	0.797743	3
4249	5.332865	0.109288	2
6089	0.000000	1.689771	2
7513	0.000000	1.126053	2
27862	12.640062	1.690903	3
39038	2.693142	1.317518	1
19218	3.328969	0.268271	2
62911	7.193166	1.117456	1
77758	6.615512	1.521012	1
27940	8.000567	0.835341	3
2194	4.017541	0.512104	2
37072	13.245859	0.927465	3
15585	5.970616	0.813624	2
25577	11.668719	0.886902	3
8777	4.283237	1.272728	2
29016	10.742963	0.971401	3
21910	12.326672	1.592608	3
12916	0.000000	0.344622	2
10976	0.000000	0.922846	2
79065	10.602095	0.573686	1
36759	10.861859	1.155054	3
50011	1.229094	1.638690	1
1155	0.410392	1.313401	2
71600	14.552711	0.616162	1
30817	14.178043	0.616313	3
54559	14.136260	0.362388	1
29764	0.093534	1.207194	1
69100	10.929021	0.403110	1
47324	11.432919	0.825959	3
73199	9.134527	0.586846	1
44461	5.071432	1.421420	1
45617	11.460254	1.541749	3
28221	11.620039	1.103553	3
7091	4.022079	0.207307	2
6110	3.057842	1.631262	2
79016	7.782169	0.404385	1
18289	7.981741	0.929789	3
43679	4.601363	0.268326	1
22075	2.595564	1.115375	1
23535	10.049077	0.391045	3
25301	3.265444	1.572970	2
32256	11.780282	1.511014	3
36951	3.075975	0.286284	1
31290	1.795307	0.194343	1
38953	11.106979	0.202415	3
35257	5.994413	0.800021	1
25847	9.706062	1.012182	3
32680	10.582992	0.836025	3
62018	7.038266	1.458979	1
9074	0.023771	0.015314	2
33004	12.823982	0.676371	3
44588	3.617770	0.493483	1
32565	8.346684	0.253317	3
38563	6.104317	0.099207	1
75668	16.207776	0.584973	1
9069	6.401969	1.691873	2
53395	2.298696	0.559757	1
28631	7.661515	0.055981	3
71036	6.353608	1.645301	1
71142	10.442780	0.335870	1
37653	3.834509	1.346121	1
76839	10.998587	0.584555	1
9916	2.695935	1.512111	2
38889	3.356646	0.324230	1
39075	14.677836	0.793183	3
48071	1.551934	0.130902	1
7275	2.464739	0.223502	2
41804	1.533216	1.007481	1
35665	12.473921	0.162910	3
67956	6.491596	0.032576	1
41892	10.506276	1.510747	3
38844	4.380388	0.748506	1
74197	13.670988	1.687944	1
14201	8.317599	0.390409	2
3908	0.000000	0.556245	2
2459	0.000000	0.290218	2
32027	10.095799	1.188148	3
12870	0.860695	1.482632	2
9880	1.557564	0.711278	2
72784	10.072779	0.756030	1
17521	0.000000	0.431468	2
50283	7.140817	0.883813	3
33536	11.384548	1.438307	3
9452	3.214568	1.083536	2
37457	11.720655	0.301636	3
17724	6.374475	1.475925	3
43869	5.749684	0.198875	3
264	3.871808	0.552602	2
25736	8.336309	0.636238	3
39584	9.710442	1.503735	3
31246	1.532611	1.433898	1
49567	9.785785	0.984614	3
7052	2.633627	1.097866	2
35493	9.238935	0.494701	3
10986	1.205656	1.398803	2
49508	3.124909	1.670121	1
5734	7.935489	1.585044	2
65479	12.746636	1.560352	1
77268	10.732563	0.545321	1
28490	3.977403	0.766103	1
13546	4.194426	0.450663	2
37166	9.610286	0.142912	3
16381	4.797555	1.260455	2
10848	1.615279	0.093002	2
35405	4.614771	1.027105	1
15917	0.000000	1.369726	2
6131	0.608457	0.512220	2
67432	6.558239	0.667579	1
30354	12.315116	0.197068	3
69696	7.014973	1.494616	1
33481	8.822304	1.194177	3
43075	10.086796	0.570455	3
38343	7.241614	1.661627	3
14318	4.602395	1.511768	2
5367	7.434921	0.079792	2
37894	10.467570	1.595418	3
36172	9.948127	0.003663	3
40123	2.478529	1.568987	1
10976	5.938545	0.878540	2
12705	0.000000	0.948004	2
12495	5.559181	1.357926	2
35681	9.776654	0.535966	3
46202	3.092056	0.490906	1
11505	0.000000	1.623311	2
22834	4.459495	0.538867	1
49901	8.334306	1.646600	3
71932	11.226654	0.384686	1
13279	3.904737	1.597294	2
49112	7.038205	1.211329	3
77129	9.836120	1.054340	1
37447	1.990976	0.378081	1
62397	9.005302	0.485385	1
0	1.772510	1.039873	2
15476	0.458674	0.819560	2
40625	10.003919	0.231658	3
36706	0.520807	1.476008	1
28580	10.678214	1.431837	3
25862	4.425992	1.363842	1
63488	12.035355	0.831222	1
33944	10.606732	1.253858	3
30099	1.568653	0.684264	1
13725	2.545434	0.024271	2
36768	10.264062	0.982593	3
64656	9.866276	0.685218	1
14927	0.142704	0.057455	2
43231	9.853270	1.521432	3
66087	6.596604	1.653574	1
19806	2.602287	1.321481	2
41081	10.411776	0.664168	3
10277	7.083449	0.622589	2
7014	2.080068	1.254441	2
17275	0.522844	1.622458	2
31600	10.362000	1.544827	3
59956	3.412967	1.035410	1
42181	6.796548	1.112153	3
51743	4.092035	0.075804	1
5194	2.763811	1.564325	2
30832	12.547439	1.402443	3
7976	5.708052	1.596152	2
14602	4.558025	0.375806	2
41571	11.642307	0.438553	3
55028	3.222443	0.121399	1
5837	4.736156	0.029871	2
39808	10.839526	0.836323	3
20944	4.194791	0.235483	2
22146	14.936259	0.888582	3
42169	3.310699	1.521855	1
7010	2.971931	0.034321	2
3807	9.261667	0.537807	2
29241	7.791833	1.111416	3
52696	1.480470	1.028750	1
42545	3.677287	0.244167	1
24437	2.202967	1.370399	1
16037	5.796735	0.935893	2
8493	3.063333	0.144089	2
68080	11.233094	0.492487	1
59016	1.965570	0.005697	1
11810	8.616719	0.137419	2
68630	6.609989	1.083505	1
7629	1.712639	1.086297	2
71992	10.117445	1.299319	1
13398	0.000000	1.104178	2
26241	9.824777	1.346821	3
11160	1.653089	0.980949	2
76701	18.178822	1.473671	1
32174	6.781126	0.885340	3
45043	8.206750	1.549223	3
42173	10.081853	1.376745	3
69801	6.288742	0.112799	1
41737	3.695937	1.543589	1
46979	6.726151	1.069380	3
79267	12.969999	1.568223	1
4615	2.661390	1.531933	2
32907	7.072764	1.117386	3
37444	9.123366	1.318988	3
569	3.743946	1.039546	2
8723	2.341300	0.219361	2
6024	0.541913	0.592348	2
52252	2.310828	1.436753	1
8358	6.226597	1.427316	2
26166	7.277876	0.489252	3
18471	0.000000	0.389459	2
3386	7.218221	1.098828	2
41544	8.777129	1.111464	3
10480	2.813428	0.819419	2
5894	2.268766	1.412130	2
7273	6.283627	0.571292	2
22272	7.520081	1.626868	3
31369	11.739225	0.027138	3
10708	3.746883	0.877350	2
69364	12.089835	0.521631	1
37760	12.310404	0.259339	3
13004	0.000000	0.671355	2
37885	2.728800	0.331502	1
52555	10.814342	0.607652	3
38997	12.170268	0.844205	3
69698	6.698371	0.240084	1
11783	3.632672	1.643479	2
47636	10.059991	0.892361	3
15744	1.887674	0.756162	2
69058	8.229125	0.195886	1
33057	7.817082	0.476102	3
28681	12.277230	0.076805	3
34042	10.055337	1.115778	3
29928	3.596002	1.485952	1
9734	2.755530	1.420655	2
7344	7.780991	0.513048	2
7387	0.093705	0.391834	2
33957	8.481567	0.520078	3
9936	3.865584	0.110062	2
36094	9.683709	0.779984	3
39835	10.617255	1.359970	3
64486	7.203216	1.624762	1
0	7.601414	1.215605	2
39539	1.386107	1.417070	1
66972	9.129253	0.594089	1
15029	1.363447	0.620841	2
44909	3.181399	0.359329	1
38183	13.365414	0.217011	3
37372	4.207717	1.289767	1
0	4.088395	0.870075	2
17786	3.327371	1.142505	2
39055	1.303323	1.235650	1
37045	7.999279	1.581763	3
6435	2.217488	0.864536	2
72265	7.751808	0.192451	1
28152	14.149305	1.591532	3
25931	8.765721	0.152808	3
7538	3.408996	0.184896	2
1315	1.251021	0.112340	2
12292	6.160619	1.537165	2
49248	1.034538	1.585162	1
9025	0.000000	1.034635	2
13438	2.355051	0.542603	2
69683	6.614543	0.153771	1
25374	10.245062	1.450903	3
55264	3.467074	1.231019	1
38324	7.487678	1.572293	3
69643	4.624115	1.185192	1
44058	8.995957	1.436479	3
41316	11.564476	0.007195	3
29119	3.440948	0.078331	1
51656	1.673603	0.732746	1
3030	4.719341	0.699755	2
35695	10.304798	1.576488	3
1537	2.086915	1.199312	2
9083	6.338220	1.131305	2
47744	8.254926	0.710694	3
71372	16.067108	0.974142	1
37980	1.723201	0.310488	1
42385	3.785045	0.876904	1
22687	2.557561	0.123738	1
39512	9.852220	1.095171	3
11885	3.679147	1.557205	2
4944	9.789681	0.852971	2
73230	14.958998	0.526707	1
17585	11.182148	1.288459	3
68737	7.528533	1.657487	1
13818	5.253802	1.378603	2
31662	13.946752	1.426657	3
86686	15.557263	1.430029	1
43214	12.483550	0.688513	3
24091	2.317302	1.411137	1
52544	10.069724	0.766119	3
61861	5.792231	1.615483	1
47903	4.138435	0.475994	1
37190	12.929517	0.304378	3
6013	9.378238	0.307392	2
27223	8.361362	1.643204	3
69027	7.939406	1.325042	1
78642	10.735384	0.705788	1
30254	11.592723	0.286188	3
21704	10.098356	0.704748	3
34985	9.299025	0.545337	3
31316	11.158297	0.218067	3
76368	16.143900	0.558388	1
27953	10.971700	1.221787	3
152	0.000000	0.681478	2
9146	3.178961	1.292692	2
75346	17.625350	0.339926	1
26376	1.995833	0.267826	1
35255	10.640467	0.416181	3
19198	9.628339	0.985462	3
12518	4.662664	0.495403	2
25453	5.754047	1.382742	2
12530	0.000000	0.037146	2
62230	9.334332	0.198118	1
9517	3.846162	0.619968	2
71161	10.685084	0.678179	1
1593	4.752134	0.359205	2
33794	0.697630	0.966786	1
39710	10.365836	0.505898	3
16941	0.461478	0.352865	2
69209	11.339537	1.068740	1
4446	5.420280	0.127310	2
9347	3.469955	1.619947	2
55635	8.517067	0.994858	3
65889	8.306512	0.413690	1
10753	2.628690	0.444320	2
7055	0.000000	0.802985	2
7905	0.000000	1.170397	2
53447	7.298767	1.582346	3
9194	7.331319	1.277988	2
61914	9.392269	0.151617	1
15630	5.541201	1.180596	2
79194	15.149460	0.537540	1
12268	5.515189	0.250562	2
33682	7.728898	0.920494	3
26080	11.318785	1.510979	3
19119	3.574709	1.531514	2
30902	7.350965	0.026332	3
63039	7.122363	1.630177	1
51136	1.828412	1.013702	1
35262	10.117989	1.156862	3
42776	11.309897	0.086291	3
64191	8.342034	1.388569	1
15436	0.241714	0.715577	2
14402	10.482619	1.694972	2
6341	9.289510	1.428879	2
14113	4.269419	0.134181	2
6390	0.000000	0.189456	2
8794	0.817119	0.143668	2
43432	1.508394	0.652651	1
38334	9.359918	0.052262	3
34068	10.052333	0.550423	3
30819	11.111660	0.989159	3
22239	11.265971	0.724054	3
28725	10.383830	0.254836	3
57071	3.878569	1.377983	1
72420	13.679237	0.025346	1
28294	10.526846	0.781569	3
9896	0.000000	0.924198	2
65821	4.106727	1.085669	1
7645	8.118856	1.470686	2
71289	7.796874	0.052336	1
5128	2.789669	1.093070	2
13711	6.226962	0.287251	2
22240	10.169548	1.660104	3
15092	0.000000	1.370549	2
5017	7.513353	0.137348	2
10141	8.240793	0.099735	2
35570	14.612797	1.247390	3
46893	3.562976	0.445386	1
8178	3.230482	1.331698	2
55783	3.612548	1.551911	1
1148	0.000000	0.332365	2
10062	3.931299	0.487577	2
74124	14.752342	1.155160	1
66603	10.261887	1.628085	1
11893	2.787266	1.570402	2
50908	15.112319	1.324132	3
39891	5.184553	0.223382	3
65915	3.868359	0.128078	1
65678	3.507965	0.028904	1
62996	11.019254	0.427554	1
36851	3.812387	0.655245	1
36669	11.056784	0.378725	3
38876	8.826880	1.002328	3
26878	11.173861	1.478244	3
46246	11.506465	0.421993	3
12761	7.798138	0.147917	3
35282	10.155081	1.370039	3
68306	10.645275	0.693453	1
31262	9.663200	1.521541	3
34754	10.790404	1.312679	3
13408	2.810534	0.219962	2
30365	9.825999	1.388500	3
10709	1.421316	0.677603	2
24332	11.123219	0.809107	3
45517	13.402206	0.661524	3
6178	1.212255	0.836807	2
10639	1.568446	1.297469	2
29613	3.343473	1.312266	1
22392	5.400155	0.193494	1
51126	3.818754	0.590905	1
53644	7.973845	0.307364	3
51417	9.078824	0.734876	3
24859	0.153467	0.766619	1
61732	8.325167	0.028479	1
71128	7.092089	1.216733	1
27276	5.192485	1.094409	3
30453	10.340791	1.087721	3
18670	2.077169	1.019775	2
70600	10.151966	0.993105	1
12683	0.046826	0.809614	2
81597	11.221874	1.395015	1
69959	14.497963	1.019254	1
8124	3.554508	0.533462	2
18867	3.522673	0.086725	2
80886	14.531655	0.380172	1
55895	3.027528	0.885457	1
31587	1.845967	0.488985	1
10591	10.226164	0.804403	3
70096	10.965926	1.212328	1
53151	2.129921	1.477378	1
11992	0.000000	1.606849	2
33114	9.489005	0.827814	3
7413	0.000000	1.020797	2
10583	0.000000	1.270167	2
58668	6.556676	0.055183	1
35018	9.959588	0.060020	3
70843	7.436056	1.479856	1
14011	0.404888	0.459517	2
35015	9.952942	1.650279	3
70839	15.600252	0.021935	1
3024	2.723846	0.387455	2
5526	0.513866	1.323448	2
5113	0.000000	0.861859	2
20851	7.280602	1.438470	2
40999	9.161978	1.110180	3
15823	0.991725	0.730979	2
35432	7.398380	0.684218	3
53711	12.149747	1.389088	3
64371	9.149678	0.874905	1
9289	9.666576	1.370330	2
60613	3.620110	0.287767	1
18338	5.238800	1.253646	2
22845	14.715782	1.503758	3
74676	14.445740	1.211160	1
34143	13.609528	0.364240	3
14153	3.141585	0.424280	2
9327	0.000000	0.120947	2
18991	0.454750	1.033280	2
9193	0.510310	0.016395	2
2285	3.864171	0.616349	2
9493	6.724021	0.563044	2
2371	4.289375	0.012563	2
13963	0.000000	1.437030	2
2299	3.733617	0.698269	2
5262	2.002589	1.380184	2
4659	2.502627	0.184223	2
17582	6.382129	0.876581	2
27750	8.546741	0.128706	3
9868	2.694977	0.432818	2
18333	3.951256	0.333300	2
3780	9.856183	0.329181	2
18190	2.068962	0.429927	2
11145	3.410627	0.631838	2
68846	9.974715	0.669787	1
26575	10.650102	0.866627	3
48111	9.134528	0.728045	3
43757	7.882601	1.332446	3

运行结果
机器学习之KNN算法_第1张图片

KNN用于回归

# 导入jar包
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt


class KNN:
    """KNN 回归算法
    使用鸢尾花的四个特征进行训练    花瓣长度、宽度   花萼长度、宽度
    算法的目标是  根据鸢尾花的三个特征,预测最后一个特征的  度量 (预测值)
    """

    def __init__(self, k):
        """初始化方法

        k:int
        设置k的值,找出相邻数据的个数
        """
        self.k = k

    def fit(self, X, y):
        """根据参数传递过来的X,对样本数据进行预测
        -------
        返回一个数组类型,预测结果
        """
        self.X = np.asarray(X)
        self.y = np.asarray(y)
        result = []

    def predict(self, V):
        V = np.asarray(V)
        result = []

        for v in V:
            # 计算距离 测试几种某一个数据到训练集中每一个点的距离
            # 数学模型就是 计算空间中某一点(含 x,y,z坐标) 到空间中一个含有多个点的集合中()
            # axis=1是向着行的方向计算,axis=0是按照着列的方向计算
            dis = np.sqrt(np.sum((v - self.X) ** 2, axis=1))
            index = dis.argsort()
            index = index[:self.k]
            # 计算训练的平均值作为预测结果
            disavg = np.mean(self.y[index])
            # 将disavg的最大下标的数据添加到result数组中
            result.append(disavg.argmax())
            result.append(np.mean(self.y[index]))
        return np.asarray(result)

    def predict2(self, V):
        """ 加权重 """
        V = np.asarray(V)
        result = []

        for v in V:
            # 计算距离 测试几种某一个数据到训练集中没一个点的距离
            # 数学模型就是 计算空间中某一点(含 x,y,z坐标) 到空间中一个含有多个点的集合中()
            dis = np.sqrt(np.sum((v - self.X) ** 2, axis=1))
            index = dis.argsort()
            index = index[:self.k]

            # 求k个距离的倒数和
            he = np.sum(1 / (dis[index] + 0.0001))

            # 计算权重(倒数/倒数和)
            weight = (1 / (dis[index] + 0.0001)) / he

            # 计算训练的平均值作为预测结果
            # disavg = np.mean(self.y[index])
            # 将disavg的最大下标的数据添加到result数组中
            # result.append(disavg.argmax())
            # 将前面K的计算结果(计算结果要与该店所占的权重比相乘)求均值后放入result数组中
            result.append(np.mean(self.y[index] * weight))
        return np.asarray(result)

if __name__ == '__main__':
    # 获取数据
    data = pd.read_csv("data/iris_training.csv")
    data1=pd.read_csv("data/iris_test.csv")
    # 随机去前10条数据
    data.sample(10)
    # 删除两列
    data.drop(["virginica"],axis=1,inplace=True)
    data1.drop(["virginica"],axis=1,inplace=True)
    print(data)
    # 去重,排除线性相关
    # data.drop_duplicates(inplace=True)
    # print(len(data))
    #这条命令因该是随机打乱样本的
    X = data.sample(len(data),random_state=0)
    print(len(X))
    Y= data1.sample(len(data1), random_state=0)
    print(len(Y))
    train_X = X.iloc[:120, :-1]
    train_y = X.iloc[:120, -1]
    test_X = Y.iloc[:30, :-1]
    test_y = Y.iloc[:30, -1]
    print(train_X)
    print(train_y)
    print(test_X)
    print(test_y)

    # 创建KNN对象
    knn = KNN(k = 3)
    knn.fit(train_X,train_y)
    result = knn.predict(test_X)
    print(result)
    print(result.shape)
    print(test_y.values)
    print(test_y.shape)
    # print(np.mean(result-test_y)**2)
    # display(result)
    # display(test_y.values)
    # np.mean((result-test_y)**2)
    #
    # matplotlib 不支持中文,需要配置一下,设置一个中文字体
    mpl.rcParams["font.family"] = "SimHei"
    # 能够显示 中文 ,正常显示 "-"
    mpl.rcParams["axes.unicode_minus"] = False
    plt.figure(figsize=(10,10))
    plt.plot(result,"ro-",label="预测值")
    plt.plot(test_y.values,"bo--",label="真实值")
    plt.title("KNN回归算法预测展示")
    plt.xlabel("序号")
    plt.ylabel("度量值")
    plt.legend()
    plt.show()

数据集
iris_training.csv
1.00 0.00 1.00 0.00 0.26 0.00 0.00 0.00 0.00 0.00 0.00
9.00 0.50 9.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
139.00 0.07 40.00 0.00 0.38 0.10 0.00 0.01 0.01 0.01 0.01
17.00 0.07 13.00 0.00 0.32 0.01 0.00 0.06 0.00 0.00 0.00
16.00 0.43 15.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.06
5.00 0.20 5.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
36.00 0.15 22.00 0.00 0.33 0.03 0.00 0.00 0.00 0.00 0.03
36.00 0.15 22.00 0.00 0.33 0.03 0.00 0.00 0.00 0.00 0.03
36.00 0.15 22.00 0.00 0.33 0.03 0.00 0.00 0.00 0.00 0.03
36.00 0.15 22.00 0.00 0.33 0.03 0.00 0.00 0.00 0.00 0.03
18.00 0.18 17.00 0.00 0.32 0.01 0.00 0.00 0.06 0.00 0.00
13.00 0.09 11.00 0.00 0.33 0.01 0.00 0.00 0.00 0.00 0.00
11.00 0.09 11.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
3.00 0.00 3.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
35.00 0.18 31.00 0.00 0.35 0.05 0.00 0.00 0.00 0.00 0.00
31.00 0.13 24.00 0.00 0.34 0.03 0.00 0.00 0.00 0.00 0.00
16.00 0.04 11.00 0.00 0.31 0.01 0.00 0.06 0.00 0.00 0.00
6.00 0.13 6.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
6.00 0.13 6.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.27 0.00 0.00 0.00 0.00 0.00 0.00
7.00 0.05 5.00 0.00 0.28 0.00 0.00 0.00 0.00 0.00 0.00
141.00 0.40 58.00 0.00 0.38 0.19 0.00 0.00 0.00 0.00 0.00
22.00 0.06 17.00 0.00 0.33 0.02 0.00 0.00 0.00 0.00 0.00
14.00 0.21 13.00 0.00 0.31 0.01 0.00 0.00 0.00 0.00 0.00
125.00 0.06 38.00 0.00 0.36 0.08 0.00 0.00 0.00 0.00 0.01
29.00 0.10 21.00 0.00 0.33 0.01 0.00 0.00 0.00 0.00 0.00
2.00 0.00 2.00 0.00 0.28 0.00 0.00 0.00 0.00 0.00 0.00
4.00 0.17 4.00 0.00 0.28 0.00 0.00 0.00 0.00 0.00 0.00
6.00 0.07 6.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
29.00 0.08 19.00 0.00 0.32 0.01 0.00 0.00 0.03 0.00 0.00
48.00 0.24 38.00 0.00 0.36 0.07 0.00 0.00 0.00 0.00 0.00
157.00 0.05 41.00 0.00 0.36 0.10 0.00 0.00 0.00 0.00 0.00
52.00 0.06 19.00 0.00 0.35 0.03 0.00 0.00 0.00 0.00 0.02
30.00 0.10 23.00 0.00 0.34 0.02 0.00 0.00 0.03 0.00 0.00
5.00 0.10 5.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
100.00 0.03 33.00 0.00 0.36 0.06 0.00 0.00 0.00 0.00 0.00
54.00 0.10 30.00 0.00 0.35 0.04 0.00 0.00 0.00 0.00 0.00
10.00 0.27 10.00 0.00 0.31 0.01 0.00 0.00 0.00 0.00 0.00
15.00 0.09 12.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.07
4.00 0.00 4.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
32.00 0.16 26.00 0.00 0.33 0.03 0.00 0.00 0.00 0.00 0.00
25.00 0.50 23.00 0.00 0.32 0.02 0.00 0.00 0.00 0.00 0.00
118.00 0.08 40.00 0.00 0.37 0.09 0.00 0.00 0.01 0.00 0.00
14.00 0.02 12.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
35.00 0.06 19.00 0.00 0.32 0.01 0.00 0.00 0.00 0.03 0.00
38.00 0.18 25.00 0.00 0.35 0.03 0.00 0.00 0.00 0.00 0.00
280.00 0.04 42.00 0.00 0.39 0.16 0.00 0.01 0.00 0.00 0.00
3.00 0.00 3.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
3.00 0.00 2.00 0.00 0.25 0.00 0.00 0.00 0.00 0.00 0.00
24.00 0.08 16.00 0.00 0.32 0.01 0.00 0.00 0.04 0.00 0.00
6.00 0.13 4.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
12.00 0.02 11.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
2.00 0.00 2.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
5.00 0.50 5.00 0.00 0.30 0.01 0.00 0.00 0.00 0.00 0.00
25.00 0.24 23.00 0.00 0.33 0.02 0.00 0.00 0.00 0.00 0.04
7.00 0.10 5.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.28 0.00 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
8.00 0.00 7.00 0.00 0.29 0.00 0.00 0.00 0.13 0.00 0.00
4.00 0.00 4.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
4.00 0.00 4.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
7.00 0.24 7.00 0.00 0.31 0.01 0.00 0.00 0.14 0.00 0.00
3.00 0.33 2.00 0.00 0.26 0.00 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.21 0.00 0.00 0.00 0.00 0.00 0.00
113.00 0.07 42.00 0.00 0.37 0.10 0.00 0.00 0.00 0.00 0.00
29.00 0.05 22.00 0.00 0.33 0.02 0.00 0.00 0.00 0.00 0.00
28.00 0.09 19.00 0.00 0.33 0.01 0.00 0.00 0.04 0.00 0.00
9.00 0.08 6.00 0.00 0.33 0.01 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.28 0.00 0.00 0.00 0.00 0.00 0.00
15.00 0.01 10.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
22.00 0.19 21.00 0.00 0.33 0.02 0.00 0.00 0.05 0.00 0.00
12.00 0.11 10.00 0.00 0.33 0.01 0.00 0.00 0.00 0.00 0.00
91.00 0.02 30.00 0.00 0.35 0.04 0.00 0.00 0.01 0.00 0.00
49.00 0.10 27.00 0.00 0.34 0.02 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.29 0.00 0.00 0.00 0.00 0.00 0.00
31.00 0.05 21.00 0.00 0.34 0.02 0.00 0.00 0.00 0.00 0.00
20.00 0.24 18.00 0.00 0.34 0.02 0.00 0.00 0.00 0.00 0.00
16.00 0.08 14.00 0.00 0.32 0.01 0.00 0.00 0.06 0.00 0.00
21.00 0.09 19.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.05
78.00 0.13 38.00 0.00 0.36 0.08 0.00 0.00 0.00 0.00 0.00
18.00 0.15 17.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
17.00 0.07 10.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
5.00 0.20 4.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.24 0.00 0.00 0.00 0.00 0.00 0.00
1.00 0.00 1.00 0.00 0.31 0.01 0.00 0.00 0.00 0.00 0.00
44.00 0.06 22.00 0.00 0.32 0.02 0.00 0.00 0.00 0.00 0.00
12.00 0.11 12.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
12.00 0.11 12.00 0.00 0.32 0.01 0.00 0.00 0.00 0.00 0.00
30.00 0.06 21.00 0.00 0.34 0.02 0.00 0.00 0.00 0.00 0.00
6.00 0.07 4.00 0.00 0.27 0.00 0.00 0.00 0.00 0.00 0.00
6.00 0.27 6.00 0.00 0.28 0.00 0.00 0.00 0.00 0.00 0.00
9.00 0.08 6.00 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00
20.00 0.07 17.00 0.00 0.34 0.03 0.00 0.00 0.00 0.00 0.00
16.00 0.08 13.00 0.00 0.34 0.01 0.00 0.00 0.00 0.00 0.00
12.00 0.08 12.00 0.00 0.32 0.01 0.00 0.08 0.00 0.00 0.00
50.00 0.11 28.00 0.00 0.35 0.04 0.00 0.00 0.00 0.00 0.00

训练集
iris_test.csv
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
实验结果
KNN回归权值
机器学习之KNN算法_第2张图片
KNN平均值
机器学习之KNN算法_第3张图片
参考链接:KNN回归代码来源

你可能感兴趣的:(机器学习,算法,分类)