1可选实验室: 线性回归使用 Scikit-Learn

有一个开源的、商业上可用的机器学习工具包,叫做 scikit-learn。本工具包包含您将在本课程中使用的许多算法的实现。

1.1目标

在这个实验室里:

  • 利用 scikit-学习使用线性回归梯度下降法来实现

1.2工具

您将利用 scikit-learn 以及 matplotlib 和 NumPy 中的函数。

2梯度下降

Scikit-learn 有一个梯度下降法回归模型 skearn.line _ model..SGDRegressor。与前面的梯度下降法实现一样,这个模型在标准化输入时表现最好。sklearn.StandardScaler 将像以前的实验室一样执行 z 分数标准化。在这里它被称为“标准分数”。

2.1加载数据集

import numpy as np
np.set_printoptions(precision=2)
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.preprocessing import StandardScaler
from lab_utils_multi import  load_house_data
import matplotlib.pyplot as plt
dlblue = '#0096ff'; dlorange = '#FF9300'; dldarkred='#C00000'; dlmagenta='#FF40FF'; dlpurple='#7030A0';
plt.style.use('./deeplearning.mplstyle')X_train, y_train = load_house_data()
X_features = ['size(sqft)','bedrooms','floors','age']

2.2缩放/归一化训练数据

scaler = StandardScaler()
X_norm = scaler.fit_transform(X_train)
print(f"Peak to Peak range by column in Raw        X:{np.ptp(X_train,axis=0)}")
print(f"Peak to Peak range by column in Normalized X:{np.ptp(X_norm,axis=0)}")

输出:

Peak to Peak range by column in Raw        X:[2.41e+03 4.00e+00 1.00e+00 9.50e+01]
Peak to Peak range by column in Normalized X:[5.85 6.14 2.06 3.69]

2.3创建并拟合回归模型

sgdr = SGDRegressor(max_iter=1000)
sgdr.fit(X_norm, y_train)
print(sgdr)
print(f"number of iterations completed: {sgdr.n_iter_}, number of weight updates: {sgdr.t_}")

输出:

SGDRegressor(alpha=0.0001, average=False, epsilon=0.1, eta0=0.01,fit_intercept=True, l1_ratio=0.15, learning_rate='invscaling',loss='squared_loss', max_iter=1000, n_iter=None, penalty='l2',power_t=0.25, random_state=None, shuffle=True, tol=None, verbose=0,warm_start=False)
number of iterations completed: 1000, number of weight updates: 99001.0

2.4参数视图

注意,这些参数与规范化的输入数据相关联。拟合参数非常接近以前的实验室发现的这些数据。

b_norm = sgdr.intercept_
w_norm = sgdr.coef_
print(f"model parameters:                   w: {w_norm}, b:{b_norm}")
print(f"model parameters from previous lab: w: [110.56 -21.27 -32.71 -37.97], b: 363.16")

输出:

model parameters:                   w: [110.56 -21.26 -32.69 -37.98], b:[363.17]
model parameters from previous lab: w: [110.56 -21.27 -32.71 -37.97], b: 363.16

2.5预测

预测训练数据的目标。使用预测程序和使用 w 和 b 进行计算。

# make a prediction using sgdr.predict()
y_pred_sgd = sgdr.predict(X_norm)
# make a prediction using w,b.
y_pred = np.dot(X_norm, w_norm) + b_norm
print(f"prediction using np.dot() and sgdr.predict match: {(y_pred == y_pred_sgd).all()}")print(f"Prediction on training set:\n{y_pred[:4]}" )
print(f"Target values \n{y_train[:4]}")

输出:

prediction using np.dot() and sgdr.predict match: True
Prediction on training set:
[295.17 486.03 389.56 492.2 ]
Target values
[300.  509.8 394.  540. ]

2.6Plot结果

# plot predictions and targets vs original features
fig,ax=plt.subplots(1,4,figsize=(12,3),sharey=True)
for i in range(len(ax)):ax[i].scatter(X_train[:,i],y_train, label = 'target')ax[i].set_xlabel(X_features[i])ax[i].scatter(X_train[:,i],y_pred,color=dlorange, label = 'predict')
ax[0].set_ylabel("Price"); ax[0].legend();
fig.suptitle("target versus prediction using z-score normalized model")
plt.show()

3总结

