[機械学習]セキレンパラメータ用語の整理

8969 ワード


ぐっすり眠る黒子
機械学習には多くのパラメータがある.
コードを書くときに確認が必要なところが多いので、各パラメータの意味と用途を書きたいと思います.

*主な起動パラメータ


学習率:学習率
n estimators:使用するツリーの数
max features:選択する最大属性数
colsample bytreee:ツリーを生成するために必要なサンプリングの範囲.0~1
サブサンプル:データサンプリングレート(および適切な制御)
num lease:フルツリー数
サブサンプル:データサンプリングレートの指定
colsample bytreee:皮膚が多い場合と適切な調節に適しています
ツリー作成に必要なフィーチャーのサンプリング
reg lambda:L 2正規化用語(重み)
n jobs=-1:cpuカーネルの使用

from lightgbm import LGBMRegressor

lgbm_params = {'n_estimators':[1000]}
lgbm_reg = LGBMRegressor(n_estimators=1000, learning_rate=0.05, num_leaves =4, subsample=0.6, colsample_bytree=0.4, reg_lambda=10, n_jobs=-1

print_best_params(lgbm_reg, lgbm_params) 

LGBMRegressor 5 CV最適平均RMSE値:0.1161,最適alpha:{'n estimator':1000}
def get_rmse_pred(preds):
	for key in preds[key]
    mse = mean_squred_error(y_test, pred_value)
    rmse = np.sqrt(mse)
    print('{0} 모델의 RMSE:{1}'.format(key, rmse))

#개별 모델 학습 

ridge_reg = Ridge(alpha=8)
lasso_reg.fit = Lasso(X_train, y_train)
lasso_reg = Lasso(alpha=0.001)
lasso_reg.fit(X_train, y_train) 

# 개별 모델 예측 
ridge_pred = ridge_reg.predict(X_test)
lasso_pred = lasso_reg.predict(X_test)


#개별 모델 예측값 혼합으로 최종 예측값 도출 
pred = 0.4 * ridge_pred + 0.6 * lasso_pred
preds = {'최종 혼합' :pred, 'Ridge':ridge_pred, 'Lasso':lasso_pred}

#최종 혼합 모델, 개별 모델의 RMSE 값 출력 
get_rmse_pred(preds) 

from XGBRegressor(n_estimators=1000, learning_rate=0.05, colsample_bytree=0.5, subsample=0.8)

lgbm_reg = LGBMRegressor(n_estimators=1000, learning_rate=0.05, num_leves=4, subsample=0.6, colsample_bytree=0.4, reg_lambda=10, n_jobs=-1)


xgb_reg.fit(X_train, y_train)
lgbm_reg.fit(X_train, y_train) 
xgb_pred = xgb_reg.predict(X_test)
lgbm_pred = lgbm_reg.predict(X_test)

pred = 0.5 * xgb_pred + 0.5 * lgbm_pred
preds = {'최종 혼합':pred, 'XGBM':xgb_pred, 'LGBM":lgbm_pred}

get_rmse_pred(preds)