Pipeline + GridSearchCV

Pipleline:

导管,保存需要进行的步骤,程序会根据导管里的顺序依次进行。


GridSearchCV:

1.网格搜索,搜索出模型最好的参数。

2.其中param_grid是一个列表形式,为模型的参数设置,这些设置的查看方式为:

from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier

NB = GaussianNB()
KNN = KNeighborsClassifier()
print(KNN.get_params())

3.另外,param_grid中每个元素的name命名方式都有讲究。模型名__参数设置名(注意是两个'_')

 


例子:

X_train, X_test, y_train, y_test = train_test_split(mat_descriptor, label, test_size=0.25, random_state=7)
pipeline7 = Pipeline([
    ('scaler',StandardScaler()),
    ("KNN",KNeighborsClassifier()),
])

param_grid= [
    {
        'KNN__weights': ['uniform'],
        'KNN__n_neighbors': [i for i in range(1, 11)]
    },
    {
        'KNN__weights': ['distance'],
        'KNN__n_neighbors': [i for i in range(1, 11)],
        'KNN__p': [i for i in range(1, 6)]
    }
]

clf = GridSearchCV(pipeline7,param_grid, cv=4, n_jobs=2, verbose=1)
clf.fit(X_train,y_train)
clf_pred = clf.predict(X_test)
clf_pred_score = accuracy_score(y_test,clf_pred)
print(clf_pred_score)
print(clf.best_score_)
print(clf.best_estimator_)

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GridSearchCVpipeline 可以联合使用来进行模型的超参数调优。具体步骤如下: 1. 定义 pipeline,包括数据预处理、特征提取、模型训练等步骤。 2. 定义超参数的搜索空间,例如定义一个字典,包括要调整的超参数及其可能的值。 3. 使用 GridSearchCVpipeline 进行交叉验证,寻找最佳的超参数组合。可以设置 GridSearchCV 的参数,如 cv(交叉验证的折数)、scoring(评估指标)、n_jobs(并行运行的作业数)等。 4. 使用最佳的超参数组合,对整个数据集进行训练,并进行预测。 下面是一个示例代码: ```python from sklearn.pipeline import Pipeline from sklearn.model_selection import GridSearchCV from sklearn.tree import DecisionTreeClassifier from sklearn.preprocessing import StandardScaler # 定义 pipeline pipeline = Pipeline([ ('scaler', StandardScaler()), ('clf', DecisionTreeClassifier()) ]) # 定义超参数的搜索空间 param_grid = { 'clf__max_depth': [1, 2, 3, 4], 'clf__min_samples_split': [2, 3, 4], 'clf__min_samples_leaf': [1, 2, 3] } # 使用 GridSearchCVpipeline 进行交叉验证 grid_search = GridSearchCV(pipeline, param_grid=param_grid, cv=5, scoring='accuracy') grid_search.fit(X_train, y_train) # 输出最佳的超参数组合 print(grid_search.best_params_) # 使用最佳的超参数组合,对整个数据集进行训练,并进行预测 pipeline.set_params(**grid_search.best_params_) pipeline.fit(X_train, y_train) y_pred = pipeline.predict(X_test) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新待开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值