【问题标题】:My pipeline not imputing values correctly?我的管道没有正确估算值?
【发布时间】:2021-08-18 18:45:38
【问题描述】:

我是 python 新手,一直在从 datacamp 学习管道。我一直在尝试一些缺少 NaN 值的 fifa 数据。我试图创建一个管道,其中包含插补任何缺失数据(用平均值替换它)然后创建逻辑回归的步骤。我似乎在输出中没有任何错误。但是,当我打印诸如 print(x_train) 和 print(y_pred) 之类的内容时,输出仍会返回 NaN 值。这是否表明我的管道不工作并且数据没有正确估算,因为我肯定应该看到平均值而不是 NaN。如果有人能用外行的方式回答这个问题,我将不胜感激,因为我是这个话题的新手。

fif_data=pd.read_csv("fifa_draft_1.csv")

df_Foot_Dummy=pd.get_dummies(fif_data, drop_first=True) 


imp=SimpleImputer(missing_values=np.nan, strategy="mean")

logreg=LogisticRegression()


x=df_Foot_Dummy["passing"].values.reshape(-1,1)
y=df_Foot_Dummy["preferred_foot_Right"]

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state=42)

steps=[("imputation", imp),("logistic_regression",logreg)]
pipe=Pipeline(steps)
pipe.fit(x_train,y_train)
y_pred=pipe.predict(x_test)
print(x_train)
print(y_pred)

【问题讨论】:

  • 嗨,请阅读:stackoverflow.com/questions/20109391/… 并更新您的代码,以便我们都可以运行相同的东西。例如,您可以替换第一行,以便我们都有一个数据样本到fif_data
  • 请打印x、x_train、x_test、y、y_train和y_test的形状

标签: python machine-learning scikit-learn pipeline


【解决方案1】:

管道不会就地更改数据;每一步都会修改和传递数据,但不保存中间结果(设置cache参数时部分例外)。

逻辑回归没有抱怨表明插补确实发生了。

y_pred 不应有任何缺失值;如果是这种情况,请告诉我们并提供示例数据集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2021-03-22
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2020-05-01
    相关资源
    最近更新 更多