线性回归

11. 线性回归

安稳与你 提交于 2019-11-29 11:53:21
文章目录 线性回归 sklearn中的线性回归 房屋价格预测 线性回归 线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。 sklearn中的线性回归 sklearn.linear_model.LinearRegression() 参数 说明 fit_intercept 布尔型参数,表示是否计算该模型截距。可选参数。 normalize 布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。 copy_X 布尔型参数,若为True,则X将被复制,否则将被覆盖。可选参数,默认值为True。 n_jobs 整型参数,表示用于计算的作业数量;若为-1,则用所有的CPU。可选参数。默认值为1。 linear.fit(X,y, sample_weight=None) 参数 说明 X 训练向量 y 相对于X的目标向量 sample_weight 分配给各个样本的权重数组,一般不需要使用,可省略。 房屋价格预测 import numpy as np import

算法推导、面试、调用——LogisticRegression(LR)

本秂侑毒 提交于 2019-11-29 08:27:46
/*--> */ /*--> */ # 算法解析 > LogisticRegression是线性回归的一个变形,对于线性回归请参阅[线性回归](www)一节 LR模型是线性模型处理分类任务的一种,是联系函数$g(\cdot)=sigmoid(\cdot)$时的广义线性模型。二分类任务的预测值$y\in\{0, 1\}$,而线性回归模型的预测值是一个实数,因此必须用一个映射函数将线性回归模型的预测值映射到$\{0, 1\}$。最理想的映射函数为单位阶跃函数$y=\begin{} \end{}$,但是单位阶跃函数并不连续可导,这将对后续求解模型参数带来困难,因此我们通常采取对数几率函数$y=sigmoid(x)=\frac{1}{1+e^{(-x)}}$作为映射函数。**sigmoid(x)函数能将输入值$x$映射到$(0,1)$之间的一个值**,这个值可以作为二分类问题预测值为1、0的概率。 ![sigmoid函数图像](_v_images/20190908170933507_1988946760.jpg =400x) LogisticRegression模型: $$f(x_i)=\frac{1}{1+e^{-(w^Tx_i+b)}} $$ 令$\beta=(w^Tx_i;b), \hat{x}=(x;1)$,损失函数为: $$L(\beta)=\sum_{i=1}^{N}(-y_i

菜鸟的数学建模之路(二):线性与非线性回归

寵の児 提交于 2019-11-29 08:18:52
回归分析 根据回归方法中因变量的个数和回归函数的类型(线性或非线性),可将回归方法分为一元线性回归、一元非线性回归和多元回归。 简单粗暴理解:可以理解为找到一个从特征空间X到输出空间Y的最优的线性映射函数的过程。 (关于定义个人认为没必要去纠结,只要知道这个东西和会用就可以了) 重点说明:关于线性与非线性回归,很多知识点我总结在了代码里面,每段代码开头会有很多说明,参数说明和知识点,建议看的时候多看看代码开头的说明 一元线性回归 对一元线性线性回归,简单粗暴理解就是给出一堆点,(x1,y1),(x2,y2),…(xn,yn),然后根据一元线性回归方程(固定的)求解β0,β1的过程,一元线性回归方程跟高中学的基本一样,只不过之前要人算,现在可以用matlab算。 还不懂的看案例(MATLAB数学建模方法与实践(第3版)第48页): 这是一个经典的一元回归问题,根据所给定的点,求解出回归系数的过程,下面给代码, 重点看代码里面的知识点和参数说明,在每一段正式代码开头。 % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 回归分析就是处理变量之间的相关关系的一种数学方法

线性回归、损失函数和梯度

风格不统一 提交于 2019-11-29 04:52:16
实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积、卧室数量和房屋的交易价格,如下表: 假如有一个房子要卖,我们希望通过上表中的数据估算这个房子的价格。这个问题就是典型的回归问题,这边文章主要讲回归中的线性回归问题。 线性回归(Linear Regression) 首先要明白什么是回归。回归的目的是通过几个已知数据来预测另一个数值型数据的目标值。假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就是要预测的目标值。这一计算公式称为回归方程,得到这个方程的过程就称为回归。 线性回归就是假设这个方式是一个线性方程,即假设这个方程是一个多元一次方程。以咱们上面提到的例子为例:假设房子的房屋面积和卧室数量为自变量x,用x1表示房屋面积,x2表示卧室数量;房屋的交易价格为因变量y,我们用h(x)来表示y。假设房屋面积、卧室数量与房屋的交易价格是线性关系。他们满足公式 上述公式中的θ为参数,也称为权重,可以理解为x1和x2对h(x)的影响度。对这个公式稍作变化就是 公式中θ和x是向量,n是样本数。 假如我们依据这个公式来预测h(x),公式中的x是我们已知的,然而θ的取值却不知道,只要我们把θ的取值求解出来,我们就可以依据这个公式来做预测了。 那么如何依据训练数据求解θ的最优取值呢?这就牵扯到另外一个概念: 损失函数

机器学习整理

