关于机器学习

概念

监督学习

输入数据被称为训练数据,它们有已知的标签或者结果,比如垃圾邮件/非垃圾邮件或者某段时间的股票价格。模型的参数确定需要通过一个训练的过程,在这个过程中模型将会要求做出预测,当预测不符时,则需要做出修改。常见的监督学习算法包括回归分析和统计分类。

无监督学习

输入数据不带标签或者没有一个已知的结果。通过通过推测输入数据中存在的结构来建立模型。常见的无监督学习算法有聚类。

半监督学习

输入数据由带有标签和不带标签的组成。合适的预测模型虽热已经存在,但是模型在预测的同时还必须能通过发现潜在的结构来组织数据。这类问题包括分类和回归。

强化学习

输入数据作为来自环境的激励提供给模型,且模型必须做出反应。反馈并不像监督学习那样来自训练的过程,而是作为环境的惩罚或者奖赏。例如,系统和机器人控制。算法的例子包括Q学习和时序差分学习。

泛化能力

一个学习算法训练出来一个模型,希望它不仅仅是对已知的数据性能表现良好,对未知的数据也要表现完好,能给出合适的结果。测试集的误差也被称为泛化误差。
在机器学习中,泛化能力的好坏,最直观的表现出来的就是模型的过拟合与欠拟合。
欠拟合:指对训练样本的一般性质尚未学号。
过拟合:学习器吧训练样本学得“太好”了的时候,可能把训练样本自身的特点当做了所有潜在的样本都会具有一般性质,这样就会导致泛化性能下降。

偏差和方差

对于测试样本x,其真实标记为y,数据集中的标记, 机器学习算法输出的标记为,算法输出的期望值,则有以下定义:




其中E()代表求期望,有数学推导可知

即总误差可以分解为方差、偏差与噪声之和。

从直观理解的角度上看:

  • 偏差刻画了学习算法本身的拟合能力
  • 方差刻画了数据集的变动导致学习性能的变化,也就是学习算法的稳定性
  • 噪声表明了数据集标记本身的误差

在训练过程中,我们会得到训练集和测试集的总误差,通过这两个参数,我们可以判断出算法的拟合状态。
当出现欠拟合时,偏差高,方差低
当出现过拟合时,方差高,偏差低

线性回归

线性回归是分析一个变量与另一个或多个变量(自变量)之间,关系强度的方法。
线性回归的标志,如名称所暗示的那样,即自变量与结果变量之间的关系是线性的,也就是说变量关系可以连成一条直线。

线性回归损失函数、代价函数、目标函数

损失函数:模型的样本误差,用于度量预测值与真实值的拟合程度,损失函数越小说明模型越好。它是定义在单个样本上的。
代价函数:定义在整个训练集上的,整个样本误差的平均,即,损失函数的平均值。
目标函数:表示误差的损失函数,代价函数,加入了正则惩罚项后得到的最终优化函数。

优化方法(梯度下降法、牛顿法、拟牛顿法)
梯度下降法

通过一步一步迭代,边训练数据,边调整参数,计算偏导,使回归使终是保持梯度下降的,即最优,来得到最小化的损失函数和此时的模型参数值。

牛顿法

在梯度下降原理基础上,优化的二阶收敛,下降过程中采用二次曲面,考虑了每走一步对当前最大角度产生的影响,梯度下降是一阶收敛,一个平面下静态的拟合局部,只考虑了本步静态的最大方向。所以牛顿法比梯度下降法下降要快。

拟牛顿法

在每一步迭代时只要求知道目标函数梯度,通过测量梯度变化构造一个目标函数的模型,使之产生超线性收敛性。不需要二阶层数信息。可以用来解决无约事,约事,和大规模的优化问题。它是解非线性方程组及最优化计算中最有效的方法之一。

线性回归的评估指标

SSE(误差平方和):误差平方和,即(真实值-预测值)的平方和
同样的数据集的情况下,SSE越小,误差越小,模型效果越好
缺点:随着样本增加,SSE必然增加,也就是说,不同的数据集的情况下,SSE比较没有意义

R-square(决定系数):1- 误差平方和/原始真实数据与平均值差方和。综合考虑了预测数据和原始数据的误差以及原始数据的离散程度。消除了原始数据离散程度的影响。
R² 越接近1,表示方程变量对y的解释能力越强,模型对数据拟合越好。
R² 越接近0,表明模型拟合越差。
缺点:数据集的样本越大,R²越大,所以,不同数据集的模型结果比较会有一定的误差
Adjusted R-square:校正决定系数。加入样本数据和特征数据评价指标,消除了样本数据和特征数量的影响。

sklearn参数详解

