逻辑回归

机器学习实战(五)逻辑回归实战篇之预测病马死亡率 (Peter Harrington著)

风格不统一 提交于 2020-02-02 07:51:07
一 前言 本文对梯度上升算法和改进的随机梯度上升算法进行了对比,总结了各自的优缺点,并对sklearn.linear_model.LogisticRegression进行了详细介绍。 二 改进的随机梯度上升算法 梯度上升算法在每次更新回归系数(最优参数)时,都需要遍历整个数据集。可以看一下我们之前写的梯度上升算法: def gradAscent(dataMatIn, classLabels): dataMatrix = np.mat(dataMatIn) #转换成numpy的mat labelMat = np.mat(classLabels).transpose() #转换成numpy的mat,并进行转置 m, n = np.shape(dataMatrix) #返回dataMatrix的大小。m为行数,n为列数。 alpha = 0.01 #移动步长,也就是学习速率,控制更新的幅度。 maxCycles = 500 #最大迭代次数 weights = np.ones((n,1)) for k in range(maxCycles): h = sigmoid(dataMatrix * weights) #梯度上升矢量化公式 error = labelMat - h weights = weights + alpha * dataMatrix.transpose() * error

逻辑回归-信用卡欺诈检测

浪尽此生 提交于 2020-02-01 03:11:07
数据集: import matplotlib.pyplot as plt import numpy as np import pandas as pd data=pd.read_csv("creditcard.csv") print(data.head()) import matplotlib.pyplot as plt import numpy as np import pandas as pd data=pd.read_csv("creditcard.csv") #print(data.head()) count_classes=pd.value_counts(data['Class'],sort=True).sort_index() count_classes.plot(kind='bar') plt.title("Fraud class histogram") plt.xlabel("Class") plt.ylabel("Frequency") plt.show() #数据预处理: import matplotlib.pyplot as plt import numpy as np import pandas as pd data=pd.read_csv("creditcard.csv") #print(data.head()) count_classes=pd

Python不调包实现逻辑回归和自动求导

大兔子大兔子 提交于 2020-01-30 08:13:26
导言 逻辑回归是机器学习中最基础也最常用的模型 一句话介绍LR: 逻辑回归假设 数据服从伯努利分布 ,通过 极大化似然函数 的方法,运用 梯度下降 来求解参数,来达到将数据 二分类 的目的。 LR具体的推导可以参考李航老师的统计学习方法 为什么LR损失函数不选MSE,而采用极大似然估计(即交叉熵损失) 参考: https://www.cnblogs.com/smartwhite/p/9109815.html 对于线性回归,我们会选择MSE, 因为其J(θ)是凸函数 但是对于logistic回归,由于进行了sigmoid非线性映射就是 非凸函数 ,所以可能在寻优的时候 容易陷入局部最优 所以 考虑把sigmoid作log ,对其求二阶导,结果大于0,说明其是凸函数,在用梯度下降法寻优时,可以保证找到全局最小。 TensorFlow实现 使用mnist数据集验证模型的有效性 import tensorflow as tf import os from tensorflow . examples . tutorials . mnist import input_data os . environ [ 'CUDA_VISIBLE_DEVICES' ] = '0' lr = 0.001 n_epoch = 25 batch_size = 64 def LR ( ) : x = tf .

逻辑回归

左心房为你撑大大i 提交于 2020-01-29 02:20:51
回归:连续值预测 逻辑回归:分类算法 。–逻辑回归是干什么? 定义:对定性变量的回归分析; 定性 : 定量 : 之前的回归模型,处理的是 因变量是数值型区间 (负无穷到正无穷)变量,建立的模型描述的是因变量Y与自变量(X)之间的线性关系。 期望=期望参数与自变量的分别乘积和; 逻辑变换的公式: 要记住 注:结果是对称的,一般情况是0.5;如果结果不是对称的,一般情况不是0.5 使用最小二乘法求:上面的函数服从正态分布,然后倒过来推。 对数似然函数为: lnL= **** 他是一个凸函数(相当于四个角的吊床) 第一个是批量;第二个是随机。 ----接下来写程序。 作业: 代码: import numpy as np def sigmoid ( x ) : return 1 / ( 1 + np . exp ( - x ) ) def weights ( x_train , y_train ) : # 获取权重 # 初始化参数 theta = np . random . rand ( 3 ) # 生成n个随机数 # 学习率 alpha = 0.001 # 迭代次数 cnt = 0 # 最大迭代次数 max_cnt = 50000 # 误差 # error0=error1=1 # 指定一个阈值,用于检查两次误差的差,以便停止迭代 threshold = 0.01 m , n = x

logistic回归模型

戏子无情 提交于 2020-01-24 21:05:34
目录 logistic 回归算法 logistic 回归算法 一种常见的分类算法,输出值在0,1之间 是:1 否:0 即找到满足下面条件的最优参数 \(0 \leq h_{\theta}(x) \leq 1\) 假设函数的表示方法: \(h_{\theta}(x)=g\left(\theta^{T} x\right)\) 其中: \(g(z)=\frac{1}{1+e^{-z}}\) 因此, \(g(z)\) 带入假设函数之后,假设函数的表示为 \(h_{\theta}(x)=\frac{1}{1+e^{-\theta^{T} x}}\) 如果我们想要结果总是在0到1之间,那么就可以使用sigmoid函数,它能保证数据在0-1之间。并且越趋近于无穷大,数据越趋近于1。 sigmoid函数==logistic函数 其函数图像如下: 注意到z趋向于负无穷大时,值越接近0;z趋向于正无穷大时,值越接近1。这样就可以使输出值在0到1之间。有了这个假设函数,就可以拟合数据了,根据给定的θ参数值,假设会做出预测 假设一个问题,如果肿瘤是依赖于大小来判断良性恶性,如果超过0.7*平均值,就判断是恶性的,那么平均来算30%的是恶性的,70%是良性的,他们相加总会是100%。再来看看上面的sigmoid的图像,每个点都表示它属于1的概率是x,属于0的概率是1-x。这样一个分类的问题

