逻辑回归

逻辑回归笔记

拥有回忆 提交于 2019-11-29 13:31:43
逻辑回归 Logistic/sigmoid函数 h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x)=g\left(\theta^{T} x\right)=\frac{1}{1+e^{-\theta^{T} x}} h θ ​ ( x ) = g ( θ T x ) = 1 + e − θ T x 1 ​ 损失函数 J ( θ ) = − ∑ i = 1 m ( y ( i ) ln ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) ln ⁡ ( 1 − h θ ( x ( i ) ) ) ) J(\theta)=-\sum_{i=1}^{m}\left(y^{(i)} \ln h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \ln \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right) J ( θ ) = − i = 1 ∑ m ​ ( y ( i ) ln h θ ​ ( x ( i ) ) + ( 1 − y ( i ) ) ln ( 1 − h θ ​ ( x ( i ) ) ) ) 梯度下降算法的参数迭代公式 θ j = θ j + α ∑ i = 1 m ( y ( i ) − h

Spark ML逻辑回归

删除回忆录丶 提交于 2019-11-28 22:35:04
1 import org.apache.log4j.{Level, Logger} 2 import org.apache.spark.ml.classification.LogisticRegression 3 import org.apache.spark.ml.linalg.Vectors 4 import org.apache.spark.sql.SparkSession 5 6 /** 7 * 逻辑回归 8 * Created by zhen on 2018/11/20. 9 */ 10 object LogisticRegression { 11 Logger.getLogger("org").setLevel(Level.WARN) // 设置日志级别 12 def main(args: Array[String]) { 13 val spark = SparkSession.builder() 14 .appName("LogisticRegression") 15 .master("local[2]") 16 .getOrCreate() 17 val sqlContext = spark.sqlContext 18 // 加载训练数据和测试数据 19 val data = sqlContext.createDataFrame(Seq( 20 (1.0,

携程面试

白昼怎懂夜的黑 提交于 2019-11-28 22:15:43
携程一面: 机器学习(现场) 1.介绍你自己,这里我把自己的兴趣点引入风控,然后讨论了一会。 2.你对风控有什么理解 3.风控模型有哪些 4.扣了会简历 5.机器学习算法会吗?会哪些? 6.手推下逻辑回归,逻辑回归是梯度下降还是上升? 7.手推下svm吧 8.了解GAN吗?讲一下 9.异常检测?处理无标签问题,有标签问题? 10.我讲了我自学的2个风控模型,挖掘了一下 11.你会自己改网络改损失建模吗?pytorch 12.讲下你的优点,缺点? 13.你有什么问题要问我的? 业务有啥,做啥? 应届生培养? 你觉得怎么去深入学习风控? 14.你平时是怎么解决问题的? 来源: https://www.cnblogs.com/ivyharding/p/11429635.html

逻辑回归(Logistic Regression)详解,公式推导及代码实现

半腔热情 提交于 2019-11-28 06:32:09
逻辑回归(Logistic Regression) 什么是逻辑回归:   逻辑回归(Logistic Regression)是一种基于概率的模式识别算法,虽然名字中带"回归",但实际上是一种分类方法,在实际应用中,逻辑回归可以说是应用最广泛的机器学习算法之一 回归问题怎么解决分类问题?   将样本的特征和样本发生的概率联系起来,而概率是一个数.换句话说,我预测的是这个样本发生的概率是多少,所以可以管它叫做回归问题 在许多机器学习算法中,我们都是在追求这样的一个函数    例如我们希望预测一个学生的成绩y,将现有数据x输入模型 f(x) 中,便可以得到一个预测成绩y 但是在逻辑回归中,我们得到的y的值本质是一个概率值p      在得到概率值p之后根据概率值来进行分类    当然了这个1和0在不同情况下可能有不同的含义,比如0可能代表恶性肿瘤患者,1代表良性肿瘤患者 逻辑回归既可以看做是回归算法,也可以看做是分类算法,通常作为分类算法用,只可以解决二分类问题,不过我们可以使用一些其他的技巧(OvO,OvR),使其支持解决多分类问题 下面我们来看一下逻辑回归使用什么样的方法来得到一个事件发生的概率的值 在线性回归中,我们使用    来计算,要注意,因为Θ 0 的存在,所以x用小的X b 来表示,就是每来一个样本,前面还还要再加一个1,这个1和Θ 0 相乘得到的是截距,但是不管怎样

逻辑回归

六月ゝ 毕业季﹏ 提交于 2019-11-28 06:21:46
逻辑回归模型 \(s=\sum_{i=0}^dw_ix_i\) h(x)= \(\theta\) (s) \(\theta\) (s)函数有很多种,都呈现为"S"形状, \(\theta(0)=\frac{1}{2}\) , \(\theta(-\infin)\rightarrow0\) , \(\theta(+\infin)\rightarrow1\) 这里 \(\theta\) (s)取以下公式(sigmoid) \(\theta(s)=\frac{e^s}{1+e^s}\) 逻辑回归的数据是(x,y)即特征+标签(+1,-1) 标签不是概率,即标签与最终假设式的输出不同 数据由一个噪音目标函数函数f生成 \(P(y|x)=\) \(\begin{cases} f(x),y=1\\ 1-f(x) ,y=-1 \end{cases}\) 逻辑回归目标函数 \(f:R^d\rightarrow[0,1]\) 将数据的d个特征映射到一个0~1之间的概率 最终假设式 \(g(x)=\theta(w^Tx)\approx f(x)\) 简而言之g(x)就是输入一个数据的特征,输出该数据标签为+1的几率 误差测量 假设式作用于单一数据点产生的概率 \(P(y|x)=\) \(\begin{cases} h(x),y=1\\ 1-h(x) ,y=-1 \end{cases}\) 由 \(

传统推荐算法(五)LR+GBDT(1)剑指GBDT

大城市里の小女人 提交于 2019-11-28 05:55:27
文章目录 写在前面 1. GBM 1.1 从参数空间到函数空间: 1.2 从非参估计到参数估计 1.3 泰勒展开近似 2. GBM的基学习器 2.1 基学习器选择 2.2 CART回归树 3. GBDT之回归 4. GBDT之分类 4.1 二类逻辑回归和分类 4.2 多类逻辑回归和分类 5. 反思总结 5.1 样本权重调整 5.2 GBDT优缺点 6. GBDT资料推荐 参考 公众号 写在前面 学习GBDT的时候,被网上的几篇文章搞晕了,就去看了下GBDT的论文,整理了一些思路,结合参考中的一些内容,整理了这篇文章。本文将循序渐进,从GB,DT讲到GBDT,细致分析下GBDT的原理。本人才疏学浅,有些地方可能理解得不对,欢迎指出错误。学习过程中,薛大佬的这篇文章给了我很多启发:http://xtf615.com/paper/GBM.html。他本人也很热心地帮我解答疑问,在此特别感谢。 机器学习中的 Boosting 算法族有两大类,一类是 weight_boosting,其中以 adaboost 为主要代表,另一类是 gradient_boosting,其中以 gbdt 为主要代表[1]。GBDT是机器学习竞赛中常用的一种算法,据统计,Kaggle比赛中50%以上的冠军方案都是基于GBDT算法[2]。有人称之为机器学习TOP3算法。 1999年,Jerome Harold

吴恩达机器学习---编程练习6

白昼怎懂夜的黑 提交于 2019-11-27 13:01:43
博主只是初学机器学习的新人一枚,这篇博客旨在分享一下吴恩达机器学习课程编程练习6的答案,同时也是相当于自己对这一章的内容做一个回顾,让自己理解的更加的透彻,理性讨论,不喜勿喷 本章的主题是Support Vector Machines(SVM),即支持向量机,SVM是一类按照监督学习方式对数据进行二元分类的广义线性分类器,与前面提到的逻辑回归和神经网络类似,而SVM与二者相比,在学习复杂的非线性方程时,提供了一种更为清晰,更加强大的方法,线性回归、逻辑回归、神经网络和SVM的总结可以参考下列博文(侵删): 线性回归、逻辑回归、神经网络、SVM总结 来源: https://blog.csdn.net/qq_37210730/article/details/99677888

逻辑回归2-scikit-learn参数介绍

冷暖自知 提交于 2019-11-27 12:30:47
1.1 scikit-learn参数介绍 1.1.1 导入 from sklearn.linear_model import LogisticRegression 1.1.2 版本 scikit-learn==0.21.3 1.1.3 参数 1.1.3.1 penalty l1 、l2 、elasticnet 、none ,默认l2 l1: l1正则,邻回归 l2: l2正则,套索回归 elasticnet: 弹性网络,是邻回归和套索回归的正则项的混合 none: 什么都不加 在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑弹性网络和L1正则化,弹性网络优于L1正则,因为当特征数量超过训练实例数量,又或者是几个特征强相关时,L1正则的表现可能非常不稳定。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。 penalty参数的选择会影响损失函数优化算法的选择,即参数solver的选择。 若是L2正则,有4种可选的算法:“newton-cg”,“lbfgs”,“liblinear”,“sag”, 若是L1 正则,有1 种可选的算法:“liblinear ”,L1 正则化的损失函数不是连续可导的。 若是elasticnet

ABC卡

我与影子孤独终老i 提交于 2019-11-27 09:24:23
如今在银行,P2P等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户有一个优质与否的评判。但是不是所有人都知道信用评分卡还分A,B,C卡三类!所以,如果你只知道ABC是Gary的ABC汤,那就赶紧来补习下这些知识吧~~ A卡(Application score card)申请评分卡 B卡(Behavior score card)行为评分卡 C卡(Collection score card)催收评分卡 三种卡的介绍,请直接看这篇文章:比较全面的说了三种打分机制。 梁世栋博士的《行为评分和贷后风险管理研究》http://www.docin.com/p-516772778.html 这三种打分机制的区别在于: 1.使用的时间不同。分别侧重 贷前、贷中、贷后 ; 2.数据要求不同。 A卡一般可做贷款0-1年的信用分析,B卡则是在申请人有了一定行为后,有了较大数据进行的分析,一般为3-5年,C卡则对数据要求更大,需加入催收后客户反应等属性数据。 3.每种评分卡的模型会不一样。在A卡中常用的有 逻辑回归 , AHP [层次分析法(Analytic Hierarchy Process,简称AHP)]等,而在后面两种卡中,常使用 多因素逻辑回归 ,精度等方面更好。 3.检测评分卡中客户群的 特征变化 ,已经这些变化对评分卡分值的冲击。 2.计算 某些特定参数 ,用以触发某些行动

sklearn调用逻辑回归算法

爱⌒轻易说出口 提交于 2019-11-27 06:15:35
1、逻辑回归算法即可以看做是回归算法,也可以看作是分类算法,通常用来解决分类问题,主要是二分类问题,对于多分类问题并不适合,也可以通过一定的技巧变形来间接解决。 2、 决策边界是指不同分类结果之间的边界线(或者边界实体) ,它具体的表现形式一定程度上说明了算法训练模型的过拟合程度,我们可以通过决策边界来调整算法的超参数。 注解: 左边逻辑回归拟合决策边界嘈杂冗余说明过拟合,右边决策边界分层清晰说明拟合度好 3、在逻辑回归中随着算法的复杂度不断地提高,其算法的过拟合也会越来越严重,为了避免这个现象,我们在逻辑回归中也需要进行正则化,以减小整体拟合的均方差,减少训练的过拟合现象。因此sklearn中调用逻辑回归时含 有三个重要的超参数degree(多项式的最高次数),C(正则化系数)以及penalty(正则化的方式l1/l2) 4、 sklearn中逻辑回归使用的正则化方式如下 : import numpy as npimport matplotlib.pyplot as plt#定义概率转换函数sigmoid函数def sigmoid(t): return 1/(1+np.exp(-t))x=np.linspace(-10,10,100)y=sigmoid(x)plt.figure()plt.plot(x,y,"r",label="Sigmoid")plt.legend(loc=2