Как классифицировать шаблоны с использованием KNN в Python - PullRequest
0 голосов
/ 04 февраля 2019

У меня огромный (около 700 000 записей) CSV-файл следующего формата

   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

Однако, поскольку файлы огромны с шаблонами - яхотел классифицировать между column2 и column3, используя k-nearest neighbor.Как мы можем сделать это, используя KNN?Но так как я новичок в KNN, я был бы признателен за любую помощь, как мы можем сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...