当前位置: 首页 > news >正文

萍乡企业网站制作漯河网页设计

萍乡企业网站制作,漯河网页设计,建设一个大型电影网站费用,网上营销型网站文章目录1. 线性回归1.1 正规方程求解1.2 时间复杂度1.3 梯度下降1.4 批量梯度下降1.5 随机梯度下降1.6 小批量梯度下降2. 多项式回归3. 线性模型正则化4. 早期停止法#xff08;Early Stopping#xff09;本文为《机器学习实战#xff1a;基于Scikit-Learn和TensorFlow》的… 文章目录1. 线性回归1.1 正规方程求解1.2 时间复杂度1.3 梯度下降1.4 批量梯度下降1.5 随机梯度下降1.6 小批量梯度下降2. 多项式回归3. 线性模型正则化4. 早期停止法Early Stopping本文为《机器学习实战基于Scikit-Learn和TensorFlow》的读书笔记。 中文翻译参考 1. 线性回归 如何得到模型的参数 1.1 正规方程求解 先生成带噪声的线性数据 import numpy as np import matplotlib.pyplot as plt X 2*np.random.rand(100,1) y 43*Xnp.random.randn(100,1) plt.plot(X,y,b.) plt.axis([0,2,0,15])采用矩阵解方程得到参数 X_b np.c_[np.ones((100,1)),X] theta_best np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y) theta_bestarray([[4.46927218],[2.71589368]])预测新的数据 X_new np.array([[0],[2]]) X_new_b np.c_[np.ones((2,1)),X_new] y_pred X_new_b.dot(theta_best) y_predarray([[4.46927218],[9.90105954]])画出模型回归线 plt.plot(X_new,y_pred,r-) plt.plot(X,y,b.) plt.axis([0,2,0,15]) plt.show()使用sklearn求解 from sklearn.linear_model import LinearRegression lin_reg LinearRegression() lin_reg.fit(X,y) lin_reg.intercept_, lin_reg.coef_ # (array([4.15725481]), array([[2.97840411]])) lin_reg.predict(X_new)array([[ 4.15725481],[10.11406304]])1.2 时间复杂度 求解过程需要矩阵求逆矩阵求逆时间复杂度在 O(n2.4)O(n^{2.4})O(n2.4) 到 O(n3)O(n^3)O(n3) 之间n 为特征数 特征个数很多的时候这种计算方法将会非常慢 1.3 梯度下降 整体思路通过的迭代来逐渐调整参数使得损失函数达到最小值 由上图右侧可见一开始的方向跟梯度方向几乎垂直走了弯路。 当我们使用梯度下降的时候应该确保所有的特征有着相近的尺度范围 例如使用 Scikit Learn 的 StandardScaler类否则它将需要很长的时间才能够收敛。 参数越多找到最佳参数的难度也越大 1.4 批量梯度下降 会使用全部的训练数据在大数据集上会变得很慢 eta 0.1 # 学习率 n_iter 1000 m 100 theta np.random.randn(2,1)for iter in range(n_iter):gradients 2/m*X_b.T.dot(X_b.dot(theta)-y)theta theta - eta*gradients thetaarray([[4.33118102],[2.8597418 ]])不同的学习率下学习情况对比 eta 0.1 # 学习率 n_iter 1000 m 100 theta np.random.randn(2,1)plt.figure(figsize(8,6)) plt.ion()# 打开交互模式 plt.axis([0,2,0,15]) plt.rcParams[font.sans-serif] SimHeifor iter in range(n_iter):plt.cla() # 清除原图像gradients 2/m*X_b.T.dot(X_b.dot(theta)-y)theta theta - eta*gradientsX_new np.array([[0],[2]])X_new_b np.c_[np.ones((2,1)),X_new]y_pred X_new_b.dot(theta)plt.plot(X,y,b.)plt.plot(X_new,y_pred,r-)plt.title(学习率{:.2f}.format(eta))plt.pause(0.1) # 暂停一会display.clear_output(waitTrue)# 刷新图像 plt.ioff()# 关闭交互模式 plt.show() theta求解过程动图请参看博文matplotlib 绘制梯度下降求解过程 实际使用时设置较大的迭代次数和容差当梯度向量变得非常小的时候小于容差时认为收敛结束迭代 1.5 随机梯度下降 每一步梯度计算只随机选取训练集中的一个样本。这使得算法变得非常快。 随机梯度算法可以在大规模训练集上使用由于随机性它到达最小值不是平缓下降损失函数会忽高忽低大体呈下降趋势迭代点不会停止在一个值上会一直在这个值附近摆动最后的参数还不错但不是最优值 由于其随机性它能跳过局部最优解但同时它却不能达到最小值。 解决办法逐渐降低学习率 开始时走大步快速前进跳过局部最优解然后逐步降低学习率使算法到达全局最小值。 这个过程被称为模拟退火因为它类似于熔融金属慢慢冷却的冶金学退火过程 决定每次迭代的学习率的函数称为 learning schedule 如果学习速度降得过快可能陷入局部最小值或者迭代次数到了半路就停止了如果学习速度降得太慢可能在最小值附近震荡如果过早停止训练只得到次优解 from sklearn.linear_model import SGDRegressor # help(SGDRegressor) sgd_reg SGDRegressor(max_iter100, penaltyNone, eta00.1) sgd_reg.fit(X,y.ravel()) sgd_reg.intercept_, sgd_reg.coef_(array([3.71001759]), array([2.99883799]))1.6 小批量梯度下降 每次迭代的时候使用一个随机的小型实例集 2. 多项式回归 依然可以使用线性模型来拟合非线性数据 一个简单的方法对每个特征进行加权后作为新的特征然后训练一个线性模型基于这个扩展的特征集。 这种方法称为多项式回归。 m 100 X 6*np.random.rand(m,1)-3 y 0.5*X**2 X 2 np.random.randn(m,1) plt.rcParams[axes.unicode_minus] False # 显示负号 plt.plot(X, y, g.)from sklearn.preprocessing import PolynomialFeatures pf PolynomialFeatures(degree2, include_biasFalse) # help(PolynomialFeatures) X_ploy pf.fit_transform(X) print(X[0]) print(X_ploy[0])对原始特征进行2阶多项式转换后多出了 X2 项 [2.43507761] [2.43507761 5.92960298]进行线性回归 lin_reg LinearRegression() lin_reg.fit(X_ploy, y) lin_reg.intercept_, lin_reg.coef_(array([1.95147614]), array([[1.0462516 , 0.48003845]]))绘出预测线 plt.plot(X, y, g.) x np.linspace(-3.5, 3.5, 500) print(x.shape) y_pred lin_reg.intercept_ lin_reg.coef_[0][0]*x lin_reg.coef_[0][1]*x**2 plt.plot(x, y_pred, r-)注意阶数变大时特征的维度会急剧上升不仅有 ana^nan还有 an−1b,an−2b2a^{n-1}b,a^{n-2}b^2an−1b,an−2b2等 如何确定选择多少阶 1、交叉验证 在训练集上表现良好但泛化能力很差过拟合如果这两方面都不好欠拟合。可知模型是太复杂还是太简单 2、观察学习曲线 from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_splitdef plot_learning_curves(model, X, y):X_train, X_val, y_train, y_val train_test_split(X, y, test_size0.2)train_errors, val_errors [], []for m in range(1, len(X_train)):model.fit(X_train[:m], y_train[:m])y_train_predict model.predict(X_train[:m])y_val_predict model.predict(X_val)train_errors.append(mean_squared_error(y_train_predict, y_train[:m]))val_errors.append(mean_squared_error(y_val_predict, y_val))plt.plot(np.sqrt(train_errors), r-, linewidth2, labeltrain)plt.plot(np.sqrt(val_errors), b-, linewidth3, labelval)lin_reg LinearRegression() plot_learning_curves(lin_reg, X, y)上图显示训练集和测试集在数据不断增加的情况下曲线趋于稳定同时误差都非常大欠拟合欠拟合添加样本是没用的需要更复杂的模型或更好的特征 模型的泛化误差由三个不同误差的和决定 偏差模型假设不贴合高偏差的模型最容易出现欠拟合方差模型对训练数据的微小变化较为敏感多自由度的模型更容易有高的方差如高阶多项式会导致过拟合不可约误差数据噪声可进行数据清洗 3. 线性模型正则化 限制模型的自由度降低过拟合 岭Ridge回归 L2正则Lasso 回归 L1正则弹性网络ElasticNet以上两者的混合r0, 就是L2r1就是 L1 J(θ)MSE(θ)rα∑i1n∣θi∣1−r2α∑i1nθi2J(\theta)M S E(\theta)r \alpha \sum_{i1}^{n}\left|\theta_{i}\right|\frac{1-r}{2} \alpha \sum_{i1}^{n} \theta_{i}^{2}J(θ)MSE(θ)rαi1∑n​∣θi​∣21−r​αi1∑n​θi2​ from sklearn.linear_model import Ridge ridge_reg Ridge(alpha1, solvercholesky) ridge_reg.fit(X, y) ridge_reg.predict([[1.5]]) # array([[5.04581676]])from sklearn.linear_model import Lasso lasso_reg Lasso(alpha0.1) lasso_reg.fit(X, y) lasso_reg.predict([[1.5]]) # array([5.00189893])from sklearn.linear_model import ElasticNet elastic_net ElasticNet(alpha0.1, l1_ratio0.5) elastic_net.fit(X, y) elastic_net.predict([[1.5]]) # array([4.99822842])4. 早期停止法Early Stopping 验证集 误差达到最小值并开始上升时出现过拟合结束迭代回滚到之前的最小值处
http://www.pierceye.com/news/845287/