╄→尐↘猪︶ㄣ 提交于 2019-11-29 00:01:21
1 概述交叉验证的使用:模型评价、超参数(阈值)优选,保证数据集同分布留一法交叉验证——MAE平均绝对误差 评价MAE(2 P68)实值函数回归 2 KNN模型 KNN Step1 预处理 x估计=x-μ/σ 并且记录{μ(k),σ(k),k=1,2,3,4} 平均错误率、标准差 Step2 选K值 KNN中的K m-fold(v) 2 p21 错误率最小的,作为最终的K,对样本集进行预测,K不能为偶数 m次,取n-1份作为训练集,1作为验证集合,得到(Acc(k),K)Step3 决策 K近邻回归,2类别分类K为奇数,防止相等无法判断 p44 混淆矩阵 自然状态*预测输出(TP、FN、FP、TN) p46 评价指标要记总体正确率、总体错误率、查准率Precision、查全率Recall/灵敏度Sensiticity、特异度(真阴性率)、漏报率(假阴性率)、虚警率(假阳性率)、Fβ-Score(查准率和查全率的调和平均)F=2Precision·Recal /(Precision+Recall)马修相关系数、Kappa系数西瓜书p32 宏平均、微平均宏平均:先带入xx率公式计算,再求平均值微平均:先求平均值,再带入xx率公式计算3 基于树的模型决策树主要是cartcart tree 不纯性度量: -分类目标:Gini指标 -连续目标:最小平方残差、最小绝对残差分类

机器学习——简单线性回归(原理推导+算法描述+代码实现)

喜欢而已 提交于 2019-11-28 18:58:46
实验环境:Python 3.6 编辑器:Jupyter Notebook 6.0.1 实验要求:可以调用numpy、pandas基础拓展程序包,不可以调用sklearn机器学 ——————————————————我是分割线喵———————————————————— ————————————(如果想要代码可以直接下拉到最后)———————————— 线性模型的一般形式:    向量形式:    线性模型的优点:   1、形式简单、易于建模   2、可解释性   3、是非线性模型的基础,可以在线性模型的基础上引入层级结构或高维映射 举个西瓜书里的例子:   系数可以反应该属性对该瓜是否是好瓜的影响因素大小    单一属性的线性回归目标:    参数/模型估计:最小二乘法    最小化均方误差: 分别对ω和b求导,得: 得到闭式解: ——————————————————我是分割线喵———————————————————— 在jupyter notebook中的代码实现:      1、先用一个例子,模拟出点:              2、通过最小二乘法得到线性回归,红色标出: ——————————————————代码——————————————————— 二元的简单线性回归算法代码 ,可以作为自定义包留着以后用,我在sublime里面写的。   (如何在jupyter中导入自定义包?)

数据分析 - 线性回归数学公式讲解

安稳与你 提交于 2019-11-28 15:44:50
线性回归算法 数学概念 ▒ 回归 - 回归会得到最终的计算结果, 是一个确定性的结果 ▒ 分类 - 分类会进行分析给于一个结果的判断类别, 也是一个确定的结果 简单实例 - 银行贷款 实例分析 ▒ 数据 - 工资和年龄 ( 2个特征 ) ▒ 目标 - 预测银行会给我贷款多少钱 ( 标签 ) ▒ 考虑 - 工资和年龄会如何影响到银行贷款的结果? 多大的影响? ( 参数 ) 数据拟合 X1, X2 表示特征 ( 年龄, 工资 ), Y表示输出结果 ( 钱 ) 我们需要对数据进行拟合 假设 θ1 是年龄的参数, θ2 是工资的参数 ( 参数表示特征对结果的影响程度 ) 拟合的平面的公式表达则为 整合后为 整合详解 整合前 : 转化后结果 公式中的 θ0 表示偏置项, 给与一定程度的上下浮动, 偏置项此处可有理解为一个定值的偏置参数, 对结果不会产生较大的影响 而 θ1 和 θ2 则为权重参数, 需要组合特征数据项进行计算对结果会有较大影响 以上的式子较为长, 能简化那就简化 的内部运算原理为 问题来了, 这里的 从何而来? 因此为了能够达到这个简洁的公式, 需要填充进来一个 因此在不改变原值的情况下这个 , 设定为 1 则可以保证不会有数值上的影响 这样也需要我们的数据配合, 新添加一列 全 1 的数据, 这样完成公式的转换和数据填充 最终的结果这样更方便矩阵计算 ( 直接行 x

机器学习笔试知识点

痴心易碎 提交于 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

TensorFlow非线性回归--基于神经网络算法

北战南征 提交于 2019-11-28 12:15:59
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt """ 1. shape: 矩阵维度 3*2 =================== 2. [None,1]: N行 1列 =================== 3. numpy.random.normal(loc=0.0, scale=1.0, size=None) 正态分布 loc:float 此概率分布的均值(对应着整个分布的中心centre) scale:float 此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高) size:int or tuple of ints 输出的shape,默认为None,只输出一个值 """ xdata = np.linspace(-0.5, 0.5, 200)[:,np.newaxis] # 后面增加维度 noise = np.random.normal(0, 0.02, xdata.shape) # 加噪音,但要 保证和xdata的维度一致 ydata = np.square(xdata) + noise # y=x^2+noise # ydata=np.exp(xdata)+noise # 定义两个placeholder x = tf

线性回归小结

女生的网名这么多〃 提交于 2019-11-28 08:53:33
根据输入输出变量的不同类型,对预测任务给予不同的名称:输入变量与输出变量均为连续变量的预测问题称为回归问题,输出变量为有限个离散变量的预测问题称为分类问题,输入变量与输出变量均为变量序列的预测问题称为标注问题。这里对线性回归的原理 算法和代码实现做一个小结。 1 线性回归的原理 2 线性回归算法 3 线性回归的代码实现 4 线性回归的示例 5 线性回归总结 来源: https://www.cnblogs.com/eugene0/p/11403246.html