python 广义线性模型_scikit-learn 1.1 广义线性模型(Generalized Linear Models)
Time: 2017/02/25 19:25 at UTSZ
Environment: python2.7 pyCharm
首先这是一个回归问题,通过输入变量的线性组合得到目标函数和目标值。数学上表示为:
其中,向量 w=(w1, w2 ...wp) 表示系数(或者说是某个特征的权重),w0 表示线性函数的截距。
1.1.1 普通最小二乘法(ordinary Least Squares)
LinearRegression 通过调整系数 w=(w1, w2 ...wp) 来使得数据集训练后得到的预测值与实际值之间的误差最小化。数学公式如下:
我们也可以通过coef_这个成员变量查看训练后的模型的系数。
# !/usr/bin/env python2
# -*- coding:utf-8 -*-
from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
print reg.coef_
结果如下:
但是,普通最小二乘法的系数估计依赖于模型样例的独立性。当样例相关时,向量矩阵就变得接近于一个单数。结果,最小二乘法得到的估计变得高敏感性,会产生很大的方差。多重共线性的这种情况常出现在没有实验设计而收集到的数据中。
Linear Regression Example:
为了在而为图形中表示出这个线性回归,我们使用diabetes数据集中的第一个特征。如下图所示,线性回归尝试画出一条直线以使得在训练集中的平方差值最小。
# !/usr/bin/env python2
# -*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
# 加载数据集
diabetes = datasets.load_diabetes()
# 只是用一个特征
diabetes_X = diabetes.data[:, np.newaxis, 2]
# 切分训练集和测试集
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
# 切分训练集和测试集的目标值
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
# 确定线性回归算法
regr = linear_model.LinearRegression()
# 用训练集训练模型
regr.fit(diabetes_X_train, diabetes_y_train)
# 输出系数
print '系数:',regr.coef_
# 输出均方误差
print '均方误差:', np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2)
# 输出方差:1表示完美预测
print '方差:',regr.score(diabetes_X_test, diabetes_y_test)
# 输出图形
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
1.1.2 岭回归 (Ridge Regression)
岭回归在普通最小二乘法的基础上,加上了一个系数的惩罚项。同样,岭系数要使得下式的平方和最小。
其中,是控制步长的复杂度参数。
同其他线性模型相同,岭回归用 fit 训练,将系数保存在(coef_),截距保存在(intercept_)中。
# !/usr/bin/env python2
# -*- coding:utf-8 -*-
from sklearn import linear_model
reg = linear_model.Ridge(alpha=0.5)
reg.fit([[0, 0], [0, 0], [1, 1]], [0, 0.1, 1])
print '系数:', reg.coef_
print '截距:', reg.intercept_
结果:
1.1.2.1 岭回归的复杂度
和普通最小二乘法的复杂度相同。
1.1.2.2 正则化参数的设置:广义交叉验证 (Setting the regularization parameter: generalized Cross-Validation)
岭交叉验证 (RidgeCV) 应用岭回归中内建的alpha参数交叉验证实现。这个对象与GridSearchCV的工作方式相同,除了它默认为广义交叉验证——一种高效形式的留一交叉验证。
#!/usr/bin/env python2#-*- coding:utf-8 -*-
from sklearn importlinear_model
reg= linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])
reg.fit([[0, 0], [0, 0], [1, 1]], [0, 0.1, 1])print reg.alpha_
结果:
1.1.3 套索算法 (Lasso)
套索算法是一种估计稀疏系数的线性模型。
#TODO 略
1.1.4 多任务套索 (Multi-task Lasso)
#TODO 略
1.1.5 弹性网 (Elastic Net)
#TODO 略
1.1.6 多任务弹性网 (Multi-task Elastic Net)
#TODO 略
1.1.7 最小角度回归 (Least Angle Regression)
#TODO 略
1.1.8 LARS套索 (LARS Lasso)
#TODO 略
1.1.9 正交匹配追踪 (Orthogonal Matching Pursuit,OMP)
#TODO 略
1.1.10 贝叶斯回归 (Bayesian Regression)
贝叶斯线性回归的引入主要是在最大似然估计中很难决定模型的复杂程度,ridge回归加入的惩罚参数其实也是解决这个问题的,同时可以采用的方法还有对数据进行正规化处理,另一个可以解决此问题的方法就是采用贝叶斯方法。
为了获得完整的概率模型,假定输出 y 在 Xw 上服从正态分布(高斯分布):
其中 alpha 是一个随机变量,通过训练数据估计得到。
贝叶斯回归的优点:
It adapts to the data at hand.
It can be used to include regularization parameters in the estimation procedure.
缺点:
Inference of the model can be time consuming.
1.1.10.1 Bayesian Ridge Regression
#TODO 略
1.1.11 逻辑回归 (Logistic Regression)
#TODO 略
1.1.12 随机梯度下降 (Stochastic Gradient Descent,SGD)
#TODO 略
1.1.13 感知器 (Preceptron)
#TODO 略
1.1.14 被动攻击算法 (Passive Aggressive Algorithms)
#TODO 略
1.1.15 鲁棒性回归:离群点和模型误差 (Robustness Regression:outliers and modeling errors)
#TODO 略
1.1.16 多项式回归:基函数拓展线性模型 (Polynomial Regression:extending linear models with basis functions)
#TODO 略
python 广义线性模型_scikit-learn 1.1 广义线性模型(Generalized Linear Models)相关推荐
- scikit-learn学习笔记(三)Generalized Linear Models ( 广义线性模型 )
Generalized Linear Models ( 广义线性模型 ) 以下是一组用于回归的方法,其中目标值预期是输入变量的线性组合.在数学概念中,如果 是预测值. 在整个模块中,我们指定向量 ...
- R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析
R语言广义线性模型函数GLM.广义线性模型(Generalized linear models).GLM函数的语法形式.glm模型常用函数.常用连接函数.逻辑回归.泊松回归.系数解读.过散度分析 目录
- 指数分布族函数与广义线性模型(Generalized Linear Models,GLM)
目录 1 综述 2 指数分布族 3 广义线性模型 3.1 定义 3.2 为什么引入GLM 3.3 连接函数的获取 4 常见连接函数求解及对应回归 4.1 伯努利分布 > Logistics回归 ...
- 广义线性模型--Generalized Linear Models
监督学习问题: 1.线性回归模型: 适用于自变量X和因变量Y为线性关系 2.广义线性模型: 对于输入空间一个区域改变会影响所有其他区域的问题,解决为:把输入空间划分成若干个区域,然后对每个区域用不同的 ...
- 系统学习机器学习之线性判别式(三)--广义线性模型(Generalized Linear Models)
转自:https://www.cnblogs.com/czdbest/p/5769326.html 在线性回归问题中,我们假设,而在分类问题中,我们假设,它们都是广义线性模型的例子,而广义线性模型就是 ...
- 广义线性模型(Generalized Linear Models, GLM)与线性回归、逻辑回归的关系
线性回归和逻辑回归都是广义线性模型的特例. 1 指数分布族 如果一个分布可以用如下公式表达,那么这个分布就属于指数分布族. 这是<数理统计>课本中的相关定义,大多数利用的定义如下(y不是一 ...
- 广义估计方程估计方法_广义估计方程简介
广义估计方程估计方法 A key assumption underpinning generalized linear models (which linear regression is a typ ...
- UA STAT687 线性模型II 最小二乘理论3 广义最小二乘
UA STAT687 线性模型II 最小二乘理论3 广义最小二乘 GLS GLS的统计性质 GLS 这一讲我们放松对随机误差的方差形式的假设,考虑模型 y=Xβ+ϵ,Eϵ=0,Cov(ϵ)=σ2Σ&g ...
- 广义线性模型(Generalized Linear Model)之二:Logistic回归
广义线性模型(Generalized Linear Model)之二:Logistic回归 一.引入:多元线性回归模型 二.Logistic回归模型 三.非条件logistic回归模型 (一)介绍 ( ...
- 广义线性模型(Generalized Linear Model)
广义线性模型 1. 广义线性模型(Generalized Linear Model) 1.1 指数分布族 1.2 广义线性模型建模(三个假设) 2. 线性回归推导 2.1 Gaussian 分布的指数 ...
最新文章
- LR中的吞吐量与响应时间
- dedecms--数据库
- Android深度探索(卷1)HAL与驱动开发阅读心得4
- HTML5日期输入类型
- boost::gil::ColorBaseConcept用法的测试程序
- AdlinkMotionCardLibrary函数C++
- 安徽工业大学计算机考研历年分数线,安徽工业大学历年考研分数线汇总[2012-2021]...
- spl_autoload_register函数
- 【SAS NOTES】在一个data中生成多个数据集
- python简单爬虫代码-python简单爬虫(二)
- Thinkphp5命名规范
- [译] REST API 已死,GraphQL 长存
- 高等数学公式(latex)
- webstrom使用es6语法报错
- Windows下硬盘存储情况可视化工具--WinDirStat
- linux服务器如何查看cpu温度,在LINUX下面如何查看CPU的温度
- 算法岗面经总结(快看漫画)
- 交换机与路由器技术:VLAN Trunk、单臂路由和三层交换及配置
- 关于AndroBench在Android 10以后性能衰减的问题分析
- 海明码java编程,海明码校验程序设计
热门文章
- aspjpeg组件在2008R2下“ActiveX 部件不能创建对象”
- aspnetpager 详解
- cf黑机器多久解除_[CF]黑机器码过无限提示一分钟强制踢出游戏的方法
- [CTF]学习资源推荐
- linux访问mdio接口函数,Linux 下smi/mdio总线通信
- 完结!视频课程:CMOS模拟集成电路设计
- FPGA零基础学习:按键控制LED
- 计算机学报在线阅读,计算机学报CHIN
- 计算机软件 已录制 是指啥,录像软件是什么?怎么录制电脑屏幕视频?
- 个人简单版租房合同范本电子版Word模板免费下载样板