线性回归模型

MATLAB 多元线性回归(regress)

岁酱吖の 提交于 2020-02-16 22:50:01
MATLAB 多元线性回归(regress) 语法 b = regress(y,X) [b,bint] = regress(y,X) [b,bint,r] = regress(y,X) [b,bint,r,rint] = regress(y,X) [b,bint,r,rint,stats] = regress(y,X) [___] = regress(y,X,alpha) 说明 b = regress(y,X) returns a vector b of coefficient estimates for a multiple linear regression of the responses in vector y on the predictors in matrix X. To compute coefficient estimates for a model with a constant term (intercept), include a column of ones in the matrix X. b=回归(y,X)返回一个系数估计向量b,用于矩阵X中预测器上向量y中的响应的多元线性回归。若要计算具有常数项(截距)的模型的系数估计,请在矩阵X中包含一列。 [b,bint] = regress(y,X) also returns a matrix bint of

线性回归模型 Linear regression

跟風遠走 提交于 2020-02-16 00:04:58
import torch import time # init variable a, b as 1000 dimension vector n = 1000 a = torch . ones ( n ) b = torch . ones ( n ) # define a timer class to record time class Timer ( object ) : """Record multiple running times.""" def __init__ ( self ) : self . times = [ ] self . start ( ) def start ( self ) : # start the timer self . start_time = time . time ( ) def stop ( self ) : # stop the timer and record time into a list self . times . append ( time . time ( ) - self . start_time ) return self . times [ - 1 ] def avg ( self ) : # calculate the average and return return sum ( self . times ) /

传统机器学习-线性回归

匆匆过客 提交于 2020-02-15 06:07:01
目录 模型的定义 损失函数 梯度法 正规方程解 模型的定义 将m个样本,n个特征的训练集表示为: 对于线性回归,我们假设(为了方便起见,我们令 ) 其中 是待学习的参数, 即是我们取的n个特征,其中第一项 ,即是 表示截距。 损失函数 其中 , , 梯度法 , 用矩阵形式表示为 其中,括号中的三项均为标量,求 的导数,按 的形状来求解比较容易。 梯度 正规方程解 令 即是 不可逆,可能的原因: 1.列向量线性相关,即训练集中存在冗余特征,此时应该剔除掉多余特征; 2.特征过多,此时应该去掉影响较小的特征,或使用“正则化”。 当样本总数 m 小于等于特征数 n 时, 则一定不可逆。 来源: CSDN 作者: 一杯敬朝阳一杯敬月光 链接: https://blog.csdn.net/qq_xuanshuang/article/details/104309226

机器学习入门(一)——线性回归

╄→尐↘猪︶ㄣ 提交于 2020-02-15 01:00:31
机器学习入门(一)——线性回归 基本要素: 1、模型:例如针对房价建立简单模型,只考虑价格与时间的关系: price = w(area)area+w(age)age+b 2、数据集:找到一组真实数据并称之为训练集,我们希望通过训练集找到与真实情况最接近的上诉模型的未知参数。一条数据称之为样本,其价格为一个标签。被预测参数称为特征。 3、损失函数: 损失函数是用来计算模型与真实情况之间误差的度量函数。数值越小误差越小。 4、优化函数 当问题比较简单的时候,损失函数可能可以求出解析解,但很多情况的问题非常的复杂,模型也非常复杂,所以可能不存在解析解。 只有通过优化算法的,在有限次的迭代中,不断的减小损失函数的值。 优化函数的方法有很多如:梯度下降法、牛顿法、拟牛顿法等。其中梯度下降法是最简单的最常用的优化方法。 来源: CSDN 作者: weixin_38800710 链接: https://blog.csdn.net/weixin_38800710/article/details/104320127

线性回归

