分类算法之逻辑回归

逻辑回归(Logistic Regression),简称LR。它的特点是能够是我们的特征输入集合转化为0和1这两类的概率。一般来说,回归不用在分类问题上,因为回归是连续型模型,而且受噪声影响比较大。如果非要应用进入,可以使用逻辑回归。了解过线性回归之后再来看逻辑回归可以更好的理解。

优点:计算代价不高,易于理解和实现

缺点:容易欠拟合,分类精度不高

适用数据:数值型和标称型

逻辑回归

对于回归问题后面会介绍,Logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测。g(z)可以将连续值映射到0和1上。Logistic回归用来分类0/1问题,也就是预测结果属于0或者1的二值分类问题

映射函数为:

$$g\left({z}\right){=}\frac{1}{1+e^-z}$$

其中$$z{=}\theta{0}+\theta{1}{x{1}}+\theta{2}{x_{2}}{+...}$$

映射出来的效果如下如:

sklearn.linear_model.LogisticRegression

逻辑回归类

class sklearn.linear_model.LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)""":param C: float,默认值:1.0:param penalty: 特征选择的方式:param tol: 公差停止标准"""
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
LR = LogisticRegression(C=1.0, penalty='l1', tol=0.01)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
LR.fit(X_train,y_train)
LR.predict(X_test)
LR.score(X_test,y_test)
0.96464646464646464
# c=100.0
0.96801346801346799

属性

coef_

决策功能的特征系数

Cs_

数组C,即用于交叉验证的正则化参数值的倒数

特点分析

线性分类器可以说是最为基本和常用的机器学习模型。尽管其受限于数据特征与分类目标之间的线性假设,我们仍然可以在科学研究与工程实践中把线性分类器的表现性能作为基准。

逻辑回归算法案例分析

良/恶性乳腺癌肿瘤预测

原始数据的下载地址为:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/

数据预处理

import pandas as pd
import numpy as np# 根据官方数据构建类别
column_names = ['Sample code number','Clump Thickness','Uniformity of Cell Size','Uniformity of Cell Shape','Marginal Adhesion','Single Epithelial Cell Size','Bare Nuclei','Bland Chromatin','Normal Nucleoli','Mitoses','Class'],data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/',names = column_names)# 将?替换成标准缺失值表示
data = data.replace(to_replace='?',value = np.nan)# 丢弃带有缺失值的数据(只要一个维度有缺失)
data = data.dropna(how='any')data.shape

处理的缺失值后的样本共有683条,特征包括细胞厚度、细胞大小、形状等九个维度

准备训练测试数据

from sklearn.cross_validation import train_test_splitX_train,X_test,y_train,y_test = train_test_split(data[column_names[1:10]],data[column_names[10]],test_size=0.25,random_state=42)# 查看训练和测试样本的数量和类别分布
y_train.value_counts()y_test.value_counts()

使用逻辑回归进行良/恶性肿瘤预测任务

from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression# 标准化数据,保证每个维度的特征数据方差为1,均值为0。使得预测结果不会被某些维度过大的特征值而主导
ss = StandardScaler()X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)# 初始化 LogisticRegressionlr = LogisticRegression(C=1.0, penalty='l1', tol=0.01)# 跳用LogisticRegression中的fit函数/模块来训练模型参数
lr.fit(X_train,y_train)lr_y_predict = lr.predict(X_test)

性能分析

from sklearn.metrics import classification_report# 利用逻辑斯蒂回归自带的评分函数score获得模型在测试集上的准确定结果
print '精确率为:',lr.score(X_test,y_test)print classification_report(y_test,lr_y_predict,target_names = ['Benign','Maligant'])

