numpy 将预测结果保存到CSV

1hdlvixo  于 2023-10-19  发布在  其他
关注(0)|答案(4)|浏览(156)

我将sklearn回归模型的结果存储到变量预测中。

prediction = regressor.predict(data[['X']])
print(prediction)

预测输出的值如下所示

[ 266.77832991  201.06347505  446.00066136  499.76736079  295.15519906
  214.50514991  422.1043505   531.13126879  287.68760191  201.06347505
  402.68859792  478.85808879  286.19408248  192.10235848]

然后,我尝试使用to_csv函数将结果保存到本地CSV文件中:

prediction.to_csv('C:/localpath/test.csv')

但我得到的错误是:

AttributeError: 'numpy.ndarray' object has no attribute 'to_csv'

我使用Pandas/Numpy/SKlearn。有什么基本的解决方法吗?

2hh7jdfx

2hh7jdfx1#

你可以用Pandas。numpy数组没有to_csv函数。

import numpy as np
import pandas as pd
prediction = pd.DataFrame(predictions, columns=['predictions']).to_csv('prediction.csv')

如果你想让你的值以行或列的形式出现,可以添加“.T”。

tjvv9vkg

tjvv9vkg2#

可以使用numpy.savetxt函数:

numpy.savetxt('C:/localpath/test.csv',prediction, ,delimiter=',')

要加载CSV文件,可以使用numpy.genfromtxt函数:

numpy.genfromtxt('C:/localpath/test.csv', delimiter=',')
w80xi6nr

w80xi6nr3#

这是一个非常详细的解决方案,但你甚至可以在生产中使用它。

首先保存模型

joblib.dump(regressor, "regressor.sav")

按顺序保存列

pd.DataFrame(X_train.columns).to_csv("feature_list.csv", index = None)

车组保存数据类型

pd.DataFrame(X_train.dtypes).reset_index().to_csv("data_types.csv", index = None)

再次使用:

feature_list = pd.read_csv("feature_list.csv")
feature_list = pd.Index(list(feature_list["0"]))

add_cols = list(feature_list.difference(X_test.columns))

drop_cols = list(X_test.columns.difference(feature_list))

for col in add_cols:
    X_test[col] = np.nan

for col in drop_cols:
    X_test = X_test.drop(col, axis = 1)

# reorder columns
X_test = X_test[feature_list]

types = pd.read_csv("data_types.csv")
for i in range(len(types)):
    X_test[types.iloc[i,0]] = X_test[types.iloc[i,0]].astype(types.iloc[i,1])

预测

regressor = joblib.load("regressor.sav")
predictions = regressor.predict(X_test)

保存预测结果

res = pd.DataFrame(predictions)
res.index = X_test.index # its important for comparison
res.columns = ["prediction"]
res.to_csv("prediction_results.csv")

享受端到端模型/预测节省代码!

fgw7neuy

fgw7neuy4#

predictions=regressor.predict(send_to_model)
#print(predictions)
output=pd.DataFrame({"Survived":predictions})
output.to_csv('C:/Users/<username>/Downloads/predictions.csv',index=False)

相关问题