线性拟合

线性回归中“回归”的含义

孤街浪徒 提交于 2019-12-02 12:31:27
原文地址: https://blog.csdn.net/laputa_ml/article/details/80072570#comments 今天我就简单谈谈自己的一些新想法。我们从最基本的容易引起歧义的地方出发。很多人问我,回归(regression)和拟合(fitting)有什么不同?其实如果你想从数学的角度去区分它们,你就出不来了。知识往往都有“先入为主”的那种影响。我们接触的第一类回归问题,就是简单线性回归,或者多项式回归,而这恰恰和我们接触的拟合问题“天然地相似”:最小二乘法求解参数。因此,那些数学出身的学生,就始终很难将这两类问题真正区分开。但是如果从历史发展的角度,结合更多实际问题来看,这个问题是很容易体会清楚的。 开始的时候,人们得到了很多组数据,这些数据之间貌似是有联系的,于是人们想要找到一种近似的函数关系,来对这些组变量的联系进行某种描述,进而获得某种解释。 当然,人们十分清楚,如果这些数据都是精确无误的,那么经过这些点的插值函数就能较好地解决问题。但是现在,这些采集得到的数据可能是有误差的,或者是biased的,于是插值函数的准确性就反而要被质疑了。于是人们就想找一条不经过任何点,但是却能描述这些数据的基本规律的曲线。这就是拟合。拟合最初是由勒让德和高斯两位数学家在1804年和1809年提出的,那个时候,概率和统计和现在相比,简直还处于原始阶段

机器学习中用来防止过拟合的方法有哪些?

房东的猫 提交于 2019-12-02 12:27:14
是什么 过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。 具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。 为什么 为什么要解决过拟合现象?这是因为我们拟合的模型一般是用来预测未知的结果(不在训练集内),过拟合虽然在训练集上效果好,但是在实际使用时(测试集)效果差。同时,在很多问题上,我们无法穷尽所有状态,不可能将所有情况都包含在训练集上。所以,必须要解决过拟合问题。 为什么在机器学习中比较常见?这是因为机器学习算法为了满足尽可能复杂的任务,其模型的拟合能力一般远远高于问题复杂度,也就是说,机器学习算法有「拟合出正确规则的前提下,进一步拟合噪声」的能力。 而传统的函数拟合问题(如机器人系统辨识),一般都是通过经验、物理、数学等推导出一个含参模型,模型复杂度确定了,只需要调整个别参数即可。模型「无多余能力」拟合噪声。 怎么样 既然过拟合这么讨厌,我们应该怎么防止过拟合呢?最近深度学习比较火,我就以神经网络为例吧: 获取更多数据 这是解决过拟合最有效的方法,只要给足够多的数据,让模型「看见」尽可能多的「例外情况」,它就会不断修正自己,从而得到更好的结果: 如何获取更多数据,可以有以下几个方法: 从数据源头获取更多数据:这个是容易想到的,例如物体分类

Python气象数据分析

拜拜、爱过 提交于 2019-11-30 18:26:21
记录《Python数据分析实战》一书中关于意大利北部沿海地区气象数据分析的练习。 此次分析的目的是验证靠海对气候的影响,因此,选取10个城市分析他们的天气数据,其中5个城市距离海100公里以内,另外5个城市距离海100~400公里距离。此外,为了避免山区气候对天气数据造成影响,选取的城市均来自平原地区。 1. 加载数据集 # 导入模块 import numpy as np import pandas as pd import datetime #导入数据可视化模块 %matplotlib inline import matplotlib.pyplot as plt import matplotlib.dates as mdates from dateutil import parser # 加载数据集 df_ferrara = pd.read_csv('WeatherData/ferrara_270615.csv') df_milano = pd.read_csv('WeatherData/milano_270615.csv') df_mantova = pd.read_csv('WeatherData/mantova_270615.csv') df_ravenna = pd.read_csv('WeatherData/ravenna_270615.csv') df_torino

机器学习笔记[保持更新]

