线性回归模型

线性回归(七)—— 弹性网

若如初见. 提交于 2020-01-19 21:51:04
弹性网(elastic net) 介绍 前面介绍了两种正则化方法来解决过拟合问题,分别是LASSO的L1正则化和Ridge的L2正则化。 其实惩罚函数有无数多个 λ ∑ i = 1 m ∣ θ i ∣ q \lambda\sum_{i=1}^m|\theta_i|^q λ i = 1 ∑ m ​ ∣ θ i ​ ∣ q 这里q取1就变成了LASSO,q取2就变成了Ridge。 当然q也可以取其他的值 后来有人把LASSO和Ridge结合了起来,把代价函数中的惩罚函数变成了这样 λ ∑ i = 1 n ( α θ i 2 + ( 1 − α ) ∣ θ i ∣ ) \lambda\sum_{i=1}^n(\alpha\theta_i^2+(1-\alpha)|\theta_i|) λ i = 1 ∑ n ​ ( α θ i 2 ​ + ( 1 − α ) ∣ θ i ​ ∣ ) 这就是弹性网。 elastic net 的python代码 # encoding:utf-8 import numpy as np from sklearn import linear_model # 读入数据 data = np . genfromtxt ( "../data/longley.csv" , delimiter = ',' ) x_data = data [ 1 : , 2 : , ] y

UA MATH571A 多元线性回归IV 广义线性模型

妖精的绣舞 提交于 2020-01-19 16:36:43
UA MATH571A 多元线性回归IV 广义线性模型 广义线性模型 二值被解释变量 Probit模型 Logit模型 系数的最大似然估计 系数的推断 Wald检验 似然比检验 二项回归 拟合优度检验 Pearson卡方拟合优度检验 Deviance拟合优度检验 Hosmer-Lemeshow拟合优度检验 多值被解释变量 广义线性模型 Y 1 , Y 2 , . . . , Y N Y_1,Y_2,...,Y_N Y 1 ​ , Y 2 ​ , . . . , Y N ​ 是服从指数分布族某一分布的被解释变量,并且 E Y i = μ i EY_i=\mu_i E Y i ​ = μ i ​ ,存在某个函数 g g g 使得解释变量与 g ( μ i ) g(\mu_i) g ( μ i ​ ) 之间具有线性关系 g ( μ i ) = X i β g(\mu_i) = X_i \beta g ( μ i ​ ) = X i ​ β 这样的回归模型叫广义线性回归模型。显然当 g ( μ i ) = μ i g(\mu_i)=\mu_i g ( μ i ​ ) = μ i ​ 时,回归模型是多元线性回归,当 g g g 是Logistics函数的反函数时,是Logistics回归。 二值被解释变量 回归模型 Y i = X i β + ϵ i Y_i = X_i \beta +

使用 TensorFlow2.0 实现线性回归

守給你的承諾、 提交于 2020-01-16 10:59:31
本文是笔者学习 TensorFlow2.0(下文都写作 TF2.0) 的一篇笔记,使用的教材是《动手深度学习》(TF2.0版)。 之所以可以使用 TensorFlow 来实现线性回归,是因为我们可以把线性回归看成是只有一层、一个神经元的全连接网络: 上面这个图就是线性回归 y = w 1 x 1 + w 2 x 2 + b y = w_1x_1 + w_2x_2 + b y = w 1 ​ x 1 ​ + w 2 ​ x 2 ​ + b 的神经网络的表示。 实现线性回归 要实现线性回归,我们需要 定义线性回归模型 定义 Loss 函数 定义迭代优化算法 这些也是机器学习理论中的要点,我们可以借本文来回顾一下。 定义线性回归模型 要实现一个算法,我们首先需要用矢量表达式来表示它,即:使用向量、矩阵来描述一个模型。这样做的好处是:矢量批量计算要比循环一条条的计算每个样本来得快得多,线性回归的矢量表达式为: y ^ = X w + b \hat{y} = Xw + b y ^ ​ = X w + b 其中, X X X 是一个 n × d n\times d n × d 维的矩阵, n n n 表示 n 条样本, d d d 表示特征的维数; w w w 是模型的参数,它是一个 d × 1 d\times 1 d × 1 维的向量; b b b 是偏差值,它是一个标量; y ^ \hat

