機械学習サンプルコードの備忘録。
# 必要なライブラリをインポートする
import lightgbm as lgb
from sklearn.model_selection import train_test_split
# 目的変数と説明変数を指定する
X = df.drop('mokuteki', axis = 1)
y = df['mokuteki']
# データを学習用とテスト用に分ける
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
lgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)
# パラメータを設定する
lgbm_params = {
'objective': 'binary', # 二値分類問題の場合
'metric': 'auc',
'learning_rate':0.1,
'num_iterations':100,
'num_leaves':31
}
# 学習させる
gbm = lgb.train(lgbm_params,lgb_train,valid_sets=lgb_eval)
# クロスバリデーション
scores = cross_val_score(estimator = clf, X = X_train, y = y_train,cv = 5,n_jobs = 1)
print(np.mean(scores))
# 予測する
gbm_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)
# ファイル出力
y_submit = pd.DataFrame({"id": X_test["id"], "y":gbm_pred})
y_submit.to_csv("../output/results/submit.csv", index=False) 予測精度を上げるポイントは、
パラメータチューニングとデータクリーニング(データを綺麗にしたり特徴量を工夫すること)である!!