【发布时间】:2025-12-06 11:30:01
【问题描述】:
我有 x1=工作级别(数字),x2=工作代码(分类)和 y =库存价值(数字)。对于 3x500 的数据集,我在 Stock Value 中有 250 个 NaN 值。
我需要在下面的代码中进行哪些更改才能将 x2 读取为分类值并重新运行程序以查找系数?Data set example
> import pandas as pd from sklearn.linear_model import LinearRegression
> df = pd.read_excel("stats.xlsx")
> df_nonull=df.dropna() X_train = df_nonull[['Job Code','Job Level']]
> y_train = df_nonull[['Stock Value']]
>
>
> X_test = df[['Job Code','Job Level']] y_test = df[['Stock Value']]
>
> regressor = LinearRegression() model=regressor.fit(X_train, y_train)
> # display coefficients print(regressor.coef_)
> print(regressor.coef_)
【问题讨论】:
-
我认为你想要的叫做“插补”。一个简单的方法就是用 Job Code 的平均 Stock Value 填充 NaN。但是,如果您相信您的数据中有一些隐藏的结构(例如,股票价值随着代码的增加而增加),这可能行不通。
-
嗨,Demetri,感谢您的回答——因为工作代码、工作级别和股票价值之间存在相关性——我不想使用“插补”。我想估计股票价值,记住它们与这两个输入有关,而不仅仅是平均值。
-
是的,这改变了事情。我认为线性回归是一种合适的做事方式。你有任何理由期望这种关系是线性的吗?
-
不,我不能假设,回归是我的第一个想法。所以我愿意接受建议。
-
了解所有可能性将是一个超出 Stack Overflow 领域的推测性教程;为此,您可以尝试Cross Validated。
标签: python machine-learning statistics nan missing-data