zoukankan      html  css  js  c++  java
  • 第十四节 模型的保存和加载

    已经得到理想的模型以后,可以通过sklearn中的 from sklearn.externals import joblib 将模型保存下来,下次可以直接将想要预测的数据给入就好了

    from sklearn.datasets import load_boston
    from sklearn.linear_model import LinearRegression, SGDRegressor
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.metrics import mean_squared_error  # 回归方程性能评价均方误差API
    from sklearn.externals import joblib  # 保存模型API
    
    # 保存模型
    def boston_linear():
        '''线性回归预测波士顿房价'''
        # 获取数据
        bl = load_boston()
    
        # 分割训练集和测试集
        x_train, x_test, y_train, y_test = train_test_split(bl.data, bl.target, test_size=0.25)
    
        # 进行标准化,特征值和目标值都需要进行标准化处理
        # 特征值
        std_x = StandardScaler()
        x_train = std_x.fit_transform(x_train)
        x_test = std_x.fit_transform(x_test)
    
        # 目标值,y_train.reshape(-1, 1)将一维数组转换成二维数组
        std_y = StandardScaler()
        y_train = std_y.fit_transform(y_train.reshape(-1, 1))
        y_test = std_y.fit_transform(y_test.reshape(-1, 1))
    
        # 预测
        # 最小二乘法求解结果
        lr = LinearRegression()
        lr.fit(x_train, y_train)
    
        # 保存模型
        joblib.dump(lr, "./test.pkl")
    
        print(lr.coef_)
    
        # 预测测试集的房子价格
        lr_y_predict = std_y.inverse_transform(lr.predict(x_test))
        print('最小二乘法测试集里面每个房子的价格', lr_y_predict)
    
        # 用均方误差对一个回归模型来进行评价,越小越好,mean_squared_error第一个参数是测试集的真实值,第二个参数数测试集的预测值
        print('最小二乘法的均方误差:', mean_squared_error(std_y.inverse_transform(y_test), lr_y_predict))
    
    if __name__ == "__main__":
        boston_linear()
    from sklearn.datasets import load_boston
    from sklearn.linear_model import LinearRegression, SGDRegressor
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.metrics import mean_squared_error  # 回归方程性能评价均方误差API
    from sklearn.externals import joblib  # 保存模型API
    
    # 加载模型
    def boston_linear():
        '''线性回归预测波士顿房价'''
        # 获取数据
        bl = load_boston()
    
        # 分割训练集和测试集
        x_train, x_test, y_train, y_test = train_test_split(bl.data, bl.target, test_size=0.25)
    
        # 进行标准化,特征值和目标值都需要进行标准化处理
        # 特征值
        std_x = StandardScaler()
        x_train = std_x.fit_transform(x_train)
        x_test = std_x.fit_transform(x_test)
    
        # 目标值,y_train.reshape(-1, 1)将一维数组转换成二维数组
        std_y = StandardScaler()
        y_train = std_y.fit_transform(y_train.reshape(-1, 1))
        y_test = std_y.fit_transform(y_test.reshape(-1, 1))
    
        lr = joblib.load("./test.pkl")
        y_predict = std_y.inverse_transform(lr.predict(x_test))
        print("保存的模型预测结果", y_predict)
    
    
    if __name__ == "__main__":
        boston_linear()
  • 相关阅读:
    一日一技:微信开发-自定义菜单
    Redis五种数据结构
    .NET 5 部署在docker上运行
    一日一技:微信开发-发送模板消息
    Redis快速入门及应用
    面试官扎心一问:防止重复请求提交,有什么方案?
    在Windows上安装Docker
    上班摸鱼神器—VSCode 里也可以看股票 & 基金实时数据
    C# Nuget程序集StackExchange.Redis操作Redis 及 Redis 视频资源 及 相关入门指令 牛逼不,全都有
    Mongodb 更新某一条记录 C#
  • 原文地址:https://www.cnblogs.com/kogmaw/p/12578246.html
Copyright © 2011-2022 走看看