1. 机器学习 & 基本概念

机器学习的核心是“使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测”。这意味着,与其显式地编写程序来执行某些任务,不如教计算机如何开发一个算法来完成任务。有三种主要类型的机器学习:监督学习、非监督学习和强化学习,所有这些都有其特定的优点和缺点1
监督学习涉及一组标记数据。计算机可以使用特定的模式来识别每种标记类型的新样本。监督学习的两种主要类型是分类回归
分类中,机器被训练成将一个组划分为特定的类。分类的一个简单例子是电子邮件帐户上的垃圾邮件过滤器。过滤器分析你以前标记为垃圾邮件的电子邮件,并将它们与新邮件进行比较。如果它们匹配一定的百分比,这些新邮件将被标记为垃圾邮件并发送到适当的文件夹。那些比较不相似的电子邮件被归类为正常邮件并发送到你的邮箱。
回归中,机器使用先前的(标记的)数据来预测未来。天气应用是回归的好例子。使用气象事件的历史数据(即平均气温、湿度和降水量),你的手机天气应用程序可以查看当前天气,并在未来的时间内对天气进行预测。

无监督数据是无标签的。由于大多数真实世界的数据都没有标签,这些算法有很大用处。无监督学习分为聚类降维
聚类用于根据属性和行为对象进行分组。这与分类不同,因为这些组不是你提供的。聚类的一个例子是将一个组划分成不同的子组(例如,基于年龄和婚姻状况),然后应用到有针对性的营销方案中。
降维通过找到共同点来减少数据集的变量。大多数大数据可视化使用降维来识别趋势和规则。

强化学习:使用机器的个人历史和经验来做出决定。强化学习的经典应用是玩游戏。与监督和非监督学习不同,强化学习不涉及提供“正确的”答案或输出。相反,它只关注性能。这反映了人类是如何根据积极和消极的结果学习的。很快就学会了不要重复这一动作。同样的道理,一台下棋的电脑可以学会不把它的国王移到对手的棋子可以进入的空间。然后,国际象棋的这一基本教训就可以被扩展和推断出来,直到机器能够打(并最终击败)人类顶级玩家为止。

模型选择与评估

泛化能力 :泛化能力是模型对未知数据的预测能力。大白话来说就是,模型训好了,放到实际场景中去使用,会不会掉链子,还是能达到跟训练时一样的效果。泛化能力的本质就是反映模型有没有对客观世界做真实的刻画,还是发生了过拟合。
常见的度量方法参见:1.泛化能力如何评估?泛化能力的置信度是什么? 2.机器学习入门——泛化能力性能度量

过拟合:由于学习能力过强导致把训练样本本身的“个性”当作潜在样本的“共性”,导致泛化性能下降。
欠拟合:与过拟合相反,由于无法学习到训练样本的共性。
产生原因及解决方法:机器学习+过拟合和欠拟合+方差和偏差

方差、偏差的应用场景?

用于计算模型的好坏。具体是使用error公式。
Error = Bias^2 + Variance+Noise
Bias(偏差): Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,即算法本身的拟合能力
Variance(方差):Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。反应预测的波动情况。
Noise(噪声):这就简单了,就不是你想要的真正数据,你可以想象为来破坏你实验的元凶和造成你可能过拟合的原因之一,至于为什么是过拟合的原因,因为模型过度追求Low Bias会导致训练过度,对测试集判断表现优秀,导致噪声点也被拟合进去了

交叉验证:交叉验证需要将数据集分为训练集和验证集(或者称测试集),在训练集上对模型训练参数,在验证集上看训练出的模型的好坏。

线性回归的原理2

线性回归(Linear Regression)是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。

损失函数,代价函数和目标函数

损失函数(Loss Function)
简述:用来量化预测分类标签的得分与真实标签之间的一致性,算的是一个样本的误差

代价函数(评分函数 Score Function)
简述:原始数据到类别分值的映射,是所有样本误差的平均,也就是损失函数的平均

目标函数(target function)
简述:在代价函数中寻找最小化的损失函数。可理解为也就是代价函数 + 正则化项

总结:
​ 线性回归中的定义了方程组: Xw = y,其中(xi,yi)是给定的,不能修改,但是我们可以基于数据不断的调整W矩阵中每一个参数,使得这个函数得到的结果与训练集中的图像的真实类别一致,即评分函数或称为代价函数在正确的分类的位置上应该得到较高的的得分

优化方法

梯度下降法(Gradient Descent)
简述:梯度下降是一种迭代算法,迭代中寻找使目标函数极小化的x值。此处的f(x)是具有一阶连续偏导数的函数。而在实际应用中,由于负梯度方向是使函数值下降最快的方法,于是我们的目标就是在每次迭代之后,以负梯度更新x的值,从而达到减少函数值的目的。

牛顿法(Newton’s Method)
简述:核心与梯度下降法类似,不同之处在于f(x)具有二阶连续偏导数。每次迭代计算完梯度值后求解目标函数的海赛矩阵的逆矩阵。

拟牛顿法(Quasi-Newton Methods)
简述:核心与牛顿法相似,因为牛顿法需要计算海赛矩阵的逆矩阵较为复杂,此方法则用一个n阶矩阵近似的代替海赛矩阵的计算

具体步骤:组队学习–线性回归算法梳理及机器学习中常见概念

评估指标3

均方误差MSE(Mean Squared Error)
对于简单的线性回归,目标是找到a,b 使 方差尽可能小,最终得到的衡量标准是:

实际上就是 真实值 - 预测值 然后平方之后求和。

均方根误差RMSE(Root Mean Squared Error)
对于MSE的公式有一个问题就是会导致量纲的问题,因为对其做了平方的缘故,会导致数据极大,这里对均方误差进行开根,使量纲相同

平均绝对误差MAE(Mean Absolute Error)
最后这个是另一种思路,用绝对值代替平方的形式,有点类似p1 与 p2 正则化的区别,不过没有平方:

skleam参数详解4

fit_intercept: 布尔型,默认为true
说明:是否对训练数据进行中心化。如果该变量为false,则表明输入的数据已经进行了中心化,在下面的过程里不进行中心化处理;否则,对输入的训练数据进行中心化处理

normalize布尔型,默认为false
说明:是否对数据进行标准化处理

copy_X 布尔型,默认为true
说明:是否对X复制,如果选择false,则直接对原数据进行覆盖。(即经过中心化,标准化后,是否把新数据覆盖到原数据上)

n_jobs 整型, 默认为1
说明:计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用。

返回值:
coef_数组型变量, 形状为(n_features,)或(n_targets, n_features)

说明:对于线性回归问题计算得到的feature的系数。如果输入的是多目标问题,则返回一个二维数组(n_targets, n_features);如果是单目标问题,返回一个一维数组 (n_features,)。

intercept_ 数组型变量
说明:线性模型中的独立项。

注:该算法仅仅是scipy.linalg.lstsq经过封装后的估计器。

方法:
decision_function(X) 对训练数据X进行预测
fit(X, y[, n_jobs]) 对训练集X, y进行训练。是对scipy.linalg.lstsq的封装
get_params([deep]) 得到该估计器(estimator)的参数。
predict(X) 使用训练得到的估计器对输入为X的集合进行预测(X可以是测试集,也可以是需要预测的数据)。

score(X, y[,]sample_weight) 返回对于以X为samples,以y为target的预测效果评分。

set_params(**params) 设置估计器的参数

decision_function(X) 和predict(X)都是利用预估器对训练数据X进行预测,其中decision_function(X)包含了对输入数据的类型检查,以及当前对象是否存在coef_属性的检查,是一种“安全的”方法,而predict是对decision_function的调用。

score(X, y[,]sample_weight) 定义为(1-u/v),其中u = ((y_true - y_pred)**2).sum(),而v=((y_true-y_true.mean())**2).mean()

最好的得分为1.0,一般的得分都比1.0低,得分越低代表结果越差。

其中sample_weight为(samples_n,)形状的向量,可以指定对于某些sample的权值,如果觉得某些数据比较重要,可以将其的权值设置的大一些


  1. 这可能是最简单易懂的机器学习入门(小白必读), Link:https://blog.csdn.net/qq_28168421/article/details/81351321, ↩︎

  2. https://blog.csdn.net/pxhdky/article/details/82388964 ↩︎

  3. https://blog.csdn.net/qq_41978536/article/details/88884810 ↩︎

  4. https://blog.csdn.net/qq_29083329/article/details/48653391 ↩︎

