一文彻底搞懂机器学习 - 逻辑回归(Logistic Regression)
**在机器学习中,****逻辑回归(Logistic Regression)**尽管名称中带有“回归”,但实际上是一种专为二分类问题设计的线性模型。
逻辑回归的实现基于线性回归模型,并在此基础上引入了sigmoid函数作为映射工具。Sigmoid函数的作用是将线性回归的输出(其值域原本为整个实数范围)巧妙地压缩至(0, 1)区间,从而该输出可以被解释为属于某一类别的概率。
Logistic Regression
一、逻辑回归
****逻辑回归(Logistic Regression)********是什么?****逻辑回归是一种广泛用于二分类问题的线性模型,它的目标是找到一个函数,将输入特征映射到(0, 1)之间的概率值,以预测目标变量的分类。
逻辑回归如何将输出映射到(0,1)?逻辑回归通过将线性回归模型的预测结果经过一个非线性函数——sigmoid函数进行变换,从而将输出映射到(0,1)之间。
********逻辑回归如何进行训练?**逻辑回归的训练过程包括准备数据、定义模型、构造损失函数、优化模型参数、评估模型性能和应用模型等步骤。**通过迭代优化模型参数,逻辑回归可以找到最佳的分类边界,从而实现对数据的准确分类。
逻辑回归使用对数似然损失函数来衡量模型的预测结果与实际标签之间的差异。为了找到最佳的模型参数θ,需要最小化损失函数J(θ)。这通常采用随机梯度下降法或批量梯度下降法来优化模型参数。
逻辑回归决策边界是什么?逻辑回归的决策边界是模型预测类别时所使用的分割超平面(在二维空间中为一条直线,三维空间中为一个平面,以此类推)。
逻辑回归模型通过线性函数计算出一个分数,然后使用sigmoid函数将这个分数转换为概率,最终根据设定的阈值(通常是0.5)来决定样本属于哪个类别。
二、Pytorch实现逻辑回归
基于PyTorch实现逻辑回归模型并进行可视化涉及几个关键步骤:****生成数据集、定义逻辑回归模型、初始化模型、损失函数和优化器、训练模型,以及绘制决策边界******。**
以下是一个简化的例子,展示如何使用PyTorch实现逻辑回归。
- 生成数据集:
- 生成一个二维数据集,其中 X 是输入特征,y 是标签(基于简单的线性决策边界)。
- 定义逻辑回归模型:
- 使用 nn.Linear 定义线性层,并使用 nn.Sigmoid 将输出转换为概率。
- 初始化模型、损失函数和优化器:
- 使用二元交叉熵损失(BCELoss)作为损失函数,使用随机梯度下降(SGD)作为优化器。
- 训练模型:
- 进行前向传播计算输出,计算损失,进行反向传播并更新模型参数。
- 绘制决策边界:
- 创建一个网格并预测每个点的类别,使用Matplotlib绘制决策边界和数据点。
import torch``import torch.nn as nn``import torch.optim as optim``import numpy as np``import matplotlib.pyplot as plt`` ``# 生成一个二维数据集``np.random.seed(0)``num_samples = 100``X = np.random.randn(num_samples, 2)``y = (X[:, 0] + X[:, 1] > 0).astype(int) # 简单的线性决策边界`` ``# 将数据转换为Tensor``X_tensor = torch.tensor(X, dtype=torch.float32)``y_tensor = torch.tensor(y, dtype=torch.long)`` ``# 定义逻辑回归模型``class LogisticRegression(nn.Module):` `def __init__(self, input_dim):` `super(LogisticRegression, self).__init__()` `self.linear = nn.Linear(input_dim, 1)` `self.sigmoid = nn.Sigmoid()` ` def forward(self, x):` `out = self.linear(x)` `return self.sigmoid(out)`` ``# 初始化模型、损失函数和优化器``input_dim = 2``model = LogisticRegression(input_dim)``criterion = nn.BCELoss() # Binary Cross Entropy Loss``optimizer = optim.SGD(model.parameters(), lr=0.01)`` ``# 训练模型``num_epochs = 1000``for epoch in range(num_epochs):` `model.train()` ` # 前向传播` `outputs = model(X_tensor).squeeze()` `labels = y_tensor.float() # BCELoss需要浮点数标签` ` # 计算损失` `loss = criterion(outputs, labels)` ` # 反向传播和优化` `optimizer.zero_grad()` `loss.backward()` `optimizer.step()` ` if (epoch+1) % 100 == 0:` `print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')`` ``# 绘制决策边界``def plot_decision_boundary(model, X):` `x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1` `y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1` `xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.01),` `np.arange(y_min, y_max, 0.01))` `grid = np.c_[xx.ravel(), yy.ravel()]` `preds = model(torch.tensor(grid, dtype=torch.float32)).detach().numpy().ravel()` ` plt.contourf(xx, yy, preds.reshape(xx.shape), alpha=0.8)` `plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', marker='o')` `plt.show()`` ``# 绘制决策边界``model.eval()``with torch.no_grad():` `plot_decision_boundary(model, X)
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