python - 将标准缩放器应用于投票分类器中的一个模型

标签 python machine-learning scikit-learn classification

我创建了各种模型的集合,例如 svcLogisticRegressionLinearDiscriminantAnalysis 等。

但是当我缩放数据时,mlp 分类器效果更好,但其他模型(如 LogisticRegression)在缩放数据时准确性较低。所以我只想扩展一个模型的数据。

from sklearn import preprocessing
scaler = preprocessing.StandardScaler()
scaler.fit(X_train)
X_train_ = scaler.transform(X_train)
X_val_ = scaler.transform(X_val)

mlp = MLPClassifier(solver='lbfgs', alpha=1e-5,
                 hidden_layer_sizes=(5,2), random_state=1)
mlp.fit(X_train_, y_train)
y_pred = mlp.predict(X_val_)

现在,当我创建投票分类器时,我不知道如何单独将缩放数据用于一个模型。

votingC = VotingClassifier(estimators=[('logistic_regression', lr),('SVC',svc),
                                       ('Catboost', cat),('ExtraTrees', et), ('LinearDiscriminantAnalysis', lda), 
                                       ('perceptron', p),('randomforest', r), ('nusvc', nusvc), ('knn', knn), 
                                       ('SGDClassifier', pac), ('bag', bag),('bnb', nc)], 
                           voting='hard', n_jobs=6, 
                           weights = [1.5,1.5,1,1,1,1,1,1,1,1,1,1])

votingC = votingC.fit(X_train, y_train)

提前非常感谢!

最佳答案

对于需要缩放的模型,您可以build a pipeline ,然后进入投票分类器。缩放和未缩放支持向量分类器的示例:

from sklearn.ensemble import VotingClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

from sklearn.datasets import make_classification
from sklearn.pipeline import make_pipeline

X,y = make_classification(random_state=123)

scaled_svc = make_pipeline(StandardScaler(), SVC())

voting = VotingClassifier(estimators=[
    ('scaled_svc', scaled_svc),
    ('unscaled_svc', SVC())
])

v = voting.fit(X,y)
v.predict(X)

array([0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1,
       0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
       0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0,
       1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1,
       1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0])

关于python - 将标准缩放器应用于投票分类器中的一个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61832513/

相关文章:

python - mypy 泛型可以表示将返回序列类型作为参数传递吗?

python-3.x - 运行预训练 ImageAI 模型时出现问题

machine-learning - 使用有偏差的数据集训练决策树

python - scikit learn中的预处理-单个样本-折旧警告

python - 在朴素贝叶斯中获取特征重要性

python - Conda 尝试将大型默认库安装到新环境中

python - 如何处理 Jinja2 中的属性访问错误?

java - 如何学习鼠标移动?

python - 使用 scikit-learn 训练多维数据

python - 将 csv 上传到大查询时添加日期加载字段