广义线性模型(Generalized Linear Models)

旧城冷巷雨未停 提交于 2020-01-15 05:47:23
前面的文章已经介绍了一个回归和一个分类的例子。在 逻辑回归 模型中我们假设: 在分类问题中我们假设: 他们都是广义线性模型中的一个例子,在理解广义线性模型之前需要先理解指数分布族。 指数分布族(The Exponential Family) 如果一个分布可以用如下公式表达,那么这个分布就属于指数分布族: 公式中y是随机变量;h(x)称为基础度量值(base measure); η称为分布的自然参数(natural parameter),也称为标准参数(canonical parameter); T(y)称为充分统计量,通常T(y)=y; a(η)称为对数分割函数(log partition function); 本质上是一个归一化常数,确保 概率和为1。 当T(y)被固定时,a(η)、b(y)就定义了一个以η为参数的一个指数分布。我们变化η就得到这个分布的不同分布。 伯努利分布属于指数分布族。伯努利分布均值为φ,写为Bernoulli(φ),是一个二值分布,y ∈ {0, 1}。所以p(y = 1; φ) = φ; p(y = 0; φ) = 1 − φ。当我们变化φ就得到了不同均值的伯努利分布。伯努利分布表达式转化为指数分布族表达式过程如下: 其中, 再举一个高斯分布的例子,高斯分布也属于指数分布族。由高斯分布可以推导出线性模型(推导过程将在EM算法中讲解)

一个简单线性回归网络在训练时误差越来越大

≯℡__Kan透↙ 提交于 2020-01-13 05:10:04
1 发现问题 PaddlePaddle官网上有 一个简单的线性回归模型 的例子,粘贴如下内容到新建的test.py中: #加载库 import paddle.fluid as fluid import numpy as np #生成数据 np.random.seed(0) outputs = np.random.randint(5, size=(10, 4)) res = [] for i in range(10): # 假设方程式为 y=4a+6b+7c+2d y = 4*outputs[i][0]+6*outputs[i][1]+7*outputs[i][2]+2*outputs[i][3] res.append([y]) # 定义数据 train_data=np.array(outputs).astype('float32') y_true = np.array(res).astype('float32') #定义网络 x = fluid.layers.data(name="x",shape=[4],dtype='float32') y = fluid.layers.data(name="y",shape=[1],dtype='float32') y_predict = fluid.layers.fc(input=x,size=1,act=None) #定义损失函数 cost

广义线性回归(多项式回归)——东北大学数据挖掘实训一(3)

安稳与你 提交于 2020-01-13 05:02:22
(4)再利用多项式回归对数据进行拟合,并进行预测;将观测值与拟合值,进行图形展示(同上)。 import pandas as pd from sklearn . model_selection import train_test_split from sklearn . preprocessing import PolynomialFeatures from sklearn . pipeline import make_pipeline import matplotlib . pyplot as plt from sklearn . linear_model import Ridge df = pd . read_csv ( "C:\\Users\\zzh\\Desktop\\dataMiningExperment\\第一次数据挖掘实训\\death rate.csv" ) df . head ( ) Year Age Female_Exp Male_Exp q_female q_male Female_death Male_death L_female_exp L_male_exp 0 1951 0.0 53684.67 57059.14 0.018497 0.024273 993.005341 1384.996505 10.890883 10.951844 1 1951 1.0

python_Lasso _线性模型_L1正则化

雨燕双飞 提交于 2020-01-03 05:09:04
python_Lasso _线性模型_L1 正则化 Lasso。与岭回归相同,使用 lasso 也是约束系 # 数使其接近于 0,但用到的方法不同,叫作 L1 正则化。 L1 正则化的结果是,使用 lasso 时 某些系数刚好为 0 这样模型更容易解释,也可以呈现模型最重要的特征 # 4. lasso # 除了 Ridge,还有一种正则化的线性回归是 Lasso。与岭回归相同,使用 lasso 也是约束系 # 数使其接近于 0,但用到的方法不同,叫作 L1 正则化。8 L1 正则化的结果是,使用 lasso 时 # 某些系数刚好为 0。这说明某些特征被模型完全忽略。这可以看作是一种自动化的特征选 # 择。某些系数刚好为 0,这样模型更容易解释,也可以呈现模型最重要的特征 ​ from sklearn . linear_model import Lasso ​ lasso = Lasso ( ) . fit ( X_train , y_train ) print ( "Training set score: {:.2f}" . format ( lasso . score ( X_train , y_train ) ) ) print ( "Test set score: {:.2f}" . format ( lasso . score ( X_test , y_test ) ) )