两盒软妹~` 提交于 2019-11-30 06:36:13
机器学习笔记[入门版] 本文是吴恩达《机器学习》的笔记,由于课程内容较为基础,所以本文对于许多数学知识有些欠缺 多变量线性回归 非线性函数线性化 这种情况下,特征的缩放就变得很重要(因为在平方甚至立方的情况下,特征的值会放大很多) 也不一定只要平方,开方也可以: 正规方程 相比梯度下降法,可以更快地获得最优解。 正规方程法更适合于较小型的问题,而梯度下降法适用于更大的数据集 正规方程不需要缩放特征 每个特征列在开头补上一个1然后转置,计算的公式是: 如果X^tX不可逆怎么办? 整体来说,这种情况还是比较少的 pinv()指令能在矩阵不可逆的情况下也求解出正确答案 需要求解的特征量大于样本数时也会造成问题。 解决不可逆问题的办法: 删除线性相关的变量 当特征数量太多时,删除一些特征,或者使用正规化方法 向量化 多使用内置函数库(老师的意思是自己造轮子比不上人家的2333) 左图是自己写的循环,右图是调用向量相乘的方法。右图由于使用了内置的乘法,效率比自己写的要高 C++也有这种,线性运算的库 再复杂一点的情况也是,向量化之后慢慢处理 Logistic回归 依然是在机器学习中常用的一种算法 线性规划在分类问题中的表现一般不太好 线性规划设置阈值的方法在分类中不好使 Logistic回归是一种分类算法,和回归分析没关系,这个名字有点问题,是历史遗留问题 Sigmoid function

MATLAB09:统计与拟合

烈酒焚心 提交于 2019-11-30 04:40:14
MATLAB09:统计与拟合 统计 描述性统计(Descriptive Statistics) 中心趋势(Central Tendency) 变异(Variation) 离散程度 偏度(Skewness) 峰度(Kurtosis) 统计推断(Inferential Statistics) 拟合 多项式拟合 一元多项式拟合:`polyfit()` 多元线性拟合:`regress()` 非线性拟合 插值 一维插值 二维插值 统计 描述性统计(Descriptive Statistics) 描述性统计主要研究数据的 中心趋势 (Central Tendency)和 变异 (Variation). 中心趋势(Central Tendency) 函数 作用 mean() 计算平均值 median() 计算中位数 mode() 计算众数 prctile() 计算百分位数 max() 计算最大值 min() 计算最小值 X = [1 3 5 5 5 5 7 9 9 9 10 13 14]; mean(X); % 数据的平均值为 7.3077 median(X); % 数据的中位数为 7 mode(X); % 数据的众数为 5 prctile(X, 0); % 数据的0%分位数为 0 prctile(X, 50); % 数据的50%分位数为 7 prctile(X, 100); % 数据的100

test

℡╲_俬逩灬. 提交于 2019-11-29 21:56:52
PATTERN RCOGNITION AND MACHINE LEARNING(PRML) Introduction 引言: ​ 从一堆数据中挖掘一些可用的数据规则是由古至今科学家一直研究的问题,它有着悠久而成功的历史。 例如,16世纪对天文的广泛观测,使约翰内斯·开普勒发现了行星运动的三大定律,从而对古典力学的发展有了一定的促进作用。同样,在20世纪,原子光谱规律的发现,对早期量子物理学的发展发挥了关键作用。在计算机中, 模式识别领域是通过计算机算法自动发现数据中的规律,并利用这些规律采取行动,如将数据分类到不同的类别. ​ 例如识别手写数字的例子,如图1.1所示。 每个数字对应一个28×28像素的图像,因此可以用包含784个实数的向量x表示。 我们的目标是建立一个机器算法,它将以这样一个向量x作为输入,并将产生数字0到 9作为输出。 这是一个非常重要的问题,因为笔迹的多样性很大。 我们可以根据手工的方式或者启发式的方案,根据笔画的形状来区分数字 ,但在实践中,这种方法会导致规则和规则例外的激增,导致结果总是不好. ​ 采用机器学习的方法可以得到更好的结果,其中一个大的集合{x1,…, xN}称为训练集,用于调整自适应模型的参数。 训练集中数字的类别是预先知道的,通常通过逐个检查并手工标记它们。 我们可以用目标向量t表示一个数字的类别,它表示对应数字的特定输出。

zz神经网络模型量化方法简介

我的未来我决定 提交于 2019-11-29 03:39:46
神经网络模型量化方法简介 https://chenrudan.github.io/blog/2018/10/02/networkquantization.html 2018-10-02 本文主要梳理了模型量化算法的一些文章,阐述了每篇文章主要的内核思想和量化过程,整理了一些对这些文章的分析和看法。 【转载请注明出处】 chenrudan.github.io 随着神经网络算法的发展,网络性能虽然越来越强大,但是也耗费了太多的计算资源和内存,为了得到更有效率的网络以及能部署在移动端,近几年神经网络的压缩算法成了一个研究热点,主要的网络压缩途径有五种,量化、剪枝、低秩分解、教师-学生网络、轻量化网络设计,量化就是将以往用32bit或者64bit表达的浮点数用1bit、2bit占用较少内存空间的形式进行存储。剪枝的目的是为了去掉一些不重要的神经元、连接、通道等,低秩分解主要是通过各种分解方法用精简的张量来表达复杂张量,教师-学生网络间接通过提升小网络性能来压缩学生网络的规模,一般可以与其他压缩方法同时使用,轻量化网络设计主要是类似MobileNet这种设计的非常精简但性能又好的网络。几种方法都各有特点,都是值得研究和讨论的,本文主要针对量化算法近几年的发展做一个梳理和归纳,我觉得量化算法有几个特点, 理论简单,公式少,性能稳定且trick多。 下图1

机器学习排序算法:RankNet to LambdaRank to LambdaMART

守給你的承諾、 提交于 2019-11-28 23:51:31
使用机器学习排序算法LambdaMART有一段时间了,但一直没有真正弄清楚算法中的所有细节。 学习过程中细读了两篇不错的博文,推荐给大家: 梯度提升树(GBDT)原理小结 徐博From RankNet to LambdaRank to LambdaMART: An Overview 但经过一番搜寻之后发现,目前网上并没有一篇透彻讲解该算法的文章,所以希望这篇文章能够达到此目的。 本文主要参考微软研究院2010年发表的文章 From RankNet to LambdaRank to LambdaMART: An Overview 1 1,并结合自己的理解,试图将RankNet、LambdaRank和LambdaMART这三种算法的所有算法细节讲解透彻。 1. 概述 RankNet、LambdaRank和LambdaMART是三个关系非常紧密的机器学习排序算法。简而言之,RankNet是最基础,基于神经网络的排序算法;而LambdaRank在RankNet的基础上修改了梯度的计算方式,也即加入了lambda梯度;LambdaMART结合了lambda梯度和MART(另称为GBDT,梯度提升树)。这三种算法在工业界中应用广泛,在BAT等国内大厂和微软谷歌等世界互联网巨头内部都有大量应用,还曾经赢得“Yahoo!Learning To Rank Challenge(Track 1)"的冠军

机器学习笔试知识点

痴心易碎 提交于 2019-11-28 15:14:56
Q1. 在回归模型中,下列哪一项在权衡欠拟合(under-fitting)和过拟合(over-fitting)中影响最大? ¶ A. 多项式阶数 B. 更新权重 w 时,使用的是矩阵求逆还是梯度下降 C. 使用常数项 答案:A 解析:选择合适的多项式阶数非常重要。如果阶数过大,模型就会更加复杂,容易发生过拟合;如果阶数较小,模型就会过于简单,容易发生欠拟合。如果有对过拟合和欠拟合概念不清楚的,见下图所示: Q2. 假设你有以下数据:输入和输出都只有一个变量。使用线性回归模型(y=wx+b)来拟合数据。那么使用留一法(Leave-One Out)交叉验证得到的均方误差是多少? A. 10/27 B. 39/27 C. 49/27 D. 55/27 答案:C 解析:留一法,简单来说就是假设有 N 个样本,将每一个样本作为测试样本,其它 N-1 个样本作为训练样本。这样得到 N 个分类器,N 个测试结果。用这 N个结果的平均值来衡量模型的性能。 对于该题,我们先画出 3 个样本点的坐标: 使用两个点进行线性拟合,分成三种情况,如下图所示: 第一种情况下,回归模型是 y = 2,误差 E1 = 1。 第二种情况下,回归模型是 y = -x + 4,误差 E2 = 2。 第三种情况下,回归模型是 y = -1/3x + 2,误差 E3 = 2/3。 则总的均方误差为: M S E = 1 3

热门数据挖掘模型应用入门(一): LASSO回归

喜夏-厌秋 提交于 2019-11-28 11:46:52
热门数据挖掘模型应用入门(一): LASSO回归 2016-10-10 20:46 作者简介: 侯澄钧,毕业于俄亥俄州立大学运筹学博士项目, 目前在美国从事个人保险产品(Personal Line)相关的数据分析,统计建模,产品算法优化方面的工作。 目录: 模型简介 线性回归 Logistic回归 Elstic Net模型家族简介 学习资料 1.模型简介 Kaggle网站 (https://www.kaggle.com/ )成立于2010年,是当下最流行的进行数据发掘和预测模型竞赛的在线平台。 与Kaggle合作的公司可以在网站上提出一个问题或者目标,同时提供相关数据,来自世界各地的计算机科学家、统计学家和建模爱好者,将受领任务,通过比较模型的某些性能参数,角逐出优胜者。 通过大量的比赛,一系列优秀的数据挖掘模型脱颖而出,受到广大建模者的认同,被普遍应用在各个领域。 在保险行业中用于拟合广义线性模型的LASSO回归就是其中之一。 LASSO回归的特点是在拟合广义线性模型的同时进行变量筛选(Variable Selection)和复杂度调整(Regularization)。 因此,不论目标因变量(dependent/response varaible)是连续的(continuous),还是二元或者多元离散的(discrete), 都可以用LASSO回归建模然后预测。