如何在python中使用KNN对模式进行分类

时间:2019-02-04 00:30:16

标签: python-3.x numpy machine-learning classification knn

我有以下格式的巨大CSV文件(约700,000条记录)

   t,X,Y
0.00065,0,10
0.000795,0,12
0.039068,2,13
0.03913,4,17
0.039901,4,10
0.039925,5,21
0.039945,6,22
0.039961,7,25
0.040875,9,27
0.040915,9,31
0.041167,11,33
0.041203,12,34
0.139602,6,41
0.139687,13,87
0.139727,13,87

从第2列和第3列中,我想读取当前行并将其与上一行的值进行比较。如果更大,则我要取当前值与前一个值的差,并将差值存储(append)到列表中。如果当前值等于上一行的值,则继续比较。

这是我使用numpy

的简单方法
import numpy as np
import pandas as pd
import csv
import scipy.stats
import matplotlib.pyplot as plt

np.set_printoptions(threshold=np.inf)

column2 = []
column3 = []


with open("test_ground_data.csv", mode='r', encoding='utf-8-sig') as f:
    reader = csv.reader(f, delimiter=",")
    headers=next(reader) #skip the columns
    for i in reader:
        column2.append(int(i[1]))
        column3.append(float(i[2]))

column2_diff = np.diff(column2)
column3_diff = np.diff(column3)

column2_diff = column2_diff[column2_diff > 0] 
column3_diff = column3_diff[column3_diff > 0]  
inc_value2=np.median(column2_diff[column2_diff>0])
inc_value3=np.median(column3_diff[column3_diff>0])

fig, ax = plt.subplots()
ax.plot(column2_diff,  label='Column2')
ax.plot(column3_diff, label='Column3')
ax.set_xlabel("t")
ax.set_ylabel("Values")

legend = ax.legend(loc='best', shadow=False, fontsize='x-large')

enter image description here

但是,由于文件很大,带有模式-我想使用column2column3k-nearest neighbor之间进行分类。我们如何使用KNN来做到这一点?但是,由于我是KNN的新手,所以我们将为您提供任何帮助。

0 个答案:

没有答案