我正在研究回归问题,并且正在使用scikit-learn的RandomForest回归。我已经在名为X
的数据框中创建了所有功能。我想使用预集群创建另一个功能,并将其附加到我的数据框中。但是我也想对集群数进行GridSearch。也就是说,我想更改聚类的数量(我正在使用k均值),然后构建模型。
这是我当前拥有的代码
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=10, andom_state=0).fit(X)
X['cluster'] = kmeans.labels_
n_estimators = list(range(20,200,20))
random_grid = {'n_estimators': n_estimators}
rf_model = RandomForestRegressor()
rf_grid = GridSearchCV(estimator = rf_model, param_grid = random_grid,scoring = 'neg_mean_absolute_error',
cv = 3, verbose=2, n_jobs = -1)
# Fit the random search model
rf_grid.fit(X, y)
因此,我需要将KMeans
和RandomForestRegressor
放入管道中,并且kmeans应该为k
尝试不同的值,并将新功能附加到X
。如何使用pipeline
来做到这一点。