使用回归填充NaN值

时间:2017-05-24 16:11:46

标签: python machine-learning statistics nan missing-data

我有x1 =工作级别(数字),x2 =工作代码(分类)和y =股票价值(数字​​)。对于3x500的数据集,我在库存值中有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_)

1 个答案:

答案 0 :(得分:2)

这是一个简单的模型训练问题。您可用的培训数据(观察)是存在库存值的行;你以后的真实"数据是没有的行。

在这种情况下,分类数据非常合法。实际上,您也可以尝试将作业级别声明为分类,因为它是离散的;这将使你摆脱任何线性假设(虽然它也否定了级别代码排序的任何适用性)。

您的任务是选择正确地为您的数据提供服务的模型类型。这需要研究和实验;欢迎来到数据科学。由于您还没有讨论过您的数据形状,密度,连接性,聚类等,因此我们可以与您探讨这些内容并不多。关于三个特征的六个观察结果(注意职业代码和职称不是100%耦合)对于受过教育的猜测是不够的。

尝试将一些多项式项添加到"线性"回归:可能是每个输入的平方项和平方根。这通常是这项任务的第一次尝试。