对于给定的不平衡数据,我为标准化和热编码创建了不同的管道
numeric_transformer = Pipeline(steps = [('scaler', StandardScaler())])
categorical_transformer = Pipeline(steps=['ohe', OneHotCategoricalEncoder()])
之后,将上面的管道保持在一个列转换器中>
from sklearn.compose import ColumnTransformer preprocessor = ColumnTransformer( transformers=[ ('num', numeric_transformer, numeric_features), ('cat', categorical_transformer,categorical_features)]
最后的管道如下
smt = SMOTE(random_state=42) rf = pl1([('preprocessor', preprocessor),('smote',smt), ('classifier', RandomForestClassifier())])
我正在对不平衡的数据进行流水线拟合,因此我将SMOTE技术以及预处理和分类器包括在内。由于不平衡,我想检查召回得分。
如下面的代码所示,是正确的方法吗?我正在召回0.98左右,这可能会导致模型过拟合。如果我有任何错误,有什么建议吗?
scores = cross_val_score(rf, X, y, cv=5,scoring="recall")
对于给定的不平衡数据,我为标准化创建了不同的管道,并进行了一种热编码的numeric_transformer = Pipeline(steps = [('scaler',StandardScaler())])...
StratifiedKFold
来强制执行该操作,即: