我是一个初学者,正在使用python中的statsmodel.formula.api.OLS()函数构建线性回归模型。我对训练数据拟合模型,并使用predict()函数在y_test(我的测试数据)上进行预测以获取预测值。我将预测值存储在y_pred中。
import statsmodels.formula.api as sm
result = sm.OLS(y_train, train_new).fit()
y_pred = result.predict(test_new)
当我尝试打印y_pred时,它以numpy数组的形式出现,而y_test是以pandas数据框格式呈现的。
In[44]: type(y_pred)
Out[44]: numpy.ndarray
In[45]:type(y_test)
Out[45]: pandas.core.series.Series
我希望创建一个新的Pandas数据框,其中y_test是一列,y_pred是另一列,相邻地放置在一起,并将其存储到csv文件中,以便更容易地在相邻的列中进行比较。但是,当我尝试时
pd.DataFrame(y_pred, y_test, columns=['predictions', 'actual']).to_csv('prediction.csv')
我理解了
ValueError: Shape of passed values is (1, 5039), indices imply (2, 5039)
当我试图将y_pred数组转换为数据框,然后使用concatenate将其与y_test数据框连接时,出现了问题。
pd.concat([df1, df2], axis=1)
我得到了一个空列,其中包含y_test的空单元格,相邻于y_pred值。无论我尝试什么,我都无法产生一个具有实际和预测值两个相邻列的数据框/CSV文件。你们有什么建议?