一世执手 提交于 2020-02-10 10:57:09
美国房价问题 Alex经过一年的努力,终于拿到了美国波士顿麻省理工学院的研究生录取通知书,在远离家乡的地方上学,Alex想在波士顿买一套房子,他手头有一些积蓄,在网上找了几套自己满意的房子,但是又不敢相信网上的价格,人生地不熟的,Alex怕被宰,就从自己做数据分析的朋友Bachelor手里要到了过去几年一些有关波士顿房价的资料。 import numpy as np import pandas as pd import seaborn as sns import matplotlib . pyplot as plt house_prices = pd . read_csv ( "train.csv" ) Bachelor给的数据非常非常多,包含各个方面。 为了方便分析呢,先提取其中三个特征作为分析素材,分别是LotArea表示房屋面积,TotalBsmtSF表示地下室的总面积,SalePrice表示的就是房价了。 house_prices [ [ 'LotArea' , 'TotalBsmtSF' , 'SalePrice' ] ] 理工科出生的Alex想起了曾经学过的知识,想计算一下自己喜欢的那几套房子的大概房价是多少,到买房的时候心里好有点数。 于是他把数据重新处理了一下。 sample_test_data = house_prices [ [ 'LotArea' ,

线性回归实战

白昼怎懂夜的黑 提交于 2020-02-09 23:07:26
import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.metrics import mean_squared_error,r2_score data = pd.read_csv('./Desktop/汽车销售数据.csv') data.head() #查看数据是否有空值 data.isnull().any() out: 券代码 False 日期 False 传统汽车销量 False 国内生产总值当季值(亿元)x1 False 汽油价格(元/吨)x2 False 人民币贷款基准利率%x3 False 汽车总产量(万辆)x4 False 公路里程数 False 汽车整车股票指数 False 消费者信心指数 False #去除空值 data = data.dropna() #划分训练集与测试集 X = data.iloc[:,3:] Y = data.iloc[:,2] x_train,x_test,y_train,y_test = train_test_split(X,Y

线性模型、最优化方法(二)

戏子无情 提交于 2020-01-27 07:33:44
一、线性回归 一般的,线性回归模型表示为 \[ h_{\theta}(x)=\theta_0+\theta_1x_1+...+\theta_nx_n=\sum_{i=0}^{n}\theta_ix_i=\theta^Tx \] 上式中令 \(x_0=1\) ,这样 \(x\) 实际上是 \(n+1\) 维, \(x=[1,x_1,x_2,…,x_n]^T\) .当我们知道训练数据集后怎样得到参数 \(\theta\) 的值呢?一个比较合理的想法是尽可能的让 \(h_{\theta}(x)\) 接近真实值 \(y\) ,下面我们来定义一个函数来度量 \(h_{\theta}\) 与 \(y\) 的距离: \[ J(\theta)=\frac{1}{2}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2 \] 其中 \(m\) 表示训练集中样本个数, \(x^{(i)}\) 和 \(y^{(i)}\) 分别表示第 \(i\) 个样例的特征值和真实结果。我们希望找到一个 \(\theta\) 使的 \(J(\theta)\) 最小。下面分别采用梯度下降算法和最小二乘法来求解 \(\theta\) 。 二、梯度下降算法 我们希望能找到 \(\theta\) 使得 \(J(\theta)\) 达到最小,于是我们可以使一个搜素算法,初始化 \(\theta\

机器学习之线性回归

纵饮孤独 提交于 2020-01-26 17:23:44
背景 本文是我在学习 Andrew Ng 的机器学习课程的总结 简介 作为本系列的第一讲,线性模型形式简单,易于建模,但是蕴含着机器学习中一些重要的基本思想。许多功能更为强大的非线性模型可在线性模型的基础上引入层级结构或高维映射而得。此外,线性模型也有比较好的可解释性 例子 让我们从一个经典的例子开始。这个例子是预测住房价格的,我们要使用一个包含俄勒冈州波特兰市的住房价格数据集。我们根据不同房屋尺寸所售出的价格,画出数据集 横坐标表示房屋尺寸size( \(feet^2\) ), 纵轴表示实际价格Prices 从图中可以看出如果房屋尺寸为1250平方尺,最终能够以220000美元卖掉 我们如何表达我们的例子呢,我们定义一个函数 h: \[h(x) = \theta_0x_0 + \theta_1x_1\] 我们设 \(x_0 = 1\) , 那么 \(\theta_0\) 表示截距, \(\theta_1\) 表示房屋尺寸, \(h(x)\) 表示 实际售价 名词解释 我们使用 \(x^{(i)}\) 来表示输入变量,也叫做特征,在当前的例子里面是房屋尺寸。 \(y^{(i)}\) 表示输出变量,也叫做目标变量,在当前的例子中是房屋的实际出售价格,一对 \((x^{(i)}, y^{(i)})\) 被称作 一个训练样本,一堆的训练样本称为训练集(training set).

线性模型正则化

寵の児 提交于 2020-01-25 19:56:07
一、正则线性模型 减少过度拟合的一个好办法就是对模型 正则化 (即约束它):它拥有的自由度越低,就越不容易过度拟合数据。比如,将多项式模型正则化的简单方法就是降低多项式的阶数。 对线性模型来说,正则化通常通过约束模型的权重来实现。常见的对权重进行约束的方法有:岭回归(Ridge Regression)、套索回归(lasso Regression)及弹性网络(Elastic Regression)。 二、岭回归 岭回归 (也叫作吉洪诺夫正则化)是线性回归的正则化版:在成本函数中添加一个等于 α ∑ i = 1 n θ i 2 \alpha\sum_{i=1}^n\theta_i^2 α ∑ i = 1 n ​ θ i 2 ​ 的正则项。这使得学习中的算法不仅需要拟合数据,同时还要让模型权重保持最小。 正则项只能在训练的时候添加到成本函数中,一旦训练完成,我们需要使用未经正则化的性能指标来评估模型性能。 超参数 α \alpha α 控制的是对模型进行正则化的程度。如果 α = 0 \alpha=0 α = 0 ,则岭回归就是线性模型。如果 α \alpha α 非常大,那么所有的权重都将非常接近于零,结果是一条穿过数据平均值的水平线。 岭回归的成本函数: J ( θ ) = M S E ( θ ) + α 1 2 ∑ i = 1 n θ i 2 J(\theta)=MSE(

多元线性回归模型

痴心易碎 提交于 2020-01-24 18:44:06
所谓的多元,通俗一点讲就是一个数据集中含有多个特征,一元的话就含有一个特征,因此公式变为 假设 \(h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\cdots+\theta_{n} x_{n}\) 参数:未知 \(\theta_{0}, \theta_{1}, \ldots, \theta_{n}\) 损失函数 \(J\left(\theta_{0}, \theta_{1}, \ldots, \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}\) 梯度下降算法 Gradient descent: Repeat { \(\rightarrow \theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \ldots, \theta_{n}\right)\) (simultaneously update for every \(j=0, \ldots, n\) ) 一般来讲梯度下降算法是适用于大样本的,大样本多大呢?10000+吧