相关文章:

  • 网站做数据分析什么软件是做网站的
  • 邯郸移动网站建设建设网站的报价
  • 做网站优化期间能收到网站吗科技创新与应用
  • 有没有做的很炫的科技型网站wordpress企业主题二次开发下载
  • 陕西住房和建设部网站深圳外贸建站模版
  • 自己做网站的各种代码wordpress只能访问主页
  • 四川监理协会建设网站长沙有哪些楼盘
  • 网站首页欣赏网站模板 wordpress带会员系统
  • 关于音乐的个人网站wordpress 报名表单
  • 国内做的好看的网站设计wordpress 与现有sso
  • 通辽网站建设罗湖中心区做网站
  • 宁波网站建设哪家快湛江专业的建站托管
  • 四川省城乡住房建设部网站首页自建wordpress 客户端
  • 番禺做网站价格百度app打开
  • 扬中网站推广导流非国产手机浏览器
  • 外国网站英语要求建立网站就是制作网页
  • 电商网站建设与运营实训可以做网站的app
  • 深圳南山区网站建设公司站长工具seo综合查询 分析
  • 互粉的网站是怎么做的网站建设公司利润怎么样
  • 个人网站平台搭建咸阳企业做网站
  • 租用外国服务器网站网站建设电子商务论文选题方向
  • 网站建设那种语言好wordpress 首页添加链接
  • NET开发网站开发工程师招聘潍坊市网站建设公司
  • 自己开发网站怎么盈利开发游戏需要多少资金
  • 先域名 还是先做网站塘厦
  • 企业公众号以及网站建设wordpress 代码块样式
  • 网站源码搭建教程大同建设银行保安招聘网站
  • 无锡网站设wordpress营销模板
  • 建站哪个好一点wordpress直达按钮
  • 卢松松网站的百度广告怎么做的小程序开发成都公司