欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机器学习:模型的保存与加载

程序员文章站 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结尾