Untitled

 avatar
unknown
plain_text
4 years ago
1.3 kB
5
Indexable
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# reading Testing data
tsv_file = open("C:/Users/Zarathos 07/Downloads/DMA/Task 1/Training.tsv")
df = pd.read_csv(tsv_file, delimiter="\t")
x = df['word_vector']

y = df['label']
x = x.str.split(',').str.join('')
x = x.str.split('[').str.join('')
x = x.str.split(']').str.join('')
x = x.str.split()

for i in range(len(x)):
    x[i] = np.array(x[i],dtype=np.float32)
new_list=[]

from statistics import median
for i in range(len(x)):
    new_list.append(median(x[i]))

new_list = np.array(new_list, dtype=np.float32)
y = np.array(y, dtype=np.float32)

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(new_list, y, test_size = 0.3, random_state = 0)


from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors = 5, metric = 'minkowski')
classifier.fit(x_train.reshape(-1,1), y_train)
# 78.17 %


y_pred = classifier.predict(x_test.reshape(-1,1))

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
TP = cm[0][0]
FP = cm[0][1]
FN = cm[1][0]
TN = cm[1][1]

accuracy = ( TP + TN ) / ( TP + TN + FP + FN ) * 100

print(str(round(accuracy,2)) + " %")
Editor is loading...