prometheus800

ВИ Тест 5: Cryotherapy (naive Bayes classifier)

Apr 28th, 2021
1,180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.89 KB | None | 0 0
  1. import math
  2. from sklearn.naive_bayes import GaussianNB
  3.  
  4. dataset = [['1', '35', '12', '5', '1', '100', '0'], ['1', '29', '7', '5', '1', '96', '1'],
  5.            ['1', '50', '8', '1', '3', '132', '0'], ['1', '32', '11.75', '7', '3', '750', '0'],
  6.            ['1', '67', '9.25', '1', '1', '42', '0'], ['1', '41', '8', '2', '2', '20', '1'],
  7.            ['1', '36', '11', '2', '1', '8', '0'], ['1', '59', '3.5', '3', '3', '20', '0'],
  8.            ['1', '20', '4.5', '12', '1', '6', '1'], ['2', '34', '11.25', '3', '3', '150', '0'],
  9.            ['2', '21', '10.75', '5', '1', '35', '0'], ['2', '15', '6', '2', '1', '30', '1'],
  10.            ['2', '15', '2', '3', '1', '4', '1'], ['2', '15', '3.75', '2', '3', '70', '1'],
  11.            ['2', '17', '11', '2', '1', '10', '0'], ['2', '17', '5.25', '3', '1', '63', '1'],
  12.            ['2', '23', '11.75', '12', '3', '72', '0'], ['2', '27', '8.75', '2', '1', '6', '0'],
  13.            ['2', '15', '4.25', '1', '1', '6', '1'], ['2', '18', '5.75', '1', '1', '80', '1'],
  14.            ['1', '22', '5.5', '2', '1', '70', '1'], ['2', '16', '8.5', '1', '2', '60', '1'],
  15.            ['1', '28', '4.75', '3', '1', '100', '1'], ['2', '40', '9.75', '1', '2', '80', '0'],
  16.            ['1', '30', '2.5', '2', '1', '115', '1'], ['2', '34', '12', '3', '3', '95', '0'],
  17.            ['1', '20', '0.5', '2', '1', '75', '1'], ['2', '35', '12', '5', '3', '100', '0'],
  18.            ['2', '24', '9.5', '3', '3', '20', '0'], ['2', '19', '8.75', '6', '1', '160', '1'],
  19.            ['1', '35', '9.25', '9', '1', '100', '1'], ['1', '29', '7.25', '6', '1', '96', '1'],
  20.            ['1', '50', '8.75', '11', '3', '132', '0'], ['2', '32', '12', '4', '3', '750', '0'],
  21.            ['2', '67', '12', '12', '3', '42', '0'], ['2', '41', '10.5', '2', '2', '20', '1'],
  22.            ['2', '36', '11', '6', '1', '8', '0'], ['1', '63', '2.75', '3', '3', '20', '0'],
  23.            ['1', '20', '5', '3', '1', '6', '1'], ['1', '34', '12', '1', '3', '150', '0'],
  24.            ['2', '21', '10.5', '5', '1', '35', '0'], ['2', '15', '8', '12', '1', '30', '1'],
  25.            ['1', '15', '3.5', '2', '1', '4', '1'], ['2', '15', '1.5', '12', '3', '70', '1'],
  26.            ['1', '17', '11.5', '2', '1', '10', '0'], ['1', '17', '5.25', '4', '1', '63', '1'],
  27.            ['2', '23', '9.5', '5', '3', '72', '0'], ['1', '27', '10', '5', '1', '6', '0'],
  28.            ['1', '15', '4', '7', '1', '6', '1'], ['2', '18', '4.5', '8', '1', '80', '1'],
  29.            ['2', '22', '5', '9', '1', '70', '1'], ['1', '16', '10.25', '3', '2', '60', '1'],
  30.            ['2', '28', '4', '11', '1', '100', '1'], ['2', '40', '8.75', '6', '2', '80', '0'],
  31.            ['2', '30', '0.5', '8', '3', '115', '1'], ['1', '34', '10.75', '1', '3', '95', '0'],
  32.            ['1', '20', '3.75', '11', '1', '75', '1'], ['2', '35', '8.5', '6', '3', '100', '0'],
  33.            ['1', '24', '9.5', '8', '1', '20', '1'], ['2', '19', '8', '9', '1', '160', '1'],
  34.            ['1', '35', '7.25', '2', '1', '100', '1'], ['1', '29', '11.75', '5', '1', '96', '0'],
  35.            ['2', '50', '9.5', '4', '3', '132', '0'], ['2', '32', '12', '12', '3', '750', '0'],
  36.            ['1', '67', '10', '7', '1', '42', '0'], ['2', '41', '7.75', '5', '2', '20', '1'],
  37.            ['2', '36', '10.5', '4', '1', '8', '0'], ['1', '67', '3.75', '11', '3', '20', '0'],
  38.            ['1', '15', '10.5', '11', '1', '30', '1'], ['1', '15', '2', '11', '1', '4', '1'],
  39.            ['2', '15', '2', '10', '3', '70', '1'], ['1', '17', '9.25', '12', '1', '10', '0'],
  40.            ['1', '17', '5.75', '10', '1', '63', '1'], ['1', '23', '10.25', '7', '3', '72', '0'],
  41.            ['1', '27', '10.5', '7', '1', '6', '0'], ['1', '15', '5.5', '5', '1', '6', '1'],
  42.            ['1', '18', '4', '1', '1', '80', '1'], ['2', '22', '4.5', '2', '1', '70', '1'],
  43.            ['1', '16', '11', '3', '2', '60', '1'], ['2', '28', '5', '9', '1', '100', '1'],
  44.            ['1', '40', '11.5', '9', '2', '80', '0'], ['1', '30', '0.25', '10', '1', '115', '1'],
  45.            ['2', '34', '12', '3', '3', '95', '0'], ['2', '20', '3.5', '6', '1', '75', '1'],
  46.            ['2', '35', '8.25', '8', '3', '100', '0'], ['1', '24', '10.75', '10', '1', '20', '1'],
  47.            ['1', '19', '8', '8', '1', '160', '1']]
  48.  
  49. if __name__ == '__main__':
  50.     dataset = [[float(dataset[i][j]) for j in range(len(dataset[i]))] for i in range(len(dataset))]
  51.  
  52.     # 85% of the dataset for training, 15% for testing
  53.     training_set = dataset[:math.ceil(0.85 * len(dataset))]
  54.     testing_set = dataset[math.ceil(0.85 * len(dataset)):]
  55.  
  56.     X = [training_set[i][:-1] for i in range(len(training_set))]
  57.     Y = [training_set[i][-1] for i in range(len(training_set))]
  58.  
  59.     cls = GaussianNB()
  60.     cls.fit(X, Y)
  61.  
  62.     accuracy = 0
  63.     for i in range(len(testing_set)):
  64.         result = cls.predict([testing_set[i][:-1]])
  65.         if result[0] == testing_set[i][-1]:
  66.             accuracy += 1
  67.  
  68.     print(accuracy / len(testing_set))
  69.  
  70.     entry = [float(element) for element in input().split(" ")]
  71.  
  72.     print(int(cls.predict([entry])[0]))
  73.  
Add Comment
Please, Sign In to add comment