东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 9215|回复: 18

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

[复制链接]

1366

主题

1857

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14466
QQ
发表于 2018-3-31 10:47:48 | 显示全部楼层 |阅读模式


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))
复制代码



画板 1.png
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

96

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2019-12-22 20:53:25 | 显示全部楼层
this is good idea
回复

使用道具 举报

0

主题

100

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
发表于 2020-5-22 10:48:21 | 显示全部楼层

非常好非常好,very good
回复

使用道具 举报

0

主题

100

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
发表于 2020-5-22 10:48:38 | 显示全部楼层

非常好非常好,very good
回复

使用道具 举报

0

主题

12

帖子

46

积分

新手上路

Rank: 1

积分
46
发表于 2020-9-24 11:17:12 | 显示全部楼层
9999999999999999999999999999999
回复

使用道具 举报

0

主题

99

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2020-10-19 17:50:08 | 显示全部楼层
6666666666666666666
回复

使用道具 举报

0

主题

90

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
发表于 2021-7-13 09:50:25 | 显示全部楼层
666666666666666
回复

使用道具 举报

0

主题

90

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
发表于 2021-7-14 09:37:27 | 显示全部楼层

6666666666666666666
回复

使用道具 举报

0

主题

90

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
发表于 2021-7-14 09:38:14 | 显示全部楼层

6666666666666666666
回复

使用道具 举报

0

主题

90

帖子

208

积分

中级会员

Rank: 3Rank: 3

积分
208
发表于 2021-7-14 09:38:47 | 显示全部楼层

6666666666666666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-7-22 15:08 , Processed in 0.207418 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表