Я использую простой KNN, который практически читает данные из файла CSV. Реализация для НЛП. Введенные в него данные были формантами (1, 2 и 3) для гласной, произнесенной в определенном слове, произнесенном разными пользователями (мужчинами и женщинами с разными акцентами). Всего есть 3 разных гласных, каждый из которых представляет класс.
Заголовок файла CSV
Проблема для меня - попытаться найти наилучшую возможную точность, и в настоящее время я играю с лучшим метрическим расстоянием. N-соседей было 27, что дает лучший результат. На данный момент моя проблема заключается в том, могу ли я использовать Расстояние Брейя Кертиса для этой конкретной реализации.
Я в основном спрашиваю, поскольку с Брейем Кертисом Дистанцией была получена точность 71%, в то время как для Евклидова расстояния, а для любого другого используемого расстояния была получена точность 63% или менее для тех же параметров.
Заранее спасибо
Код:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state=1, stratify=y)
# Create KNN classifier
knn = KNeighborsClassifier(metric='braycurtis', n_neighbors = 27)
knn.fit(X_train,y_train)
print('Accuracy:\t\t', knn.score(X_test, y_test), '\n')