逻辑回归

逻辑回归特征重要性查看

孤人 提交于 2020-01-18 09:49:48
逻辑回归特征重要性查看 LR模型也就是逻辑回归模型,作为一个简单的常用的模型,其有非常多的优点,除了模型简单,容易实现分布式, 还有一个重要的优点就是模型的可解释性非常好。因为每个特征都对应一个模型参数 wi该参数越大 ,那么该特征对模型预测结果的 影响就会越大 ,我们就说该特征就越重要 来源: CSDN 作者: 御剑归一 链接: https://blog.csdn.net/wj1298250240/article/details/103929676

吴恩达机器学习3--逻辑回归(Logistic Regression)

吃可爱长大的小学妹 提交于 2020-01-17 23:57:01
分类问题 在分类问题中,你要预测的变量 𝑦 是离散的值,我们将学习一种叫做 逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。 在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;判断肿瘤是恶性还是良性 先从二元分类来讨论 我们将因变量可能属于的两个类别称为 正类 和 负类 ,我们用0表示负类,用1表示正类。 如果我们用线性回归来解决一个分类问题,线性函数的输出值可能远大于1或者远小于0,那怎么办呢? 所以我们就要逻辑回归的算法的 输出值永远在0到1中间 根据线性回归模型,我们只能预测连续值,而逻辑回归预测的是离散值,我们可以假设 当ℎ𝜃(𝑥) >= 0.5时,预测 𝑦 = 1。 当ℎ𝜃(𝑥) < 0.5时,预测 𝑦 = 0 。 我们引入一个新的模型,逻辑回归,该模型的输出变量范围始终在 0 和 1 之间。 逻辑回归模型的假设是: ℎ𝜃(𝑥) = 𝑔(𝜃𝑇𝑋) 其中: 𝑋 代表特征向量 𝑔 代表逻辑函数,是一个常用的逻辑函数为 S 形函数(Sigmoid function) python代码实现 import numpy as np def sigmoid ( z ) : return 1 / ( 1 + np . exp ( - z

@。Tensorflow,纯新手入门笔记->回归算法、损失函数

吃可爱长大的小学妹 提交于 2020-01-16 09:24:44
第七节: 机器学习中第一个算法:回归算法 亮点: 1.因变量和自变量之间的关系实现数据的预测。 2.不同自变量对因变量影响的强度。(不就是k嘛) for example :对房价估计时,需要确定房屋面积(自变量)与其价格(因变量)之间的关系,可以利用这一关系来预测给定面积的房屋的价格。 可以有多个影响因变量的自变量。 一、线性回归 其中,X=(x1,​x2,…,xn) 为 n 个输入变量,W=(w1,w2,…,wn) 为线性系数,b 是偏置项。目标是找到系数 W 的最佳估计,使得预测值 Y 的误差最小。 亮点: 1.W很重要,要W最佳,使得误差最小。 2.最小二乘法,可以使得W最佳。即使预测值 (Yhat) 与观测值 (Y) 之间的差的平方和最小。 3.还有个b偏置 因此,这里尽量最小化损失函数: 根据输入变量 X 的数量和类型,可划分出多种线性回归类型: 简单线性回归(一个输入变量,一个输出变量),多元线性回归(多个输入变量,一个输出变量),多变量线性回归(多个输入变量,多个输出变量)。 二、逻辑回归 :用来确定一个事件的概率。通常来说,事件可被表示为类别因变量。事件的概率用 logit 函数(Sigmoid 函数)表示: 现在的目标是估计权重 W=(w1,w2,…,wn) 和偏置项 b。在逻辑回归中,使用最大似然估计量或随机梯度下降来估计系数。损失函数通常被定义为交叉熵项:

梯度下降求解逻辑回归

穿精又带淫゛_ 提交于 2020-01-16 04:39:29
Logistic Regression The data 我们将建立一个逻辑回归模型来预测一个学生是否被大学录取。假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会。你有以前的申请人的历史数据,你可以用它作为逻辑回归的训练集。对于每一个培训例子,你有两个考试的申请人的分数和录取决定。为了做到这一点,我们将建立一个分类模型,根据考试成绩估计入学概率。 #三大件 import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import os path = 'data' + os.sep + 'LogiReg_data.txt' pdData = pd.read_csv(path, header=None, names=['Exam 1', 'Exam 2', 'Admitted']) pdData.head() */ /*--> */ Exam 1 Exam 2 Admitted 0 34.623660 78.024693 0 1 30.286711 43.894998 0 2 35.847409 72.902198 0 3 60.182599 86.308552 1 4 79.032736 75.344376 1 pdData.shape

机器学习中的特征工程

自作多情 提交于 2020-01-15 14:59:59
作者:城东 链接: 特征工程到底是什么? - 城东的回答 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 目录 1 特征工程是什么? 2 数据预处理   2.1 无量纲化     2.1.1 标准化     2.1.2 区间缩放法     2.1.3 标准化与归一化的区别   2.2 对定量特征二值化   2.3 对定性特征哑编码   2.4 缺失值计算   2.5 数据变换 3 特征选择   3.1 Filter     3.1.1 方差选择法     3.1.2 相关系数法     3.1.3 卡方检验     3.1.4 互信息法   3.2 Wrapper     3.2.1 递归特征消除法   3.3 Embedded     3.3.1 基于惩罚项的特征选择法     3.3.2 基于树模型的特征选择法 4 降维   4.1 主成分分析法(PCA)   4.2 线性判别分析法(LDA) 5 总结 6 参考资料 1 特征工程是什么?   有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面:   特征处理是特征工程的核心部分

LogisticRegression逻辑斯特回归性能分析_学习曲线

岁酱吖の 提交于 2020-01-14 02:32:42
LogisticRegression逻辑斯特回归性能分析_学习曲线 L2正则化 # 我们在乳腺癌数据集上详细分析 LogisticRegression from sklearn . datasets import load_breast_cancer cancer = load_breast_cancer ( ) X_train , X_test , y_train , y_test = train_test_split ( cancer . data , cancer . target , stratify = cancer . target , random_state = 42 ) logreg = LogisticRegression ( ) . fit ( X_train , y_train ) print ( "Training set score: {:.3f}" . format ( logreg . score ( X_train , y_train ) ) ) print ( "Test set score: {:.3f}" . format ( logreg . score ( X_test , y_test ) ) ) ​ # C=1 的默认值给出了相当好的性能,在训练集和测试集上都达到 95% 的精度。但由于训练 # 集和测试集的性能非常接近

Task3:逻辑回归

╄→гoц情女王★ 提交于 2020-01-13 17:29:54
逻辑回归 1.逻辑回归与线性回归的联系与区别 2.逻辑回归的原理 3.逻辑回归损失函数推导及优化 4.正则化与模型评估指标 5.逻辑回归的优缺点 6.样本不均匀问题解决办法 7.Sklean参数 8.代码实现 1.逻辑回归与线性回归的联系与区别 线性回归解决的是连续变量的问题,但离散性变量,在分类任务中使用线性回归,效果不理想。` 例子: 图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为1,不购买标注为0,拟合后取当0.5值为阈值来划分类别。 y ^ = { 1 , f ( x ) > 0.5 , 0 , f ( x ) < 0.5 \hat y =\begin{cases} 1, f(x)>0.5, \\\\0, f(x)<0.5\end{cases} y ^ ​ = ⎩ ⎪ ⎨ ⎪ ⎧ ​ 1 , f ( x ) > 0 . 5 , 0 , f ( x ) < 0 . 5 ​ 可以看到,在途中,年龄的区分点约为19岁。 但当数据点不平衡时,很容易影响到阈值,见以下图: 可以看到,0值样本的年龄段往高年龄端偏移后,真实的阈值依然是19岁左右,但拟合出来的曲线的阈值往后边偏移了。可以想想,负样本越多,年龄大的人越多,偏移越严重。 实际情况是60岁的老人和80岁的老人都不会购买玩具,增加几位80岁的老人,并不会影响20岁以下人群购买玩具的概率

逻辑斯特回归和SVM 对比

夙愿已清 提交于 2020-01-12 01:37:44
逻辑斯特回归和SVM 对比 对于 LogisticRegression 和 LinearSVC,决定正则化强度的权衡参数叫作 C。 C 值越 # 大,对应的正则化越弱。 换句话说,如果参数 C 值较大,那么 LogisticRegression 和 # LinearSVC 将尽可能将训练集拟合到最好,而如果 C 值较小,那么模型更强调使系数向量 # (w)接近于 0。 from sklearn . linear_model import LogisticRegression from sklearn . svm import LinearSVC ​ X , y = mglearn . datasets . make_forge ( ) ​ # 画子图 fig , axes = plt . subplots ( 1 , 2 , figsize = ( 10 , 3 ) ) # 逻辑斯特回归和SVM for model , ax in zip ( [ LinearSVC ( ) , LogisticRegression ( ) ] , axes ) : clf = model . fit ( X , y ) mglearn . plots . plot_2d_separator ( clf , X , fill = False , eps = 0.5 , ax = ax , alpha

07逻辑回归、非监督学习

混江龙づ霸主 提交于 2020-01-11 16:30:54
一.逻辑回归 解决二分类问题的利器,算法自动分为0和1,比如设广告被点击为1,不被点击为0。 sigmoid函数: 1.公式 输出:[0,1]区间的概率值,默认0.5作为阀值 注:g(z)为sigmoid函数 2. 对数似然损失函数 1) cost损失的值越小,那么预测的类别准确度更高 2) 出现的问题:多个局部最⼩小值,目前解决不了 l 梯度下降求解 1) 多次随机初始化,多次⽐比较最⼩小值结果 2) 求解过程当中,调整学习率 尽量量改善。尽管没有全局最低点,但是效果都是不不错的 3.API sklearn.linear_model.LogisticRegression sklearn.linear_model.LogisticRegression( penalty=‘l2’, C = 1.0 ) Logistic回归分类器 coef_:回归系数 在实际使用时,对于目标值来说,哪⼀一个类别少,判定概率值是指的这个类别,即1为属于目标值所属类别较少的类别。 4.优缺点 1) 应用:广告点击率预测、电商购物搭配推荐 2) 优点:适合需要得到一个分类概率的场景 3) 缺点:当特征空间很大时,逻辑回归的性能不是很好(看硬件能力) 5.实例代码 def logistic(): """ 逻辑回归做二分类进行癌症预测(根据细胞的属性特征) :return: NOne """ # 构造列标签名字

为什么说逻辑回归实质是最大似然估计,而线性回归实质是最小二乘法?

╄→гoц情女王★ 提交于 2020-01-11 14:34:56
根据已知特征值X和标签结果Y,我们利用线性回归模型(为了简化,作者以一元线性回归为例说明)可以得出 y i ^=wx i +b。 损失函数:loss=Σ(y i -y i ^) 2 ,为了得到更加准确的拟合模型,我们的目标就转化为使损失函数loss最小,即: argmin loss=argmin Σ(y i -y i ^) 2 =argmin Σ(y i -wx i -b) 2 这里就是大家比较熟悉的最小二乘法(即最小化误差平方和)。 因此线性回归其实质就是利用最小二乘法去计算各种参数(w,b)。 但是对于逻辑回归,为什么不能用最小二乘法了呢? 我们知道逻辑回归,同线性回归一样,可以计算预测值: y i ^=wx i +b 但是对于逻辑回归的标签结果是0或者1,如何使二者能够发生关联呢,有一种神奇的激活函数就是Sigmoid函数,可以将变量转化为0或者1, sigmoid函数表示: f(z)=1/(1+e -z ),因此,可以转化为 f(x)=1/(1+e -(wx+b) ) 。这时也许你想, 同样loss=Σ(y i -f(x i )) 2 这样我们就可以像线性回归那样,利用最小二乘法去计算参数值了。 可是好事多磨啊,要想得到一个最小二乘的最优解,这个函数最好是凸函数 (为什么说最好是呢,其实不是凸函数,也能求得部分解,但不能保证是最优解,可能是一些鞍点) (什么是凸函数