sklearn分类器算法:逻辑回归及案例分析相关推荐

  1. Machine Learning | (4) Scikit-learn的分类器算法-逻辑回归

    Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集 ...

  2. 机器学习回归算法—岭回归及案例分析

    一.回归算法之岭回归 具有L2正则化的线性最小二乘法.岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息.降低精度为代价获 ...

  3. sklearn实战之逻辑回归与制作评分卡

    sklearn实战系列: (1) sklearn实战之决策树 (2) sklearn实战之随机森林 (3) sklearn实战之数据预处理与特征工程 (4) sklearn实战之降维算法PCA与SVD ...

  4. sklearn实战-----5.逻辑回归与评分卡

    1 概述 1.1 名为"回归"的分类器 在过去的四周中,我们接触了不少带"回归"二字的算法,回归树,随机森林的回归,无一例外他们都是区别于分类 算法们,用来处理 ...

  5. 逻辑回归之案例:癌症分类预测-良/恶性乳腺癌肿瘤预测

    逻辑回归之案例:癌症分类预测-良/恶性乳腺癌肿瘤预测 数据介绍 原始数据的下载地址:https://archive.ics.uci.edu/ml/machine-learning-databases/ ...

  6. 《菜菜的机器学习sklearn课堂》逻辑回归

    逻辑回归 概述:名为"回归"的分类器 为什么需要逻辑回归? sklearn中的逻辑回归 linear_model.LogisticRegression 二元逻辑回归的损失函数 损失 ...

  7. sklearn学习(逻辑回归)

    逻辑回归 1 概述 1.1 名为"回归"的分类器 优点: 1.3 sklearn中的逻辑回归 逻辑回归相关的类 说明 其他会涉及的类 说明 2.1 二元逻辑回归的损失函数 pena ...

  8. 逻辑回归二分类算法python_机器学习第七周--二分类算法逻辑回归

    一.Logistic分类算法 逻辑回归(Logistic Regression, LR)是传统机器学习中的一种分类模型,由于算法的简单和高效,解释性好以及容易扩展等优点,被广泛应用于点击率预估(CTR ...

  9. 【sklearn学习】逻辑回归

    逻辑回归的优点: 使用于分类问题中的回归算法 逻辑回归对线性关系的拟合效果好 逻辑回归计算快 逻辑回归返回的分类结果不固定,而是以小数的形式呈现的类概率数字 逻辑回归有抗噪能力强的特点,在小数据集上表 ...

最新文章

  1. Android下的动画
  2. python常用模块大全总结-Python 常用模块大全(整理)
  3. MySQL - Explain深度剖析
  4. MongoDB数据库(5.mongodb的聚合操作以及mongodb的高级查询2)
  5. Bw树:新硬件平台的B树(内存数据库中的b树索引)
  6. 转 Python爬虫入门二之爬虫基础了解
  7. CRM呼叫中心采用轮询和SNS服务器两种方式的架构
  8. ref的mysql_ref:Mysql授权远程登陆
  9. ORACLE HANDBOOK系列之十:字符集、编码以及Oracle的那些事
  10. acl在内核里的位置_Windows 注入篇 之 内核 APC 注入
  11. 多线程编程(3): 使用互斥锁同步线程
  12. 工作几年只会增删改查怎么了,大神们都是从第一行代码开始的!
  13. PADS2007_教程之PADS LAYOUT
  14. 基于SSM的论坛系统
  15. 最新版本kindle安卓app导入mobi图书和设置自定义字体的方法2020.01.09
  16. IDEA打包jar-解决错误: 找不到或无法加载主类 main
  17. docker卸载mysql_Docker卸载镜像
  18. 基础篇:6.3)形位公差-要素 Feature
  19. 台式电脑计算机里的共享网络,如何实现笔记本和台式机两台电脑共享上网
  20. 从零基础到斩获BAT算法岗offer,围观复旦大佬的秋招之路

热门文章

  1. 模板vs定制 门店小程序该如何选择?
  2. 【转载】浅谈React编程思想
  3. 1000瓶药水,1瓶有毒药,几只小白鼠能够找出毒药
  4. 类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法...
  5. __ATTRIBUTE__ 你知多少?
  6. Linq 实现sql中的not in和in条件查询
  7. 对每个小组的评论和建议
  8. SQL获取变量类型以及变量最大长度
  9. OA项目10:部门管理的三个细节问题的解决及处理懒加载问题
  10. 对std::listT的封装