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