在这个实验室里:

  • 使用了一个开源的机器学习工具包 scikit-learn
  • 使用工具包中的线性回归梯度下降法和特性标准化来实现

吴恩达机器学习2022-Jupyter-Scikit-Learn教学相关推荐

  1. 【机器学习】吴恩达机器学习Deeplearning.ai

    机器学习已经强大到可以独立成为人工智能的一个子领域. 可以通过对机器编程实现比如执行网络搜索.理解人类语言.通过x光诊断疾病,或制造自动驾驶汽车. 机器学习定义 一般来说,给一个算法学习的机会越多,它 ...

  2. 用Python学习吴恩达机器学习——梯度下降算法理论篇

    开篇词:(CSDN专供) 欢迎阅读我的文章,本文起先是在B站上进行投稿,一开始是采用吴恩达机器学习2012年版的,目前已经出了十二期了.现在我决定将我摸索出来的学习笔记在各个平台上进行连载,保证同时更 ...

  3. 吴恩达机器学习笔记-应用机器学习的建议

    评估假设 我们之前已经学习过一些机器学习的算法,现在我们来谈谈如何评估算法学习得到的假设.当发现预测的结果和实际的数据有误差的时候,我们需要进行一些调整来保证预测的准确性,大部分情况下,有以下几种办法 ...

  4. 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)

    今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...

  5. github标星11600+:最全的吴恩达机器学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...

    吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,我在github开源了吴恩达机器学习个人笔记,用python复现了课程作业,成为热门项目,star数达到11671+,曾经有相关报道 ...

  6. 5. 吴恩达机器学习课程-作业5-偏差和方差

    fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 5. ...

  7. 吴恩达机器学习第一周测试

    吴恩达机器学习第一周测试 Some of the problems below are best addressed using a supervised learning algorithm, an ...

  8. 吴恩达机器学习视频学习笔记

    吴恩达机器学习视频笔记 介绍 Introduction 线性回归 Linear Regression 单变量 One Variable 多变量 Multiple Variables 多项式回归 Pol ...

  9. 吴恩达机器学习课程(第一周)

    吴恩达机器学习课程(第一周) welcome Welcome to Machine learning!(video) 机器学习在各领域的应用很多 比如搜索引擎 图像识别 垃圾邮件处理 这是一门让计算机 ...

  10. 《吴恩达机器学习》1 绪论:初识机器学习

    初识机器学习 前言 一.什么是机器学习 1.预测房价 2.乳腺癌预测 二.监督学习 三.非监督学习 1.google news 2.DNA 个性 总结 前言 机器学习(Machine Learning ...

最新文章

  1. 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
  2. kubernetes之kubedns部署
  3. Theme.NoTitleBar问题
  4. 如何设计一个深度学习项目
  5. /usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse error at BOOST_JOIN错误
  6. 飞鸽传书2011比飞鸽传书2007的进化
  7. [翻译] AFDropdownNotification
  8. 光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)3-LBVH(Linear Bounding Volume Hierarchies)
  9. Struts2一个诡异问题的解决
  10. indesign缩放图片被切割_InDesign怎么改变图片的大小
  11. 重装windows10系统自定义安装时未出现分区,解决方法之一
  12. CodeForces-721A-One-dimensional Japanese Crossword
  13. git将一个分支的提交合并到另一个分支
  14. 情商高手与小白的言辞,差别究竟在哪里?
  15. sqldbx怎么连接远程服务器,SqlDbx连接远程DB2数据库
  16. UBUNTU上打字练习软件
  17. 彻底搞懂ResNet50
  18. 【转】关于SAP的用户出口 SAP的用户功能增强
  19. 安全计算:使用ClamWin为高级用户提供免费病毒防护
  20. java批注_java中批注作用

热门文章

  1. 计算机网络原理期末复习
  2. Android应用的加固与逆向
  3. ctrl c复制浏览器html,网页禁止右键复制和ctrl-c复制,怎么解决 爱问知识人
  4. python requests请求方式_Python Requests库使用2:请求方法
  5. UML2用例描述以及需求用例规约文档生成
  6. Latex 英文单引号,双引号
  7. Windows实时运动控制软核(三):LOCAL高速接口测试之C++
  8. 狂神-SpringBoot笔记-总
  9. 英特尔酷睿 i9-11900K 首发评测优势分析,新架构Cypress Cove较上代性能提高19%
  10. 数据库实验一 数据库定义