Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.37 KB | None | 0 0
  1. from matplotlib import pyplot as plt
  2. from sklearn.neighbors import KNeighborsClassifier as nbh
  3. from sklearn import metrics
  4. import pandas as pd
  5. from sklearn import preprocessing
  6. import numpy as np
  7. from sklearn.metrics import accuracy_score
  8.  
  9.  
  10. def make_plot(ratios, accuracies, title):
  11.     plt.figure()
  12.     plt.plot(ratios, [acc[0] for acc in accuracies], label='test data')
  13.     plt.plot(ratios, [acc[1] for acc in accuracies], label='train data')
  14.     plt.xlabel('training data size')
  15.     plt.ylabel('accuracy')
  16.     plt.title(f'{title}\naccuracy(training data size)')
  17.     plt.legend()
  18.     plt.savefig(f'{title}.png')
  19.  
  20.  
  21. def accuracy(feat, train, tr_size):
  22.     tr_size = 1-tr_size
  23.     neigh = nbh(n_neighbors=3, n_jobs=1)
  24.     neigh.fit(feat, train)
  25.     print(neigh.predict(i for i in feat))
  26.  
  27.  
  28. def tic_tac_toe():
  29.     features, targets = [], []
  30.     with open("Tic_tac_toe.txt") as inp:
  31.         for line in inp:
  32.             features.append(line.split(',')[0:9])
  33.             targets.append(line.split(',')[9].strip())
  34.     le = preprocessing.LabelEncoder()
  35.     features_encoded = [le.fit_transform(sample) for sample in features]
  36.     targets_encoded = le.fit_transform(targets)
  37.     ratios = np.linspace(0.01, 0.9, 100)
  38.     accuracies = [accuracy(features_encoded, targets_encoded, ratio) for ratio in ratios]
  39.     make_plot(ratios, accuracies, 'tic-tac-toe')
  40.  
  41.  
  42. tic_tac_toe()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement