终于来到logistic回归,logistic回归其实很简单,之前的说到的神经网络就用到了这个方法,其中最重要的就是使用了sigmoid损失函数。当然使用的方法也就最简单的梯度下降法,这里并没有使用之前神经网络的随机梯度下降法,也是为了简单起见。因为之前在神经网络里面使用过了,所以这篇文章就略微介绍下。
logistic回归是属于广义线性回归的一种,基本形式:
z=w0+w1*x1+w2*x2+...+wn*xn
s=1/(1+exp(-z))
损失函数:1/2* (s-y)^2
然后按照梯度下降方法求解参数即可
代码如下:
# -*- coding: UTF8 -*- """ author:luchi date:16/2/19 desc: logistic回归,最常用的回归问题,虽然是回归但是更多的是用到了分类的问题上 其主要的函数是sigmoid,以及使用的训练参数方法也是最常使用的梯度下降法 """ import math import numpy as np def loadDataset(): retDataset=[] retLabels=[] fr=open("testSet.txt") for str in fr.readlines(): strList=str.strip().split() retDataset.append([1.0,float(strList[0]),float(strList[1])]) retLabels.append(int(strList[2])) return retDataset,retLabels """ 计算sigmoid函数 """ def sigmoid(inX): return 1.0/(1+np.exp(-inX)) """ 梯度下降方法训练参数 """ def GradientDecrease(epoch,dataset,labels,alpha): weight=np.ones((len(dataset[0]),1)) #初始化权重 weightMat=np.mat(weight) datasetMat=np.mat(dataset) labelsMat=np.mat(labels).transpose() size=len(dataset) for i in range(epoch): result=datasetMat*weightMat result=sigmoid(result) error=result-labelsMat # print result # print 1-result grad=np.multiply(result,1-result) # print grad # print alpha*multiply(multiply(error,grad),datasetMat) nweightMat=np.multiply(np.multiply(error,grad),datasetMat) # print np.sum(nweightMat,axis=0)/float(size) weightMat=weightMat-alpha*(np.sum(nweightMat,axis=0)/float(size)).transpose() # print weightMat # print weightMat return weightMat def plotBestFit(weights): import matplotlib.pyplot as plt dataMat,labelMat=loadDataset() dataArr = np.array(dataMat) n = np.shape(dataArr)[0] xcord1 = []; ycord1 = [] xcord2 = []; ycord2 = [] for i in range(n): if int(labelMat[i])== 1: xcord1.append(dataArr[i,1]); ycord1.append(dataArr[i,2]) else: xcord2.append(dataArr[i,1]); ycord2.append(dataArr[i,2]) fig = plt.figure() ax = fig.add_subplot(111) ax.scatter(xcord1, ycord1, s=30, c='red', marker='s') ax.scatter(xcord2, ycord2, s=30, c='green') x = np.arange(-3.0, 3.0, 0.1) y = (-weights[0]-weights[1]*x)/weights[2] print len(y) ax.plot(x, y) plt.xlabel('X1'); plt.ylabel('X2'); plt.show() dataset,labels=loadDataset() # dataset=np.array([[1,1,2],[1,2,3]]) # labels=np.array([0,1]) weights=GradientDecrease(500,dataset,labels,alpha=0.25) print weights plotBestFit(np.array(weights))
结果如下:
从图中可以看出效果还不错。
logistic回归是一种比较简单的方法,与其说是回归,其实更多的可以将其列为二元分类问题,因为sigmoid函数的特点,而且据说logistic回归在现实工作中还运用的比较多,可见并不是都是要高大上的东西才有运用空间,只要实用,也是不错的
最后说一说在Python里面有自带的sum函数,例如计算a=[1,2,3] sum(a)即为6,但是程序中使用到的是numpy里面的sum函数,numpy里面的sum函数还可以设置第二个参数,sum(a,axis),其中a就是array数组或者矩阵,axis=0表示按列求和,axis=1表示按行求和,这点需要注意。另外如果涉及到array或者矩阵的math运算,需要使用numpy里面的相对应的math函数,因此程序中是import numpy as np,然后使用np.log()等等,这点需要注意的
相关推荐
在这个“MLA Review之三:朴素贝叶斯分类”的主题中,我们将会深入探讨朴素贝叶斯的工作原理、优缺点以及实际应用。 首先,朴素贝叶斯分类器的核心是贝叶斯定理,该定理表示了在已知某些证据的情况下,某一假设发生...
标题《MLA Handbook 第8版,PDF》和描述“PDF格式适配KINDLE的版本”,以及标签“MLA 英语写作”明确指向了该文档的性质和内容,即这是关于MLA(现代语言协会)格式的使用手册的PDF版本,它适配于KINDLE阅读器。MLA...
matlab匹配滤波代码MLA2_Tracking 这是用于记录,跟踪和分析MLA2实验动物位置的代码。 要在新实验中使用此代码,请从Github存储库中派生或下载并从那里开始使用新数据。 工作流程大纲 盆景: Video_Acquisition....
乳胶-mla-模板 用于生成 mla 格式论文的基本模板。 先决条件 make 一些最新的 LaTeX 发行版(TeXLive、MacTeX、MiKTeX 等) 安装和使用 $ git clone https://github.com/trotod/latex-mla-template <project> $ cd...
### MLA格式说明知识点详解 #### 一、MLA格式简介 MLA(Modern Language Association)格式是由美国现代语言协会提出的一种引用格式标准,主要用于英语语言与文学等人文学科的学术论文写作中。这一格式旨在为学术...
MLA 格式参考文献示例 MLA 格式参考文献示例文档提供了一些常见的文献类型的引用格式,包括期刊文章、专著、编撰书籍等。下面是对这些文献类型的详细解释和示例。 期刊文章 在 MLA 格式中,期刊文章的引用格式...
MLA JIL 文本数据 该存储库包含从 MLA 工作信息列表中挖掘的文本数据语料库。 这是一个正在进行的项目,旨在提供 (1) 供其他学者分析的纯文本数据资源,以及 (2) 分析用于修辞和写作研究的 MLA JIL 数据。 该项目的...
MLA(Modern Language Association)格式是一种广泛应用于人文科学领域的引用规范,主要用于撰写文学论文。MLA格式要求在论文中正确引用他人的观点和内容,确保学术诚信。以下是关于MLA格式的一些关键要点: 1. **...
"pa.mla.unit.addon:mla unit addon mod" 是一个针对特定游戏或模拟平台的扩展模组,主要由Python编程语言编写。这个模块可能是为了增强游戏中的单位(unit)功能,提供更多的自定义选项或者引入新的游戏机制。在...
首先,我们可以确定这份文件是关于MLA系列贴片电容的选型手册。MLA系列贴片电容是指特定型号的电容器,这类电容器通常被广泛应用于各种电子设备中,用以稳定电源电压、滤波、耦合和去耦等。选型手册的作用是在众多的...
MLA正文引用+参考文献.pdf 本文将详细介绍MLA格式的正文引用和参考文献的撰写要求。MLA格式是由美国现代语言学会(Modern Language Association)提出的,主要应用于人文学科、社会科学和自然科学等领域。 MLA格式...
在这个主题中,我们将深入探讨P2到P7的过程审核元素以及MLA(制造过程能力)的解读,结合实际的审核表格和案例分析,以帮助理解和应用这些概念。 P2-P7是VDA 6.3过程审核的核心部分,它们分别代表: 1. P2 - 过程...
《mla数据重建:Python库解析与应用》 在当今数据驱动的时代,高效的数据处理工具是科学研究和技术开发的重要支柱。本文将深入探讨“mla-data-reconstruction”这一Python库,它专为解析、重建和转换MLA(多光子...
MLA(Modern Language Association)引用格式是人文科学领域内最常用的文献引用风格之一,适用于文学、语言学、文化研究等学科的研究论文。本指南将详细介绍MLA第七版的基本引用规则,涵盖常见的书籍、电子资源及...
在MLA格式中,论文的基本结构包括:Introduction、Literature Review、Methodology、Results、Discussions和Conclusion等部分。Introduction是指论文的引言部分,包括研究的背景、意义和预期解决的问题。Literature ...
《美硕 MLA 双稳态继电器产品说明书》是一份详细阐述美硕品牌MLA系列双稳态继电器技术规格、工作原理、安装与使用的参考资料。这份说明书的重要性在于,它为使用者提供了全面了解和安全操作该产品的关键信息。 首先...
MLA格式规范详解 MLA格式是Modern Language Association(现代语言学会)所制定的格式规范,广泛应用于人文学科、社会科学和自然科学等领域。MLA格式的主要特点是采用括号式注释,注释内容包括作者姓氏、作品名称、...
监督学习是机器学习中最常见的一种形式,它依赖于带有标签的数据集进行训练,例如在分类或回归问题中。会议中可能涉及的算法有支持向量机(SVM)、决策树、随机森林和神经网络等。这些模型在图像分类、文本分类、...
正在进行的KKP用户群集MLA(监视日志和警报)实施。 要求 至少2个集群: 对于“种子群集”:4个CPU,16 Gi的RAM(例如T3A.xlarge ) 对于“用户群集”:1个CPU,2个Gi或RAM(例如T3A.small ) (可选地,用户群集...