Page 188 - 6734
P. 188

import matplotlib.pyplot as plt
           from sklearn.model_selection import train_test_split
           from sklearn.ensemble import RandomForestClassifier

           x=np.array([[0,1,1,2,2,3,2,3,1,3,
           6,5,6,7,7,8,7,7,8,5],
                       [1,1,3,1,2,2,3,4,4,8,
           5,7,6,7,6,7,5,8,8,1]]) # дві ознаки класів
           y=np.array( [0,0,0,0,0,0,0,0,0,0,
           1,1,1,1,1,1,1,1,1,1] ) # мітки класів (бінарна
           класифікація)
           x=x.T
           plt.scatter(x[:,0], x[:,1], c=y, s=100) #
           візуалізація класів
           plt.xlabel('x0'); plt.ylabel('x1'); plt.show()
           print "Рисунок - Два класи даних"
           # розбити дані (дані для навчання і тестові дані для
           перевірки)
           x_train, x_test, y_train, y_test =
           train_test_split(x,y,test_size=0.5)

           model=RandomForestClassifier(n_estimators=5,
           max_depth=3) # модель - випадковий ліс (n_estimators
           - кількість дерев, max_depth - глибина дерева)
           model.fit(x_train, y_train) # виконати навчання
           print y_test # фактичні тестові класи
           print model.predict(x_test) # прогнозовані тестові
           класи
           print model.score(x_test, y_test) # правильність
           класифікатора

           # перехресна перевірка (удосконалення
           train_test_split + score)
           from sklearn.model_selection import cross_val_score
           s=cross_val_score(model, x, y, cv=3)
                                         187
   183   184   185   186   187   188   189   190   191   192   193