sklearn 线性回归LinearRegression()参数:
fit_intercept:是否有截据,如果没有则直线过原点。
normalize:是否将数据归一化。
copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写。
n_jobs:默认值为1。计算时使用的核数。
Sklearn 逻辑回归LogisticRegression()参数:
penalty:正则惩罚项,值为L1 L2,默认L2,
random_state:随机种子,设置为0则,保证每次随机生成的数据比例一致
C:正则强度,较小的值指定更强的正则化。默认为1

线性回归算法梳理——Test1相关推荐

  1. 线性回归算法梳理 - 概念,线性回归

    1. 机器学习 & 基本概念 机器学习的核心是"使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测".这意味着,与其显式地编写程序来执行某些任务,不如教计算机 ...

  2. 逻辑回归与线性回归算法梳理

    逻辑回归算法梳理 逻辑回归与线性回归算法 1线性回归 2 逻辑回归 2.1 逻辑回归原理 2.2 逻辑回归损失函数 2.3 简化后的逻辑回归损失函数 3 联系与区别 3.1 联系 3.2 区别 4 正 ...

  3. 机器学习初级算法梳理一

    机器学习初级算法梳理一 任务一:线性回归算法梳理 一.机器学习的一些概念 1. 监督学习(Supervised Learning) 1.1 监督学习的分类 1.2 监督学习举例 2. 无监督学习(Un ...

  4. 1st day 初级算法梳理

    1st day 初级算法梳理 任务一 线性回归算法梳理 学习内容 机器学习的一些概念 有监督.无监督.泛化能力.过拟合欠拟合(方差和偏差以及各自解决办法).交叉验证 1.1 有监督: Supervis ...

  5. Datawhale组队学习:初级算法梳理课程任务

    背景 Datawhale 是国内很有名的一个开源学习组织.这个组织将渴望改变的学习者以及一群有能力有想法的青年人集结在一起,营造出一种互促高效的学习环境,一起为开源学习付出努力. Datawhale ...

  6. 算法梳理(二)逻辑回归原理及实现

    算法梳理(二)逻辑回归原理及实现 逻辑回归原理 一.从线性回归到逻辑回归 二.二分类的逻辑回归 (一)过程推理 (二)正则化 三.scikit-learn中逻辑回归参数详解 逻辑回归原理 logist ...

  7. 高级算法梳理-XGB

    XGB算法梳理 1.算法原理 XGBoost(eXtreme Gradient Boosting)算法是Gradient Boosting算法的高效实现版本,因其在应用实践中表现出优良的效果和效率,因 ...

  8. 逻辑回归算法梳理-2

    机器学习初级算法梳理二 任务二:逻辑回归算法梳理 1.逻辑回归与线性回归的联系与区别 1.1 相同点 1.2 不同点 2. 逻辑回归的原理 3.逻辑回归损失函数推导及优化 3.1 推导 3.2 优化 ...

  9. 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集

    各位同学好,今天我和大家分享一下python机器学习中线性回归算法的实例应用,并介绍正则化.岭回归方法.在上一篇文章中我介绍了线性回归算法的原理及推导过程:[机器学习](7) 线性回归算法:原理.公式 ...

最新文章

  1. 虚拟机中docker安装mysql远程无法访问解决方法
  2. 3、使用Oracle Logminer同步Demo
  3. 腾讯正式开源图计算框架Plato,十亿级节点图计算进入分钟级时代
  4. 反射-获取java私有内部类反射类型、私有字段
  5. 别用symbolicatecrash来解析crash Log了
  6. Flutter AppBar 简述
  7. java 路由_RabbitMQ入门:路由(Routing)
  8. 链式编程在Java 中的应用
  9. php 生成多个水印,php 生成水印的完整代码
  10. 那些年,我们一起做过的 Java 课后练习题(71 - 75)
  11. mysql Can't locate Data/Dumper.pm in @INC
  12. 【JZOJ6354】最短路(tiring)
  13. 认真分享一波本科 4 年挣到人生第一个 30w 的经历:目标->动力->坚持->改变
  14. JavaServer Faces 2.0 can not be installed解决方案
  15. 【OpenCV图像处理】五、图像的几何变换(下)
  16. JavaScript奇淫技巧:隐写术
  17. 数据库重构工具 LiquiBase(5 Liquibase被锁)
  18. 不用分片也能扩展 10 倍性能?简单了解以太坊 Turbo-Geth 客户端
  19. VC++ 视频播放器 图文步骤记录
  20. Matlab项目实例-音频频率

热门文章

  1. 概率论学习二、样本空间与事件
  2. 【个人整理】一文看尽目标检测算法SSD的核心架构与设计思想
  3. 为什么行程码不能显示到县级,工信部回应
  4. 手撕内存拷贝函数 memmove、memcpy
  5. JS实现动态生成表格
  6. Notepad++显示所有字符:空格换行
  7. 进程注入之DLL注入
  8. 【cx_Oracle】记录一次 python cx_Oracle出现 ORA-00911: 无效字符
  9. whoosh使用简介
  10. 软件工程课程周学习进度报告——第三周