小编Pab*_*ney的帖子

Pipeline OrdinalEncoder ValueError 发现未知类别

请对我放轻松。我正在将职业转向数据科学,并且没有 CS 或编程背景——所以我可能会做一些非常愚蠢的事情。我已经研究了几个小时没有成功。

目标:让 Pipeline 与 OrdinalEncoder 一起运行。

问题:代码无法在 OrdinalEncoder 调用下运行。它确实在没有 OrdinalEncoder 的情况下运行。作为最好的,我可以告诉我可以通过两个参数,即D型。都不帮忙。

我正在将公共糖尿病数据集传递给模型。这是问题吗?IOW,将高基数特征传递给 OrdinalEncoder 是否会在构建模型后导致训练/测试数据之间出现问题,即测试分割具有训练集没有的值?

from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OrdinalEncoder
from sklearn.ensemble import RandomForestClassifier

pipe = Pipeline([
    ('imputer', SimpleImputer()),
    ('ordinal_encoder', OrdinalEncoder()),
    ('classifier', RandomForestClassifier(criterion='gini', n_estimators=100))])

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Construct model
model = pipe.fit(X_train, y_train)

# Show results
print("Hold-out AUC score: %.3f" %roc_auc_score(model.predict_proba(X_test),y_test))
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

ValueError: Found unknown categories [17.0] in column 0 …
Run Code Online (Sandbox Code Playgroud)

pipeline ordinal python-3.x scikit-learn valueerror

7
推荐指数
5
解决办法
1万
查看次数

标签 统计

ordinal ×1

pipeline ×1

python-3.x ×1

scikit-learn ×1

valueerror ×1