线性回归中的多项式拓展及pyhton实现

扶醉桌前 提交于 2019-12-25 07:32:38
在利用线性回归进行预测时,经常由于数据的线性关系不好,导致模型出现欠拟合,lr。score比较低,就是决定系数低,这时候我们可以用多项式拓展方式来改进、 多项式扩展,可以认为是对现有数据进行的一种转换,通过将数据映射到更高维度的空间中,该模型就可以拟合更广泛的数据。 需注意:多项式拟合的应用,仍然变为线性模型 下面是多项式拓展的实现 # 引入所需要的全部包 import sklearn from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler from sklearn.preprocessing import PolynomialFeatures from sklearn.pipeline import Pipeline import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import pandas as pd import time ## 创建一个时间字符串格式化字符串, def date_format(dt): import time t

从线性模型到广义线性模型(1)——模型假设篇

不羁岁月 提交于 2019-12-22 16:08:39
在统计学里,对特定变量之间的关系进行建模、分析最常用的手段之一就是回归分析。回归分析的输出变量通常记做 Y ,也称为因变量(dependent)、响应变量(response)、被解释变量(explained)、被预测变量(predicted)、从属变量(regressand);输入变量通常记做 x 1 ,…, x p ,也称为自变量(independent)、控制变量(control&controlled)、解释变量(explanatory)、预测变量(predictor)、回归量(regressor)。本文根据作者自己的一些学习心得和理解,简单且不严格地介绍在模型假设方面普通线性模型和广义线性模型的区别和联系/推广(generalization)。广义线性模型的拟合检验、推断、诊断等方面的方法和手段依赖于模型所采用的分布类型,难以一概而论,将在作者后续的学习心得文章里具体介绍。 1.普通线性模型的简单回顾 普通线性模型(ordinary linear model)可以用下式表示: Y = β 0 + β 1 x 1 + β 2 x 2 + … + β p − 1 x p − 1 + ϵ (1.1) 这里 β i , i = 1 ,…, p − 1 称为未知参数, β 0 称为截矩项。 普通线性模型的假设主要有以下几点: 1.响应变量 Y 和误差项 ϵ 正态性:响应变量 Y

大数据线性回归预测学生成绩

♀尐吖头ヾ 提交于 2019-12-22 04:34:20
通过训练集训练和测试集测试来生成多个线性模型,从而预测学生成绩,本文所有代码请点击 Github 1. 实验数据背景 1.1 数据来源 本项目的数据来源于kaggle.com,数据集的名称为Student Grade Prediction,Paulo Cortez,Minho大学,葡萄牙吉马良斯, http://www3.dsi.uminho.pt/pcortez 1.2 数据简介 该数据接近了两所葡萄牙学校的中学学生的学习成绩。数据属性包括学生成绩,人口统计学,社会和与学校相关的特征),并通过使用学校报告和调查表进行收集。提供了两个关于两个不同学科表现的数据集:数学(mat)和葡萄牙语(por) 该数据集共有396条,每列33个属性,属性简介如下: 1.学校-学生学校(二进制:“ GP”-加布里埃尔·佩雷拉(Gabriel Pereira)或“ MS”-Mousinho da Silveira) 2.性别-学生的性别(二进制:“ F”-女性或“ M”-男性) 3.年龄-学生的年龄(数字:15至22) 4.地址-学生的家庭住址类型(二进制:“ U”-城市或“ R”-农村) 5.famsize-家庭大小(二进制:“ LE3”-小于或等于3或“ GT3”-大于3) 6.Pstatus-父母的同居状态(二进制:“ T”-同居或“ A”-分开) 7.Medu-母亲的教育(数字:0-无,1