【Logistic回归】原理及Python代码示例
来源:互联网 发布:tmplate可以写js 编辑:程序博客网 时间:2024/05/16 14:21
1、基本原理
1.1 Logistic分布
X是随机变量,X服从Logistic分布即X满足下式:
分布函数的图像如下:
X取值在正负无穷大之间,P(X)在0-1之间取值,呈S型单调上升曲线。
1.2 二项Logistic回归
二项Logistic回归中,X取值为实数,Y取值为0或1。Logistic回归模型如下:
x=(x1,x,2,...,xn,1),为样本输入,w=(w1,w2,...,wn,b)为权值向量,b为偏置。按照这个模型可以求得Y=1和Y=0的概率,将x分到概率大的那一类。
1.3 参数估计
给定训练集T={(x1,y1),(x2,y2),...,(xn,yn)},用极大似然估计法估计参数。设P(Y=1|x)=p,P(Y=0|X)=1-p,似然函数为
取对数得对数似然函数为:
对L(w)求最大值可得w的估计,常用方法是梯度下降法和拟牛顿法等。
1.4 多项式Logistic回归
以上介绍的二项Logistic回归模型是二类问题,只用于Y=0或1的情况。对于Y有多种类别的情况,可将其推广到多项式Logistic回归。设Y的取值为{1,2,...,K},则多项式Logistic回归模型为:
参数估计的方法也可从二项Logistic回归的方法推广过来。
2、Python代码示例
调用scikit-learn机器学习库实现朴素贝叶斯分类器。数据文件wine data 点这里下载,在右侧可以找到“wine”连接,下载wine.data文件。这是意大利三种酒的分类数据,包含了13种不同的酒的属性,共分成3类,分别标记为“1”、“2”、“3”。每行为一个样本数据,第一列为酒的种类,后13列为酒的属性,一共178个样本。源代码如下:
import scipy as spimport numpy as npfrom sklearn.cross_validation import train_test_splitfrom sklearn import metricsfrom sklearn.linear_model import LogisticRegressionx=np.loadtxt("wine.data" , delimiter = "," , usecols=(1,2,3,4,5,6,7,8,9,10,11,12,13) ) #获取属性集y=np.loadtxt("wine.data" , delimiter = "," , usecols=(0) ) #获取标签集print(x) #查看样本# 加载数据集,切分数据集80%训练,20%测试x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) #切分数据集#调用逻辑斯特回归model = LogisticRegression()model.fit(x_train, y_train)print(model) #输出模型# make predictionsexpected = y_test #测试样本的期望输出predicted = model.predict(x_test) #测试样本预测#输出结果print(metrics.classification_report(expected, predicted)) #输出结果,精确度、召回率、f-1分数print(metrics.confusion_matrix(expected, predicted)) #混淆矩阵
运行结果如下:
关于精确度、召回率、f1分数等概念请参考这篇文章最后部分。多次实验,发现分类正确率可达90%以上,分类效果不错。
- 【Logistic回归】原理及Python代码示例
- logistic回归算法原理及python实现
- Logistic回归简介及python代码实现
- Logistic回归python代码
- logistic回归原理解析及Python应用实例
- logistic回归原理解析及Python应用实例
- 机器学习 Logistic回归 原理Python实现
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- Logistic回归原理及公式推导
- seleniumWebDriver的API操作杀进程、截屏、执行js脚本_10_4
- 71:Construct Binary Tree from Preorder and Inorder Traversal
- RxAndroid学习之旅
- 微信公众平台开发-access_token获取及应用(含源码)
- 简单选择排序
- 【Logistic回归】原理及Python代码示例
- JavaScricp简介
- spring data 接口之 CrudRepository
- MySQL数据库调优技巧
- Codeforces 782C Andryusha and Colored Balloons(BFS)
- 看过
- JDK版本不对导致执行maven test时,spring无法正常加载的错误
- Storm基础:基本概念
- 随机数生成