机器学习:模型的保存与加载
程序员文章站
2022-07-13 08:55:16
...
模型的保存和加载
API:from sklearn.externals import joblib
保存:
joblib.dump(rf, ‘test.pkl’)
加载:
estimator=joblib.load(‘test.pkl’)
例子:
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression,SGDRegressor,Ridge
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error
from sklearn.externals import joblib
def mylinear():
"""线性回归预测房子价格"""
#获取数据
lb=load_boston()
#分割数据集的到训练集和测试集
x_train,x_test,y_train,y_test=train_test_split(lb.data,lb.target,test_size=0.25)
print(y_train,y_test)
#进行标准化处理
#特征值和目标值是都必须进行标准化处理,实例化两个标准化api
std_x=StandardScaler()
x_train=std_x.fit_transform(x_train)
x_test=std_x.transform(x_test)
#目标值
std_y=StandardScaler()
y_train=std_y.fit_transform(y_train.reshape(-1,1))
y_test=std_y.transform(y_test.reshape(-1,1))
#estimator预测
#正规方程求解方式预测结果
lr=LinearRegression()
lr.fit(x_train,y_train)
print("回归系数:",lr.coef_)
#保存训练好的模型
joblib.dump(lr,'./test.pkl')
#预测测试集的房子价格
y_lr_predict=std_y.inverse_transform(lr.predict(x_test))
print("测试集里每个房子的预测价格:",y_lr_predict)
print("正规方程均方误差",mean_squared_error(std_y.inverse_transform(y_test),y_lr_predict))
return None
if __name__ == '__main__':
mylinear()
当我们保存好模型过后其实后面的训练就可以不需要了,可以拿这个模型直接开始预测。
#预测房价结果
model=joblib.load('./test.pkl')
y_predict=std_y.inverse_transform(model.predict(x_test))
print("保存模型预测结果:",y_predict)
注意文件格式pkl结尾
上一篇: 机器学习——数据理解
下一篇: 一文搞定String