Pytorch框架学习(4)——autograd与逻辑回归

倾然丶 夕夏残阳落幕 提交于 2020-01-23 02:32:44
autograd与逻辑回归 文章目录 autograd与逻辑回归 1. torch.autograd自动求导系统 2. 逻辑回归 1. torch.autograd自动求导系统 torch.autograd.backward 功能:自动求取梯度 tensors:用于求导的张量,如loss retain_graph:保存计算图 create_graph:创建导数计算图,用于高阶求导 grad_tensors:多梯度权重(当有多个loss需要计算梯度时,需要设置各个loss之间的权重比例) w = torch . tensor ( [ 1 . ] , requires_grad = True ) x = torch . tensor ( [ 2 . ] , requires_grad = True ) a = torch . add ( w , x ) b = torch . add ( w , 1 ) y0 = torch . mul ( a , b ) y1 = torch . add ( a , b ) loss = torch . cat ( [ y0 , y1 ] , dim = 0 ) grad_tensors = torch . tensor ( [ 1 . , 2 . ] ) loss . backward ( gradient = grad_tensors ) #

Machine Learning Andrew Ng -7. Regularization

折月煮酒 提交于 2020-01-20 20:48:09
7.1 The problem of over-fitting What is overfitting problem? generalize 泛化 :一个假设模型应用到新样本的能力 如何解决过度拟合? 7.2 Cost function 一般只对 θ 1 , θ 2 , . . . , θ n \theta_1,\theta_2,...,\theta_{n} θ 1 ​ , θ 2 ​ , . . . , θ n ​ 进行正则化 缩小参数 θ \theta θ 如果正则化参数 λ \lambda λ 选的过大,则会出现下图所示欠拟合的情况 如何选择正则化参数? 应用到 linear regression and logistic regression? 7.3 Regularized linear regression 7.4 Regularized logistic regression 如何改进梯度下降和其他高效算法使其应用到正则化逻辑回归中? 其中,逻辑回归的梯度下降法的迭代方式与线性回归看似相同,但实际上二者的 h θ ( x ) h_\theta(x) h θ ​ ( x ) 不同,因此是两种完全不同的方法。 老师说,学到这里,你已经比很多硅谷工程师强了(信了老师的鬼话哦つ﹏⊂ 来源: CSDN 作者: _BANA 链接: https://blog.csdn.net

从机器学习谈起

前提是你 提交于 2020-01-20 10:56:09
本文原地址 https://www.cnblogs.com/subconscious/p/4107357.html 拜读原文之后,无比喜欢,怕以后找不到,所以转载,大家喜欢可以去看原文,真的很精彩。 从机器学习谈起   在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。   在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?   我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一: 图1 机器学习界的执牛耳者与互联网界的大鳄的联姻     这幅图上上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,如今是Facebook人工智能实验室的主任。而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,如今也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界炙手可热的大牛,被互联网界大鳄求贤若渴的聘请,足见他们的重要性。而他们的研究方向

Spark.ml - -逻辑回归LogisticRegression

﹥>﹥吖頭↗ 提交于 2020-01-19 04:00:07
前言 逻辑回归的本质是线性回归,只是在特征到结果的过程上加上了一层映射。即首先需要把特征进行求和,然后将求和后的结果应用于一个g(z)函数。g(z)可以将值映射到0或者是1上面。 逻辑函数又称Sigmoid函数,函数形式如下所示: 逻辑回归可以是二分类的,也可以是多分类的。 特点 优点: 1.便于理解和实现,可以观测样本的概率分数 2.训练速度快 3.由于经过了sigmoid函数的映射,对数据中小噪声的鲁棒性较好 4.不受多重共线性的影响(可通过正则化进行消除) 缺点: 1.容易欠拟合 2.特征空间很大时效果不好 3.由于sigmoid函数的特性,接近0/1的两侧概率变化较平缓,中间概率敏感,波动较大;导致很多区间特征变量的变化对目标概率的影响没有区分度,无法确定临界值。 原理 根据之前线性回归的经验,用MSE作为损失函数,但这个函数是非凸的,不可以用梯度下降来优化,因此极大似然估计闪亮登场,得到损失函数:交叉熵损失函数(cross-entropy loss)。更多损失函数详情请参阅: https://www.imooc.com/article/69668 pySpark API class pyspark.ml.classification. LogisticRegression ( featuresCol='features' , labelCol='label' ,

什么是机器学习

走远了吗. 提交于 2020-01-18 20:28:32
原文链接: https://www.cnblogs.com/lsgsanxiao/p/6955502.html 机器学习入门好文,强烈推荐(转) 转自 飞鸟各投林 史上最强----机器学习经典总结---入门必读----心血总结-----回味无穷 让我们从机器学习谈起 导读:在本篇文章中,将对 机器学习 做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。当然,本文也面对一般读者,不会对阅读有相关的前提要求。 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一: 图1 机器学习界的执牛耳者与互联网界的大鳄的联姻 这幅图上上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,如今是Facebook人工 智能 实验室的主任。而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,如今也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界炙手可热的大牛,被互联网界大鳄求贤若渴的聘请,足见他们的重要性。而他们的研究方向,则全部都是机器学习的子类-- 深度学习 。 下图是图二: 图2