<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Sklearn, XGBoost
sklearn.ensemble.RandomForestClassifier
Step1:  Данные
Задача на kaggle
Step2:  Модель RandomForestClassifier
Зависимость качества от количесвта деревьев
Step3:  Кривые обучения для деревьев большей глубины
<ASSISTANT_TASK:>
Python Code:
from sklearn import ensemble , cross_validation, learning_curve, metrics 
import numpy as np
import pandas as pd
import xgboost as xgb
%pylab inline
Explanation: Sklearn, XGBoost
sklearn.ensemble.RandomForestClassifier
End of explanation
bioresponce = pd.read_csv('bioresponse.csv', header=0, sep=',')
bioresponce.head()
bioresponce_target = bioresponce.Activity.values
bioresponce_data = bioresponce.iloc[:, 1:]
Explanation: Данные
Задача на kaggle: https://www.kaggle.com/c/bioresponse
Данные: https://www.kaggle.com/c/bioresponse/data
По данным характеристикам молекулы требуется определить, будет ли дан биологический ответ (biological response).
Признаки нормализаваны.
Для демонстрации используется обучающая выборка из исходных данных train.csv, файл с данными прилагается.
End of explanation
n_trees = [1] + range(10, 55, 5) 
%%time
scoring = []
for n_tree in n_trees:
    estimator = ensemble.RandomForestClassifier(n_estimators = n_tree, min_samples_split=5, random_state=1)
    score = cross_validation.cross_val_score(estimator, bioresponce_data, bioresponce_target, 
                                             scoring = 'accuracy', cv = 3)    
    scoring.append(score)
scoring = np.asmatrix(scoring)
scoring
pylab.plot(n_trees, scoring.mean(axis = 1), marker='.', label='RandomForest')
pylab.grid(True)
pylab.xlabel('n_trees')
pylab.ylabel('score')
pylab.title('Accuracy score')
pylab.legend(loc='lower right')
Explanation: Модель RandomForestClassifier
Зависимость качества от количесвта деревьев
End of explanation
%%time
xgb_scoring = []
for n_tree in n_trees:
    estimator = xgb.XGBClassifier(learning_rate=0.1, max_depth=5, n_estimators=n_tree, min_child_weight=3)
    score = cross_validation.cross_val_score(estimator, bioresponce_data, bioresponce_target, 
                                             scoring = 'accuracy', cv = 3)    
    xgb_scoring.append(score)
xgb_scoring = np.asmatrix(xgb_scoring)
xgb_scoring
pylab.plot(n_trees, scoring.mean(axis = 1), marker='.', label='RandomForest')
pylab.plot(n_trees, xgb_scoring.mean(axis = 1), marker='.', label='XGBoost')
pylab.grid(True)
pylab.xlabel('n_trees')
pylab.ylabel('score')
pylab.title('Accuracy score')
pylab.legend(loc='lower right')
Explanation: Кривые обучения для деревьев большей глубины
End of explanation
<END_TASK>