【ML--04】第四课 logistic回归

2024-09-07 07:18
文章标签 logistic 04 回归 第四课 ml

本文主要是介绍【ML--04】第四课 logistic回归,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、什么是逻辑回归?

当要预测的y值不是连续的实数(连续变量),而是定性变量(离散变量),例如某个客户是否购买某件商品,这时线性回归模型不能直接作用,我们就需要用到logistic模型。

逻辑回归是一种分类的算法,它用给定的输入变量(X)来预测二元的结果(Y)(1/0,是/不是,真/假)。我们一般用虚拟变量来表示二元/类别结果。你可以把逻辑回归看成一种特殊的线性回归,只是因为最后的结果是类别变量,所以我们需要用胜算比取对数来作为因变量(Dependent Variable)。简单来说,逻辑回归是利用logit 函数拟合数据来预测某一个事件发生的概率的。

2、逻辑回归的性质

逻辑回归其实是属于广义线性模型(Generalized Linear Model)的一部分,用于处理线性回归没法处理的问题,
因为如果你用线性回归去处理逻辑回归的二元或类别输出变量时候,最后的结果就是你会得到极低的校正R平方。当然广义线性模型是一个统计上用的非常广的模型,它包含了不止线性回归,逻辑回归,还有泊松回归,ANOVA等等,感兴趣的可以继续进行这方面的阅读。

3、什么是广义线性模型(GLM)?

广义线性回归的基本公式是
g(E(y)) = α + βx1 + γx2
这里,g()是联系函数(link function),E(y) 是目标输出变量Y的期望值,而α + βx1 + γx2 是输入变量的线性组合(α,β,γ 都是需要用数据估计的参数)。联系函数的作用是将输出变量Y的期望值和输入变量X的线性组合可以连接起来,起到一个桥的作用。

4、如何求解逻辑回归的参数方程。

使用逻辑回归的分类算法时,可以通过梯度下降算法求得拟合的参数。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。

5、如何评价逻辑回归的模型表现

1、AIC准则
2、AUC/ROC曲线
3、混淆矩阵 (confusion matrix)

6、python玩转逻辑回归(单机)

#加载需要的包
from sklearn.linear_model import LogisticRegression
#假设在训练样本中你有输入变量X还有输出变量Y,在检验样本中你有输入变量x_test
#创建逻辑回归的目标模型
model=LogisticRegression()
# 用训练样本来生成你的模型与相应的参数
model.fit(X,y)
model.score(X,y)
#显示参数和截距
print('Coefficient:\n',model.coef_)
print('Intercept:\n',model.intercept_)
##用训练的模型来预测模型中的输出变量Y#
predicted= model.predict(x_test)

7、R语言玩转逻辑回归(单机)

#训练样本
x <- cbind(x_train,y_train)
# 用训练样本来生成你的模型与相应的参数
logistic<-glm(y_train~.,data= x,family='binomial')
# 显示逻辑回归的结果
summary(logistic)
#用训练的模型来预测模型中的输出变量Y#
predicted=predict(logistic,x_test)

8、spark MLlib 玩转逻辑回归(分布式)

import org.apache.spark.ml.classification.LogisticRegression// Load training data
val training = spark.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt")val lr = new LogisticRegression().setMaxIter(10).setRegParam(0.3).setElasticNetParam(0.8)// Fit the model
val lrModel = lr.fit(training)// Print the coefficients and intercept for logistic regression
println(s"Coefficients: ${lrModel.coefficients} Intercept: ${lrModel.intercept}")// We can also use the multinomial family for binary classification
val mlr = new LogisticRegression().setMaxIter(10).setRegParam(0.3).setElasticNetParam(0.8).setFamily("multinomial")val mlrModel = mlr.fit(training)// Print the coefficients and intercepts for logistic regression with multinomial family
println(s"Multinomial coefficients: ${mlrModel.coefficientMatrix}")
println(s"Multinomial intercepts: ${mlrModel.interceptVector}")

9、相关资料

机器学习:从编程的角度去理解逻辑回归
http://www.tuicool.com/articles/rimMba2

【机器学习经典算法源码分析系列】– 逻辑回归

http://www.tuicool.com/articles/Mf6fEzF

机器学习教程 十七-逻辑回归公式的数学推导
http://www.tuicool.com/articles/nIJZvam

这篇关于【ML--04】第四课 logistic回归的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144419

相关文章

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

浙大数据结构:04-树7 二叉搜索树的操作集

这道题答案都在PPT上,所以先学会再写的话并不难。 1、BinTree Insert( BinTree BST, ElementType X ) 递归实现,小就进左子树,大就进右子树。 为空就新建结点插入。 BinTree Insert( BinTree BST, ElementType X ){if(!BST){BST=(BinTree)malloc(sizeof(struct TNo

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

[苍穹外卖]-04菜品管理接口开发

效果预览 新增菜品 需求分析 查看产品原型分析需求, 包括用到哪些接口, 业务的限制规则 业务规则 菜品名称必须是唯一的菜品必须属于某个分类下, 不能单独存在新增菜品时可以根据情况选择菜品的口味每个菜品必须对应一张图片 接口设计 根据类型查询分类接口 文件上传接口 新增菜品接口 数据表设计 设计dish菜品表 和 dish_fl

【动手学深度学习】04 数据操作 + 数据预处理(个人向笔记)

数据操作 N维数组是机器学习和神经网络的主要数据结构其中 2-d 矩阵中每一行表示每一行表示一个样本 当维度来到三维的时候则可以表示成一张图片,再加一维就可以变成多张图片,再加一维则可以变成一个视频 访问元素 冒号表示从冒号左边的元素到冒号右边的前一个元素(开区间),其中如果左边为空,那么表示从第一个开始,如果右边为空,那么表示访问到最后一个,如果两边都为空,则表示全部访问其中一行中我们指

深度学习与大模型第3课:线性回归模型的构建与训练

文章目录 使用Python实现线性回归:从基础到scikit-learn1. 环境准备2. 数据准备和可视化3. 使用numpy实现线性回归4. 使用模型进行预测5. 可视化预测结果6. 使用scikit-learn实现线性回归7. 梯度下降法8. 随机梯度下降和小批量梯度下降9. 比较不同的梯度下降方法总结 使用Python实现线性回归:从基础到scikit-learn 线性

【python因果推断库11】工具变量回归与使用 pymc 验证工具变量4

目录  Wald 估计与简单控制回归的比较 CausalPy 和 多变量模型 感兴趣的系数 复杂化工具变量公式  Wald 估计与简单控制回归的比较 但现在我们可以将这个估计与仅包含教育作为控制变量的简单回归进行比较。 naive_reg_model, idata_reg = make_reg_model(covariate_df.assign(education=df[

【SpringMVC学习04】SpringMVC中的参数绑定总结

众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springmvc中如何接收前台页面的参数,即springmvc中的参数绑定问题。 1. 参数绑定的过程 我们可以回忆一下,在struts2中,是通过在Action中定义一个成员变量来接收前台传进来的参数,而在