<jupyter_start><jupyter_text>clf_params = {'n_estimators':500, 'learning_rate': 0.25, 'max_depth':2}%time clf = GradientBoostingClassifier(**clf_params, random_state=241, verbose=False ).fit(X_train, Y_train)score = clf.score(X_test, Y_test)pred = clf.predict_proba(X_test)[:, 1]roc_score = roc_auc_score(Y_test, pred)for key in grid.best_params_:    print(f'{key} : {grid.best_params_[key]}')print(f'score = {score}')print(f'ROC-score = {roc_score}') clf = GradientBoostingClassifier(**clf_params, random_state=241, verbose=False ).fit(X, Y) XT = pd.read_csv('test_featers.csv', index_col='match_id')XT.drop(['start_time'], axis=1, inplace=True)XT.fillna(3000, inplace=True)  pred = clf.predict(XT)with open('kaggle_out.csv', 'w') as kaggle:    passwith open('kaggle_out.csv', 'a') as kaggle:    kaggle.writelines('match_id,radiant_win')    for row in XT.iterrows():        kaggle.writelines('\n')        kaggle.writelines(','.join([str(row[0]), str(clf.predict_proba(array(row[1]).reshape(1, 101))[0][1]),]))<jupyter_code>params = {'n_estimators':[10*i for i in range(1, 4)],
         'learning_rate': [i/20 for i in range(4, 9)],
         'max_depth':[i for i in range(2, 5)]}
params

Xh.shape<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1867862969004894, 'fraction_numerical': 0.030179445350734094, 'mean_word_length': 6.66875, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '33562', 'license': 'Unlicense', 'n_tokens_mistral': 521, 'n_tokens_neox': 494, 'n_words': 77, 'path': '7_week/simple_boosting.ipynb', 'repo_name': 'schokoro/Coursera-ML', 'size': '1226'}