线性模型

机器学习学习记录【持续更新】——特征组合

自作多情 提交于 2020-02-14 17:42:24
特征组合 为什么要引入特征组合这个概念? 特征组合 为什么要引入特征组合这个概念? 在之前的机器学习过程中,基本上都是在研究一些线性模型,如下图,用一条直线将不同颜色的点分割开来 但是,当你遇到下面这样的图形,请问你还可以用一条直线将不同颜色的点分割开来吗? 显然是不行的!!!! 难道这说明我们之前费劲时间学习的线性模型其实没有什么广泛的用途吗?NO!!!!!线性模型是目前用的最多、计算速度最快的模型,很多非线性问题都是通过转换成线性问题来解决的,这就是为什么 特征组合 需要在此提出来! 特征组合 特征组合是指通过将两个或多个输入特征相乘来对特征空间中的非线性规律进行编码的合成特征。“cross”(组合)这一术语来自 cross product(向量积)。我们通过将x1与x2组合来创建一个名为 的特征组合:x3 我们像处理任何其他特征一样来处理这个新建的 特征组合。线性公式变为: 线性算法可以算出w3的权重,就像算出w1和w2的权重一样。换言之,虽然 表示非线性信息,但您不需要改变线性模型的训练方式来确定w3的值。 来源: CSDN 作者: 南孚先生 链接: https://blog.csdn.net/qq_43444767/article/details/104313441

机器学习小白学习笔记---day3---线性模型(岭回归、lasso、线性模型【svm、logistic回归】)

ⅰ亾dé卋堺 提交于 2020-02-05 23:49:22
机器学习小白学习笔记之scikit-learn 最近刚把西瓜书啃完,一大堆理论让脑子真的是一团浆糊,说实话看的基本只有一个概念哈哈哈,效果不高,但是让我对与机器学习真的是整体有了一个大的了解,但是并没能将每个课后作业都完成,甚至很多公式推导也没实现,太难了,让我着手于实践,古人云实践出真知,又拿起了另一本书《Introduce to Mashine Learning with python》 昨天上一节,学习完了knn分类回归,这一节继续往下学,自然而然地学到线性模型,线性模型在实际运用中还是相当广泛的。 用于回归的线性模型: 单一特征的预测结果是一条直线,双特征是一个平面,而高维度的则是一个超平面。 我们继续来看最常见的线性回归模型: 线性回归(普通最小二乘法) 线性回归寻找最佳的参数w(斜率、权重、系数),和b(截距),使得对训练集的预测值与真hide回归目标值y之间的均方误差最小。 在高位数据集中,线性模型将体现的更加强大,但同时会产生过拟合风险,根据书本,通过波士顿房价数据集进行预测。 我们会发现一个情况: 测试集的分数远远低于训练集的分数,显而易见就是产生了过拟合,所以我们应该找到一个可以控制复杂度的模型,标准线性回归最常用的替代方法之一就是 岭回归 。 岭回归 其实预测方法和最小二乘法相同,但是做了一下正则化(附带上拟合约束,希望系数尽可能小

【机器学习 线性模型】10分钟了解下6种常见的线性模型

拈花ヽ惹草 提交于 2020-02-05 06:39:10
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。 人工智能教程 在目前的机器学习领域中,最常见的三种任务就是:回归分析、分类分析、聚类分析。那么什么是回归呢?回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。回归分析在机器学习领域应用非常广泛,例如,商品的销量预测问题,交通流量预测问题。下面介绍几种常见的线性回归模型。 常用的线性回归算法 1、线性回归 线性回归拟合一个带系数的线性模型,以最小化数据中的观测值与线性预测值之间的残差平方和。 #加载线性模型算法库 from sklearn import linear_model # 创建线性回归模型的对象 regr = linear_model . LinearRegression ( ) # 利用训练集训练线性模型 regr . fit ( X_train , y_train ) # 使用测试集做预测 y_pred = regr . predict ( X_test ) 2、岭回归 上述的线性回归算法使用最小二乘法优化各个系数,对于岭回归来说,岭回归通过对系数进行惩罚(L2范式)来解决普通最小二乘法的一些问题,例如,当特征之间完全共线性(有解)或者说特征之间高度相关

线性模型L2正则化——岭回归

匆匆过客 提交于 2020-02-01 13:27:20
1 from sklearn.model_selection import train_test_split 2 from sklearn.linear_model import LinearRegression 3 from sklearn.datasets import load_diabetes 4 X,y=load_diabetes().data,load_diabetes().target 5 X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=8) 6 lr=LinearRegression().fit(X_train,y_train) 7 print("the coefficient:{}".format(lr.coef_)) 8 print('the intercept:{}'.format(lr.intercept_)) 9 print("the score of this model:{:.3f}".format(lr.score(X_test,y_test))) 1 from sklearn.linear_model import Ridge 2 ridge=Ridge().fit(X_train,y_train) 3 print("the coefficient:{}".format

论文笔记——Contextual Multi-armed Bandit Algorithm for Semiparametric(半参数) Reward Model

丶灬走出姿态 提交于 2020-01-31 05:35:16
Contextual Multi-armed Bandit Algorithm for Semiparametric(半参数) Reward Model 摘要: 事实证明,上下文多臂匪徒(MAB)算法有望在顺序决策任务(例如新闻推荐系统,网页广告放置算法和移动健康)中最大化累积reward。但是,大多数提出的上下文MAB算法都假定奖励和行为上下文之间存在线性关系。本文针对支持非平稳性的松弛,半参数奖励模型提出了一种新的上下文MAB算法。与考虑相同模型的两个替代算法相比,所提出的方法具有更少的限制,更易于实现且速度更快,同时实现了严格的后悔上限。 即提出一种新型MAB算法(宽松、半参数的reward模型)——支持非平稳态 一、introduction MAB问题会公式化顺序决策问题——选择action(arm),最后最大化积累的rewards 不断选择一个arm,同时收到对应的rewards,学习者会学习和收集信息,然后积累信息,最后根据现有的信息去选择最优的arm 之前的算法都是假设reward的期望和上下文具有是不变线性关系———会严格限制现实中reward的定义 本文中, 提出新型的上下文MAB算法——对rewards的分布会有宽松的假设 该假设可以针对不稳定性的reward包含 加法截距项 +原来的 时不变线性项 );该截距项随时间变化,但不取决于action ####

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

