机器学习实战第五章logistic回归(代码片段)

weiququ weiququ     2022-12-20     410

关键词:


def
gradAscent(dataMatIn, classLabels): dataMatrix = mat(dataMatIn) #convert to NumPy matrix labelMat = mat(classLabels).transpose() #convert to NumPy matrix m,n = shape(dataMatrix) alpha = 0.001 maxCycles = 500 weights = ones((n,1)) for k in range(maxCycles): #heavy on matrix operations h = sigmoid(dataMatrix*weights) #matrix mult error = (labelMat - h) #vector subtraction weights = weights + alpha * dataMatrix.transpose()* error #matrix mult return weights

这是书中梯度上升算法的代码,但看到倒数第三行和倒数第二行的时候就懵逼了,书中说这里略去了一个简单的数据推导,嘤嘤嘤,想了一会没想出来,于是乎就百度看看大神的解释,这是找到的一篇解释的比较好的,仔细一看发现是在Ag的机器学习视频中讲过的,忘了。。。

Sigmoid函数: $g(z)=frac11+e^-z$

  $h_ heta (x)=g( heta ^Tx)$

这里$ heta$和书中w一样,表示系数

代价函数如下,代价函数是用来计算预测值(类别)与实际值(类别)之间的误差的

  $cost(h_ heta (x),y)=lefteginmatrix
  -log(h_ heta(x)), y=1\\
  -log(1-h_ heta(x)), y=0endmatrix ight.$

写在一起表示为:

  $cost(h_ heta (x),y)=-ylog(h_ heta(x))-(1-y)log(1-h_ heta(x))$

 总体的代价函数为:

  $J( heta)=frac1msum_m^i=1cost(h_ heta (x^(i)),y^(i))=frac1msum_m^i=1-y^(i)log(h_ heta(x^(i)))-(1-y^(i))log(1-h_ heta(x^(i)))$

要使误差最小,即求$J( heta)$最小,也可以转化成就$-J( heta)$的最大值,可以用梯度上升算法来求最大值,

    $ heta := heta+ alpha fracpartial J( heta )partial heta_j$

下面是推导过程:

  技术分享图片

所以权重的迭代更新公式为:  

  $ heta_j = heta_j+ alpha sum_m^i=1(y_i-h_ heta(x^(i)))x^(i))$

       

 

《机器学习实战》学习笔记:logistic回归(代码片段)

欢迎关注WX公众号:【程序员管小亮】【机器学习】《机器学习实战》读书笔记及代码总目录https://blog.csdn.net/TeFuirnever/article/details/99701256GitHub代码地址:https://github.com/TeFuirnever/Machine-Learning-in-Action——————————... 查看详情

机器学习实战 logistic回归(代码片段)

logistic回归梯度上升法importnumpyasnp"""function:加载数据parameter:无returns:dataMat-数据集labelMat-标签集"""defloadDataSet():dataMat=[]#数据集labelMat=[]#标签集fr=open('testSet.txt')forlineinfr.readlines():lineArr=line.strip().split()dat... 查看详情

机器学习实战笔记logistic回归

参考链接http://blog.csdn.net/lu597203933/article/details/38468303Logistic代码#Logistic回归分类使用梯度上升找最佳参数importnumpyasnpdefloadDataSet():datMat=[];labelMat=[]fr=open(‘testSet.txt‘)forlineinfr.readlines():lineAr 查看详情

《机器学习实战》logistic回归算法

=====================================================================《机器学习实战》系列博客是博主阅读《机器学习实战》这本书的笔记也包含一些其他python实现的机器学习算法              查看详情

机器学习实战第5章logistic回归

第5章Logistic回归Logistic回归概述Logistic回归虽然名字叫回归,但是它是用来做分类的。其主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。须知概念Sigmoid函数回归概念假设现在有一些数据点,我们用一条直线... 查看详情

[机器学习实战]logistic回归

1.Logistic回归:  1)优点:计算代价不高,易于理解和实现;  2)缺点:容易欠拟合,分类精度可能不高;  3)适用数据类型:数值型和标称型数据; 2.分类思想:  根据现有数据对分类边界线建立回归公式,以此... 查看详情

