I am storing the results from a sklearn regression model to the varibla prediction.
prediction = regressor.predict(data[[\'X\']])
print(prediction)
It is a very detailed solution cases like those but you can use it even in production.
First Save the Model
joblib.dump(regressor, "regressor.sav")
Save columns in order
pd.DataFrame(X_train.columns).to_csv("feature_list.csv", index = None)
Save data types of train set
pd.DataFrame(X_train.dtypes).reset_index().to_csv("data_types.csv", index = None)
Using it again:
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])
Make Predictions
regressor = joblib.load("regressor.sav")
predictions = regressor.predict(X_test)
Save Prediction Results
res = pd.DataFrame(predictions)
res.index = X_test.index # its important for comparison
res.columns = ["prediction"]
res.to_csv("prediction_results.csv")
Enjoy end to end model/prediction saver code!
You can use the numpy.savetxt
function:
numpy.savetxt('C:/localpath/test.csv',prediction, ,delimiter=',')
and to load a CSV file you can use numpy.genfromtxt
function:
numpy.genfromtxt('C:/localpath/test.csv', delimiter=',')
You can use pandas. As it's said, numpy arrays don't have a to_csv function.
import numpy as np
import pandas as pd
prediction = pd.DataFrame(predictions, columns=['predictions']).to_csv('prediction.csv')
add ".T" if you want either your values in line or column-like.