【发布时间】:2020-03-07 00:56:27
【问题描述】:
我一直在尝试解决问题。 这是我想要做的:
我想使用逻辑回归预测缺失值 (Nan)(分类一)。 这是我的代码:
df_1:我的数据集仅在“Metier”功能中存在缺失值(我试图预测的缺失值)
X_train = pd.get_dummies(df_1[df_1['Metier'].notnull()].drop(columns='Metier'),drop_first = True)
X_test = pd.get_dummies(df_1[df_1['Metier'].isnull()].drop(columns='Metier'),drop_first = True,dummy_na = True)
Y_train = df_1[df_1['Metier'].notnull()]['Metier']
Y_test = df_1[df_1['Metier'].isnull()]['Metier']
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state = 0)
classifier.fit(X_train, Y_train)
classifier.score(X_train,Y_train) = 0.705112088833019
但是当我试图在Y_test 上获得预测时,它说:
ValueError: X 每个样本有 42 个特征;预计 1423
如果有人能帮帮我,我将不胜感激。
非常感谢:)
【问题讨论】:
-
预测的输入向量(我假设
Y_test)不适合你的训练向量Y_train,你可以用Y_test.shape和Y_train.shape检查它 -
当您在
X_train上使用参数dummy_na = True时,您会为您的x 获得额外的列(例如特征)。如果您不在X_test上执行此操作,则那里的列数将减少,因此当它尝试在X_test上应用X_train上达到的模型时会出现错误(尽管数字似乎太远了仅此原因)。 -
@ PV8 它不适合,因为我试图根据现有值 Y_train 预测 Nan 缺失值 Y_test。
-
@Aryerez 我该如何处理?知道我正在尝试使用逻辑回归替换列中的 nan 值?
标签: python pandas scikit-learn nan prediction