【发布时间】:2020-06-11 12:07:01
【问题描述】:
我正在用 Python 构建一个应用程序,它可以从数据帧中预测 Pm2.5 污染的值。我正在使用 11 月的值,并且我正在尝试首先构建线性回归模型。如何在不使用日期的情况下进行线性回归?我只需要 Pm2.5 的预测,日期是已知的。 到目前为止,这是我尝试过的:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
data = pd.read_csv("https://raw.githubusercontent.com/iulianastroia/csv_data/master/final_dataframe.csv")
data['day'] = pd.to_datetime(data['day'], dayfirst=True)
#Splitting the dataset into training(70%) and test(30%)
X_train, X_test, y_train, y_test = train_test_split(data['day'], data['pm25'], test_size=0.3,
random_state=0
)
#Fitting Linear Regression to the dataset
lin_reg = LinearRegression()
lin_reg.fit(data['day'], data['pm25'])
此代码引发以下错误:
ValueError: Expected 2D array, got 1D array instead:
array=['2019-11-01T00:00:00.000000000' '2019-11-01T00:00:00.000000000'
'2019-11-01T00:00:00.000000000' ... '2019-11-30T00:00:00.000000000'
'2019-11-30T00:00:00.000000000' '2019-11-30T00:00:00.000000000'].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
【问题讨论】:
-
尝试按照提到的错误重塑您的数据。这回答了你的问题了吗? Error in Python script "Expected 2D array, got 1D array instead:"?
-
lin_reg.fit(data[['day']], data['pm25']),注意双括号。 -
你为什么不使用
X_train和y_train来拟合你的模型?
标签: python pandas regression