机器学习实战精读--------logistic回归

Logistic回归的主要目的:寻找一个非线性函数sigmod最佳的拟合参数拟合、插值和逼近是数值分析的三大工具回归:对一直公式的位置参数进行估计拟合:把平面上的一些系列点,用一条光滑曲线连接起来logistic主要思想:根据现... 查看详情

机器学习实战------利用logistics回归预测病马死亡率

...战部分一直托更,很不好意思。本文实验数据与代码来自机器学习实战这本书,倾删。一:前期代码准备1.1数据预处理还是一样,设置两个数组,前两个作为特征值,后一个作为标签。当然这是简单的处理,实际开发中特征值都... 查看详情

机器学习--logistic回归(代码片段)

logistic回归很多时候我们需要基于一些样本数据去预测某个事件是否发生,如预测某事件成功与失败,某人当选总统是否成功等。这个时候我们希望得到的结果是bool型的,即trueorfalse我们最先想到的是通过最小二乘法求出线性回归... 查看详情

机器学习logistic分类回归算法(二元分类&多元分类)(代码片段)

...合伙人,全栈领域优质创作者。该文章收录专栏✨—机器学习—✨【机器学习】logistics分类一、线性回归能用于分类吗?二、二元分类2.1假设函数2.1.1案例一2.1.2例子二2.2拟合logistic回归参数θi\\theta_iθi​三、 查看详情

机器学习实战之logistic回归

...2.logistic回归分类函数  一、概述  分类技术是机器学习和数据挖掘应用中的重要组成部分。在数据科学中,大约70%的问题属于分类问题。解决分类问题的算法也有很多种,比如 查看详情

机器学习实战四(logisticregression)

机器学习实战四(LogisticRegression)这一章会初次接触最优化算法,在日常生活中应用很广泛。这里我们会用到基本的梯度上升法,以及改进的随机梯度上升法。Logistic回归优点:计算代价不高,易于理解和实现缺点:容易欠拟合... 查看详情

tensorflow实战google深度学习框架第五章5.2.1minister数字识别源代码(代码片段)

1importos2importtab3importtensorflowastf45print"tensorflow5.2"67fromtensorflow.examples.tutorials.mnistimportinput_data89‘‘‘10mnist=input_data.read_data_sets("/asky/tensorflow/mnist_data",one_hot=True 查看详情

机器学习--logistics(代码片段)

摘要1.Logistic回归分类2.梯度下降法3.代码实现与解释 Logistic回归逻辑斯特回归(logisticregression)是一种非常经典的分类方法。其用到的分类函数一般为Sigmoid函数,其函数形式为:  其图形表示如下: 从图中我们可... 查看详情

机器学习之logistic回归算法

1Logistic回归算法的原理1.1需要的数学基础我在看机器学习实战时对其中的代码非常费解,说好的利用偏导数求最值怎么代码中没有体现啊,就一个简单的式子:θ=θ - α Σ[(hθ(x(i))-y(i) )]*xi。经过查找资料才知道,... 查看详情

机器学习-逻辑回归与线性回归(代码片段)

logistic回归与线性回归实际上有很多相同之处,最大的区别就在于他们的因变量不同,其他的基本都差不多,正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalized linear model)。这一家族中的模型形... 查看详情

机器学习100天(十八):018逻辑回归python实战(代码片段)

机器学习100天,今天讲的是:逻辑回归Python实战。我们打开spyder。首先,导入标准库和数据集。#导入标准库importnumpyasnpimportmatplotlib.pyplotaspltimportpandasaspd#导入数据集dataset=pd.read_csv(\'data.csv\')X=dataset.iloc[:, 查看详情

机器学习100天(十八):018逻辑回归python实战(代码片段)

机器学习100天,今天讲的是:逻辑回归Python实战。我们打开spyder。首先,导入标准库和数据集。#导入标准库importnumpyasnpimportmatplotlib.pyplotaspltimportpandasaspd#导入数据集dataset=pd.read_csv(\'data.csv\')X=dataset.iloc[:, 查看详情