X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.1)
rmse: root mean square error, (sum(d^2)/N)^0.5
params = {'num_leaves': 30,
'min_data_in_leaf': 20,
'objective': 'regression',
'max_depth': 5,
'learning_rate': 0.01,
"boosting": "gbdt",
"feature_fraction": 0.9,
"bagging_freq": 1,
"bagging_fraction": 0.9,
"bagging_seed": 11,
"metric": 'rmse',
"lambda_l1": 0.2,
"verbosity": -1}
model1=lgb.LGBMRegressor(**params,n_estimators=20000,nthread=4,jobs=-1)
model1.fit(X_train, y_train, eval_set=[(X_train, y_train), (X_test, y_test)], eval_metric='rmse',verbose=1000, early_stopping_rounds=200)