加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

boxcox1p归一化+pipeline+StackingCVRegressor

发布时间:2020-12-14 04:55:48 所属栏目:百科 来源:网络整理
导读:找到最好的那个参数lmbda。 ? from mlxtend.regressor import StackingCVRegressor from sklearn.datasets import load_boston from sklearn.svm import SVR from sklearn.linear_model import Lasso from sklearn.ensemble import RandomForestRegressor fr

找到最好的那个参数lmbda。

?

from mlxtend.regressor import StackingCVRegressor
from sklearn.datasets import load_boston
from sklearn.svm import SVR
from sklearn.linear_model import Lasso
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import cross_val_score
import numpy as np
RANDOM_SEED = 42
X,y = load_boston(return_X_y=True)
svr = SVR(kernel=linear)
lasso = Lasso()
rf = RandomForestRegressor(n_estimators=5,random_state=RANDOM_SEED)
# The StackingCVRegressor uses scikit-learn‘s check_cv
# internally,which doesn‘t support a random seed. Thus
# NumPy‘s random seed need to be specified explicitely for
# deterministic behavior
np.random.seed(RANDOM_SEED)
stack = StackingCVRegressor(regressors=(svr,lasso,rf),meta_regressor=lasso)
print(5-fold cross validation scores:n)
for clf,label in zip([svr,rf,stack],[SVM,Lasso,Random Forest,StackingClassifier]):
scores = cross_val_score(clf,X,y,cv=5)
print("R^2 Score: %0.2f (+/- %0.2f) [%s]" % (scores.mean(),scores.std(),label))
5-fold cross validation scores:
R^2 Score: 0.45 (+/- 0.29) [SVM]
R^2 Score: 0.43 (+/- 0.14) [Lasso]
R^2 Score: 0.52 (+/- 0.28) [Random Forest]
R^2 Score: 0.58 (+/- 0.24) [StackingClassifier]
# The StackingCVRegressor uses scikit-learn‘s check_cv
# internally,cv=5,scoring=neg_mean_squared_error)
print("Neg. MSE Score: %0.2f (+/- %0.2f) [%s]"

from mlxtend.regressor import StackingCVRegressor
from sklearn.datasets import load_boston
from sklearn.linear_model import Lasso
from sklearn.linear_model import Ridge
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import GridSearchCV
X,y = load_boston(return_X_y=True)
ridge = Ridge()
lasso = Lasso()
rf = RandomForestRegressor(random_state=RANDOM_SEED)
# The StackingCVRegressor uses scikit-learn‘s check_cv
# internally,which doesn‘t support a random seed. Thus
# NumPy‘s random seed need to be specified explicitely for
# deterministic behavior
np.random.seed(RANDOM_SEED)


stack = StackingCVRegressor(regressors=(lasso,ridge),meta_regressor=rf,use_features_in_secondary=True)
params = {lasso__alpha: [0.1,1.0,10.0],ridge__alpha: [0.1,10.0]}

grid = GridSearchCV(
                  estimator=stack,param_grid={lasso__alpha: [x/5.0 for x in range(1,10)],ridge__alpha: [x/20.0 for x in range(1,meta-randomforestregressor__n_estimators: [10,100]},cv=5,refit=True
)

grid.fit(X,y)

print("Best: %f using %s" % (grid.best_score_,grid.best_params_))

#Best: 0.673590 using {‘lasso__alpha‘: 0.4,‘meta-randomforestregressor__n_estimators‘: 10,‘ridge__alpha

cv_keys = (mean_test_score,std_test_score,params)
for r,_ in enumerate(grid.cv_results_[mean_test_score]):
  print("%0.3f +/- %0.2f %r"
          % (grid.cv_results_[cv_keys[0]][r],grid.cv_results_[cv_keys[1]][r] / 2.0,grid.cv_results_[cv_keys[2]][r]))
  if r > 10:
    break
print(...)

print(Best parameters: %s % grid.best_params_)
print(Accuracy: %.2f % grid.best_score_)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读