线性回归算法梳理 - 概念,线性回归相关推荐

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

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

  2. php 线性回归算法,PHP计算线性回归方程式 Y = a + bX

    在游戏的开发过程中,我们会用到很多的算法,其中数学中的线性回归可以很好地运用到一些游戏里,下面是由PHP写的一段计算线性回归的方程式的代码: 线性回归 Linear Regression 计算线性回归 ...

  3. 线性回归算法梳理——Test1

    关于机器学习 概念 监督学习 输入数据被称为训练数据,它们有已知的标签或者结果,比如垃圾邮件/非垃圾邮件或者某段时间的股票价格.模型的参数确定需要通过一个训练的过程,在这个过程中模型将会要求做出预测, ...

  4. 算法梳理——001线性回归

    一.写在前面的碎碎念 像所有游戏的开端差不多,一年前一个人就孤零零的冲上了图像处理的道路,过程曲折而充满着冒险的意味,不断地摸索试探慢慢前行,发现一扇门背后连接着的是一个世界.当我走进那扇门的时候,我 ...

  5. python一元线性回归算法_6一元线性回归_清华编程高手尹成带你基于算法实践python量化交易_其他视频-51CTO学院...

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  6. 机器学习 线性回归算法_探索机器学习算法简单线性回归

    机器学习 线性回归算法 As we dive into the world of Machine Learning and Data Science, one of the easiest and f ...

  7. java基础巩固-宇宙第一AiYWM:为了维持生计,编程语言番外篇之机器学习(项目预测模块总结:线性回归算法、逻辑回归分类算法)~整起

    机器学习 一.机器学习常见算法(未完待续...) 1.算法一:线性回归算法:找一条完美的直线,完美拟合所有的点,使得直线与点的误差最小 2.算法二:逻辑回归分类算法 3.算法三:贝叶斯分类算法 4.算 ...

  8. Python机器学习--回归算法--线性回归算法

    线性回归算法 线性回归算法类型: 线性回归算法属于有监督学习的回归算法,可以处理标签为连续数据类型的数据. 线性回归算法原理: 通过寻找特征和标签之间的关系,生成一个线性方程,通过线性方程预测未知标签 ...

  9. 线性回归算法思路总结(详细)

    线性回归 算法背景概述 线性回归算法属于监督学习–回归类的一种 线性回归,评估自变量X与因变量Y之间的一种线性关系.当只有一个自变量的时候,称为一元线性回归,当具有多个自变量的时候, 称为多元线性回归 ...

最新文章

  1. Kaggle上的犬种识别(ImageNet Dogs)
  2. git生成ssh keys步骤与使用
  3. SqLite中的事务
  4. (asp.net MVC学习)System.Web.Mvc.UrlHelper的学习与使用
  5. 学习笔记Hadoop(九)—— Hadoop基础操作(1)—— Hadoop安全模式、Hadoop集群基本信息
  6. Windows10文件重命名/复制/移动时,导致文件资源管理器卡顿,解决方案
  7. Kettle, Solr
  8. python exe文件运行依赖环境_python将py代码文件转换为EXE脱离环境运行
  9. ASP.NET Core 单元测试:如何 Mock HttpContext.Features.Get()
  10. scala 获取数组中元素_从Scala中的元素列表中获取随机元素
  11. mysql中的基本数据类型_mysql基本数据类型
  12. div居中以及div中的元素居中
  13. 如何在 Mac 上修改鼠标指针颜色?
  14. mbedtls学习4.mbedtls_RAM/ROM优化指南
  15. Excel xlsx file; not supported报错
  16. iPad是真正的移动设备吗?
  17. 微信小程序---获取输入框(input)内容
  18. 字符串连接的5种方法
  19. VERO VISI安装教程
  20. manifest原理和用途

热门文章

  1. Axure中继器的总结
  2. ISP算法学习之LSC(镜头阴影校正)
  3. [连载]好心收留他,但他却抢了我老婆?(一)
  4. 多迪教研专家:UI设计师如何更具有竞争力?
  5. 如何显示 nft 图片
  6. python3 字母的音符标记的统一规范,以及去掉音符标记
  7. 水果文案营销怎么发朋友圈,水果店朋友圈的营销文案大全
  8. python随机数random_Python 随机数 random
  9. 如何在html网页中插入视频(以及让视频自动播放的问题)
  10. 网站丨别再说你找不到好用的工具了