机器学习:Python模型的保存与读取

在学习机器学习的过程中,很多人都应该有这样的疑问:模型训练好了,以后要用怎么办呢?肯定不能再跑一边数据,重新训练模型以供使用,因为这样太费时间。最好的办法当然是,训练和预测分开。训练好模型后,将模型保存好,当需要预测时,直接读取模型文件来调用,进行预测。
无论是sklearn还是TensorFlow,都有模型的保存和调用方法。这里我们介绍使用pickle进行模型保存和调用的方法。

1.导入pickle

import pickle

2.训练模型

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.2)
clf = LinearRegression(n_jobs=-1)
clf.fit(X_train, y_train)

3.保存模型

with open('linearregression.pickle','wb') as f:
     pickle.dump(clf, f)

4.调用模型

pickle_in = open('linearregression.pickle','rb')
clf = pickle.load(pickle_in)

5.使用模型

predict_result = clf.predict(X_predict)

完整代码:

X = np.array(df.drop(['label'], 1))
#用于预测的数据
X_predict = X[-100:]
#训练数据
X = X[:-100]

df.dropna(inplace=True)
y = np.array(df['label'])

#数据划分
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.2)
#训练模型
# clf = LinearRegression(n_jobs=-1)
# clf.fit(X_train, y_train)
# confidence = clf.score(X_test, y_test)

#保存模型
# with open('linearregression.pickle','wb') as f:
#     pickle.dump(clf, f)

#读取本地保存的模型
pickle_in = open('linearregression.pickle','rb')
clf = pickle.load(pickle_in)

#使用模型预测
predict_result = clf.predict(X_predict)

猜你喜欢

转载自blog.csdn.net/opp003/article/details/84782915