戏子无情 提交于 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\

scala-MLlib官方文档---spark.mllib package--classification and regression

ⅰ亾dé卋堺 提交于 2020-01-26 07:55:42
三、Classification and regression Spark.mllib包为二分类、多分类和回归分析提供了多样的支持工具 linear models(线性模型) 1)Mathematical formulation(数学公式) 很多标准的机器学习方法都可以表述为凸优化问题,例如:找到依赖于变量向量w的凸函数f的极小值的任务(在代码中被称为权重),通常含有d个输入。形式上,我们可以将其写为优化问题minw∈ℝdf(w),,具有如下形式的目标方程 这里的向量 这里向量xi∈ℝd 是训练数据示例, 其中1≤i≤n, 并且 yi∈ℝ是他们相应的标签, 也是我们想要预测的。我们称方法是线性的如果L(w;x,y) 可以被表示称方程 wTx and y。spark.mllib的几种分类和回归算法都属于此类,在此进行讨论。 目标方程f具有两部分: The objective function f has two parts: 控制模型复杂度的正则化器,以及测量训练数据上模型误差的损失。损失函数L(w ;.)通常是w中的凸函数。固定的正则化参数λ≥0(代码中的regParam)定义了两个目标之间的权衡,这两个目标是最小化损失(即训练误差)和最小化模型复杂度(即避免过度拟合)。 (1)损失方程 下表总结了spark.mllib支持的方法的损失函数及其梯度或子梯度: 注意

线性模型正则化

寵の児 提交于 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(

广义线性模型(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算法中讲解)

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 ) ) )