关于LogisticRegression及其应用

1.算法简介

Logistic回归是在线性回归基础上,针对线性回归的缺陷(误差统计独立假设,从属关系函数非概率)进行改进后的算法。它将目标变量进行转换后,在此基础上建立线性模型。变换过程为logit transformation:logit(pro) = log(pro) / (1 - log(pro))。其逆变换为sigmoid transformation:sigm(x) = 1 / (1 + e ^ (-x)),以及结果模型。

之后确定下估价函数x中线性表达到参数即可:x = sigma(w[i] * a[i]),其中w为带确定权值,a为属性值。对于给定的训练样例,或者是待预测样例,通过估价函数给出估值,再经过sigmoid变换将R上到估值转换为[0, 1]上到概率值。

以上为logistc回归的基本思想。在实验中,我们使用logistic回归来处理分类问题。如何实现呢?

事实上,任何回归技术,无论是线性到还是非线性的,都可以用来分类。技巧是对每一个类执行一个回归,是属于该类的训练实例的输出结果为1,而不属于该类到输出结果为0。得到各类到回归函数(亦称为从属关系函数,membership function),对于给定的未知类的测试实例,计算每个回归估价,并选择其中最大到作为分类结果。这种方法有时称为多反馈回归(multi-response regression)。

2.函数库api

使用numpy, matplotlib, sklearn 可以在python上实现大多机器学习算法。numpy 为python的科学计算库,主要提供数据结构支持;matplotlib 为可视化函数库,有出色的显像功能;sklearn 为机器学习算法库,提供丰富的算法接口。

Logistic Regression是sklearn.linear_model下的一个算法(类)。主要api如下:

Attributes:

  • coef_
  • intercept_

注*:coef(ficients)为所确定的参数,intercept为常数参数

Methods:

  • fit(X, y[, sample_weight])
  • predict(X)
  • score(X, y[, sample_weight])

注*:fit为对给定的训练实例及其结果建立回归模型,predict再模型上进行预测,score为训练实例得分(按准确率计算)。注意这里的回归模型直接给出分类,而不是每个类的概率值。

3.算法应用

  1. 二分类问题
  2. 多分类问题

1.二分类问题
logistic regression 可以在回归模型下直接处理二分类问题。由于二分类中只有两类结果,非此即彼,因此并不需要建立两个成员函数。直接将回归值与0.5做比较,大于0.5的分为一类,否则分为另外一类。

在下面的实验中,通过正态分布生成数据,并加入高斯噪音,作为实验数据。

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# Synthesize the normal distributed data with Gaussian noise
n_samples = 30
np.random.seed(0)
X = np.random.normal(size=n_samples)
X[X > 0] *= 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值