东方耀AI技术分享

标题: 12、最小二乘公式法和模型部署:持久化与加载使用_笔记 [打印本页]

作者: 东方耀    时间: 2018-3-31 10:47
标题: 12、最小二乘公式法和模型部署:持久化与加载使用_笔记


12、最小二乘公式法和模型部署:持久化与加载使用_笔记

  1. # -*- coding: utf-8 -*-
  2. __author__ = 'dongfangyao'
  3. __date__ = '2018/3/31 上午11:44'
  4. __product__ = '这个例子说明:如果进行特征数据标准化则需要截距这个参数,否则会出现偏移'
  5. __filename__ = 'least_squares2'

  6. # 引入所需要的全部包
  7. from sklearn.model_selection import train_test_split # 数据划分的类
  8. # 数据标准化
  9. from sklearn.preprocessing import StandardScaler

  10. import numpy as np
  11. import matplotlib as mpl
  12. import matplotlib.pyplot as plt
  13. import pandas as pd
  14. from pandas import DataFrame
  15. import time

  16. ## 设置字符集,防止中文乱码
  17. mpl.rcParams['font.sans-serif']=[u'simHei']
  18. mpl.rcParams['axes.unicode_minus']=False

  19. # 加载数据
  20. # 日期、时间、有功功率、无功功率、电压、电流、厨房用电功率、洗衣服用电功率、热水器用电功率
  21. path1='datas/household_power_consumption_1000.txt'
  22. df = pd.read_csv(path1, sep=';', low_memory=False)#没有混合类型的时候可以通过low_memory=F调用更多内存,加快效率)

  23. df.head(2)

  24. ## 功率和电流之间的关系
  25. X2 = df.iloc[:,2:4]
  26. print(X2.shape)
  27. Y2 = df.iloc[:,5]

  28. ## 数据分割
  29. X2_train,X2_test,Y2_train,Y2_test = train_test_split(X2, Y2, test_size=0.2, random_state=0)

  30. # 模型对象创建
  31. ss = StandardScaler()
  32. # 训练模型并转换训练集
  33. X2_train = ss.fit_transform(X2_train)
  34. # 直接使用在模型构建数据上进行一个数据标准化操作 (测试集)
  35. X2_test = ss.transform(X2_test)

  36. print(type(X2_train))

  37. # 将X和Y转换为矩阵的形式
  38. X = np.mat(X2_train)
  39. Y = np.mat(Y2_train).reshape(-1, 1)

  40. print(type(X))

  41. # 计算θ
  42. theta = (X.T * X).I * X.T * Y
  43. print(theta)

  44. # 对测试集合进行测试
  45. y_hat = np.mat(X2_test) * theta

  46. # 画图看看
  47. #### 电流关系
  48. t=np.arange(len(X2_test))
  49. plt.figure(facecolor='w')
  50. plt.plot(t, Y2_test, 'r-', linewidth=2, label=u'真实值')
  51. plt.plot(t, y_hat, 'g-', linewidth=2, label=u'预测值')
  52. plt.legend(loc = 'lower right')
  53. plt.title(u"线性回归预测功率与电流之间的关系", fontsize=20)
  54. plt.grid(b=True)
  55. plt.show()








复制代码

  1. ## 模型保存/持久化
  2. # 在机器学习部署的时候,实际上其中一种方式就是将模型进行输出;另外一种方式就是直接将预测结果输出数据库
  3. # 模型输出一般是将模型输出到磁盘文件
  4. from sklearn.externals import joblib

  5. # 保存模型要求给定的文件所在的文件夹必须存在
  6. joblib.dump(ss, "result/data_ss.model") ## 将标准化模型保存
  7. joblib.dump(lr, "result/data_lr.model") ## 将模型保存
复制代码
  1. # 加载模型
  2. ss3 = joblib.load("result/data_ss.model") ## 加载模型
  3. lr3 = joblib.load("result/data_lr.model") ## 加载模型

  4. # 使用加载的模型进行预测
  5. data2 = [[12, 17]]
  6. data2 = ss3.transform(data2)
  7. print(data2)
  8. print(lr3.predict(data2))
复制代码




作者: fglbee    时间: 2019-12-22 20:53
this is good idea
作者: 万物皆虚    时间: 2020-5-22 10:48

非常好非常好,very good
作者: 万物皆虚    时间: 2020-5-22 10:48

非常好非常好,very good
作者: EngyHui    时间: 2020-9-24 11:17
9999999999999999999999999999999
作者: kenji1982    时间: 2020-10-19 17:50
6666666666666666666
作者: 破天一件    时间: 2021-7-13 09:50
666666666666666
作者: 破天一件    时间: 2021-7-14 09:37

6666666666666666666
作者: 破天一件    时间: 2021-7-14 09:38

6666666666666666666
作者: 破天一件    时间: 2021-7-14 09:38

6666666666666666666
作者: 小小小鸟    时间: 2021-8-12 12:51
11111111111111111
作者: 小小小鸟    时间: 2021-8-12 12:52
111111111111111111
作者: 小小小鸟    时间: 2021-8-12 12:53
222222222222222
作者: 小小小鸟    时间: 2021-8-12 12:53
33333333333333333333333
作者: yj_jimmy    时间: 2021-8-13 20:08
不断充实自己,不断解放自己
作者: gfx    时间: 2022-10-15 16:23
6666666666
作者: gfx    时间: 2022-10-15 16:23
666666666666
作者: gfx    时间: 2022-10-15 16:24
666666666666




欢迎光临 东方耀AI技术分享 (http://www.ai111.vip/) Powered by Discuz! X3.4