吴恩达机器学习2022-Jupyter-Scikit-Learn教学
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教学相关推荐
- 【机器学习】吴恩达机器学习Deeplearning.ai
机器学习已经强大到可以独立成为人工智能的一个子领域. 可以通过对机器编程实现比如执行网络搜索.理解人类语言.通过x光诊断疾病,或制造自动驾驶汽车. 机器学习定义 一般来说,给一个算法学习的机会越多,它 ...
- 用Python学习吴恩达机器学习——梯度下降算法理论篇
开篇词:(CSDN专供) 欢迎阅读我的文章,本文起先是在B站上进行投稿,一开始是采用吴恩达机器学习2012年版的,目前已经出了十二期了.现在我决定将我摸索出来的学习笔记在各个平台上进行连载,保证同时更 ...
- 吴恩达机器学习笔记-应用机器学习的建议
评估假设 我们之前已经学习过一些机器学习的算法,现在我们来谈谈如何评估算法学习得到的假设.当发现预测的结果和实际的数据有误差的时候,我们需要进行一些调整来保证预测的准确性,大部分情况下,有以下几种办法 ...
- 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)
今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...
- github标星11600+:最全的吴恩达机器学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...
吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,我在github开源了吴恩达机器学习个人笔记,用python复现了课程作业,成为热门项目,star数达到11671+,曾经有相关报道 ...
- 5. 吴恩达机器学习课程-作业5-偏差和方差
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 5. ...
- 吴恩达机器学习第一周测试
吴恩达机器学习第一周测试 Some of the problems below are best addressed using a supervised learning algorithm, an ...
- 吴恩达机器学习视频学习笔记
吴恩达机器学习视频笔记 介绍 Introduction 线性回归 Linear Regression 单变量 One Variable 多变量 Multiple Variables 多项式回归 Pol ...
- 吴恩达机器学习课程(第一周)
吴恩达机器学习课程(第一周) welcome Welcome to Machine learning!(video) 机器学习在各领域的应用很多 比如搜索引擎 图像识别 垃圾邮件处理 这是一门让计算机 ...
- 《吴恩达机器学习》1 绪论:初识机器学习
初识机器学习 前言 一.什么是机器学习 1.预测房价 2.乳腺癌预测 二.监督学习 三.非监督学习 1.google news 2.DNA 个性 总结 前言 机器学习(Machine Learning ...
最新文章
- 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)
- kubernetes之kubedns部署
- Theme.NoTitleBar问题
- 如何设计一个深度学习项目
- /usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse error at BOOST_JOIN错误
- 飞鸽传书2011比飞鸽传书2007的进化
- [翻译] AFDropdownNotification
- 光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)3-LBVH(Linear Bounding Volume Hierarchies)
- Struts2一个诡异问题的解决
- indesign缩放图片被切割_InDesign怎么改变图片的大小
- 重装windows10系统自定义安装时未出现分区,解决方法之一
- CodeForces-721A-One-dimensional Japanese Crossword
- git将一个分支的提交合并到另一个分支
- 情商高手与小白的言辞,差别究竟在哪里?
- sqldbx怎么连接远程服务器,SqlDbx连接远程DB2数据库
- UBUNTU上打字练习软件
- 彻底搞懂ResNet50
- 【转】关于SAP的用户出口 SAP的用户功能增强
- 安全计算:使用ClamWin为高级用户提供免费病毒防护
- java批注_java中批注作用
热门文章
- 计算机网络原理期末复习
- Android应用的加固与逆向
- ctrl c复制浏览器html,网页禁止右键复制和ctrl-c复制,怎么解决 爱问知识人
- python requests请求方式_Python Requests库使用2:请求方法
- UML2用例描述以及需求用例规约文档生成
- Latex 英文单引号,双引号
- Windows实时运动控制软核(三):LOCAL高速接口测试之C++
- 狂神-SpringBoot笔记-总
- 英特尔酷睿 i9-11900K 首发评测优势分析,新架构Cypress Cove较上代性能提高19%
- 数据库实验一 数据库定义