逻辑回归原理及代码实例

三种实现逻辑回归算法的代码 方式一: #!/usr/bin/python # -*- coding:utf-8 -*- #鸢尾花分类 #1.首先导入包: import numpy as np from sklearn.linear_model import LogisticRegression import matplotlib.pyplot as plt import matplotlib as mpl from sklearn import preprocessing import pandas as pd from skl. 阅读详情

逻辑回归基本原理:
(1)找一个合适的预测函数(Andrew Ng的公开课中称为hypothesis),一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程时非常关键的,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。

(2)构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值与实际类别的偏差。

(3)显然,J(θ)函数的值越小表示预测函数越准确(即h函数越准确),所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。

优点:

1)预测结果是界于0和1之间的概率;

2)可以适用于连续性和类别性自变量;

3)容易使用和解释;

缺点:

1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。​需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;

2)预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着​log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。

代码实例:

def logistic():
    """
    逻辑回归做二分类进行癌症预测(根据细胞的属性特征)
    :return: NOne
    """
    # 构造列标签名字
    column = ['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/breast-cancer-wisconsin.data", names=column)

    print(data)

    # 缺失值进行处理
    data = data.replace(to_replace='?', value=np.nan)

    data = data.dropna()

    # 进行数据的分割
    x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]], data[column[10]], test_size=0.25)

    # 进行标准化处理
    std = StandardScaler()

    x_train = std.fit_transform(x_train)
    x_test = std.transform(x_test)

    # 逻辑回归预测
    lg = LogisticRegression(C=1.0)

    lg.fit(x_train, y_train)

    print(lg.coef_)

    y_predict = lg.predict(x_test)

    print("准确率:", lg.score(x_test, y_test))

    print("召回率:", classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "恶性"]))

    return None
逻辑回归 原理与代码实例讲解 逻辑回归:原理与代码实例讲解 1. 背景介绍 1.1 问题的由来 在数据分析和机器学习领域,逻辑回归主要用于解决二分类问题。面对许多现实世界的任务,比如预测某人是否会购买产品、电子邮件是否为垃圾邮件、病人是否患有某种疾病等,我们需要一种方法来量化输 阅读详情

相关推荐

逻辑回归(Logistic Regression) 原理与代码实例讲解

逻辑回归(Logistic Regression) - 原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍

AI大模型应用之禅 1443

头歌实训平台—实用机器学习-2023-实验3逻辑回归算法

通过分析年龄、性别、体质指数、平均血压、疾病指数等指标,判断一个人是否换糖尿病,Y=0表示未患病,Y=1表示患病,这里的响应变量是一个两点(0-1)分布变量,它就不能用h函数连续的值来预测因变量Y(只能取0或1)。逻辑回归模型的求解即:给出一组m个样本数据,每个样本数据有n个特征,并且带有标记0或者1,代表属于哪一类,为了把输入的参数代入到预测函数后始终是一个0到1之间的数,这样我们可以把0,1看做两个类别。为了完成本关任务,你需要掌握:1.逻辑回归算法的原理 2.代码实现逻辑回归算法。

m0_56803218的博客 2300

逻辑回归原理与代码实例讲解

逻辑回归原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来 逻辑回归(Logistic Regression)作为机器

AI天才研究院 1426

逻辑回归原理详解-附案例及源码(一)

对逻辑回归涉及数学基础进行讲解

qq_42928743的博客 3159

H5 获取手机GPS坐标

只要手机有GPS模块,可以用HTML5的Geolocation接口获取 在HTML5中,geolocation作为navigator的一个属性出现,它本身是一个对象,拥有三个方法: getCurrentPosition watchPosition clearWatch 1.简单 function getLocation(){ if(navigator.geolocation){ //判断是否有这个对象 navigator.geoloc

达拉崩巴斑得贝迪卜多比鲁翁_ 4670

嵌入式Linux Qt应用程序卡死问题分析记录

根据应用和系统层面的分析,软件功能异常和卡死现象的原因是系统控制台/dev/console阻塞导致依赖其的相关应用和命令异常。系统控制台/dev/console阻塞的原因还未确定,最近的软件版本和其他测试同事未出现该问题,所以很大可能是串口线的问题,待后续有进展了继续更新。

V10_x的博客 1648

头歌逻辑回归算法

通过分析年龄、性别、体质指数、平均血压、疾病指数等指标,判断一个人是否换糖尿病,Y=0表示未患病,Y=1表示患病,这里的响应变量是一个两点(0-1)分布变量,它就不能用h函数连续的值来预测因变量Y(只能取0或1)。逻辑回归模型的求解即:给出一组m个样本数据,每个样本数据有n个特征,并且带有标记0或者1,代表属于哪一类,为了把输入的参数代入到预测函数后始终是一个0到1之间的数,这样我们可以把0,1看做两个类别。函数看成概率p,假设p=0.8,此时概率值离1很近,可以将数据类别判别为1;

2302_80089843的博客 2344

OCTA-500:用于光学相干断层扫描血管造影研究的视网膜数据集|文献速递-基于生成模型的数据增强与疾病监测应用

数据集提供了丰富的图像和注释,包括两种模态(OCT/OCTA体积)、六种投影类型、四种文本标签(年龄/性别/眼别/疾病)以及七种分割标签(大血管/毛细血管/动脉/静脉/2D FAZ/3D FAZ/视网膜层)。我们介绍了新的 OCTA-500 数据集,该数据集包含来自 500 名受试者的 OCTA 成像,并提供了丰富的图像和标注集。(C) OCTA-500 切片的人工标注示例。图 4. OCTA-500 数据集中文本标签的统计直方图:(a) 性别,(b) 眼别,(c) 年龄,(d) 疾病。

weixin_38594676的博客 1439

机器学习之逻辑回归Logistic Regression(python代码实现)

逻辑回归(Logistic Regression) 逻辑回归:是一个非常经典的算法。是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某种事物的可能性。 注:这里用的是“可能性”,而非数学上的“概率”,logisitc回归的结果并非数学定义中的概率值,不可以直接当做概率值来用。该结果往往用于和其他特征值加权求和,而非直接相乘。 逻辑回归与线性回归 逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模..

记录知识,学习分享 1万+

UE4载具性能调优指南:从参数设置到实战优化

本文详细解析了UE4载具性能调优的关键技巧,从WheeledVehicle类构建到轮子参数、传动系统设置,再到物理属性与操控调校。通过实战案例分享,帮助开发者优化载具的速度、加速度等核心性能,提升游戏体验。特别适合需要精细调校载具物理特性的开发者参考。

weixin_29019241的博客 469

SPECweb2009调优指南

 SPECweb2009 是衡量 Web 服务器性能和能效的标准化基准,可以对 Web 服务器的并发数进行性能测试,评测 Web 服务器能够支持的最大同时连接数的客户端/服务器(每秒能够响应的最大请求数)。为充分利用服务器性能,提升SPECweb2009测试结果,可通过增大系统进程数、优化服务器软件参数、绑核以及优化参数等。

developersupport的博客 2607
上一篇: 线性回归算法及案例
下一篇: 机器学习——数据清洗,特征选择
CoderMateng
博客等级 码龄7年 8粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值