机器学习二元分类 & 二元交叉熵 & 二元分类例子

二元交叉熵损失函数

深度学习中的二元分类损失函数通常采用二元交叉熵(Binary Cross-Entropy)作为损失函数。

二元交叉熵损失函数的基本公式是:

cpp 复制代码
L(y, y_pred) = -y * log(y_pred) - (1 - y) * log(1 - y_pred)

其中,y是真实标签,y_pred是模型预测的概率。

二元交叉熵的原理

cpp 复制代码
当预测错误时:如y_pred=1, y=0 和 y_pred=0,y=1. 
则二元交叉熵损失函数结果为正无穷大。

二元分类代码例子

python 复制代码
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 加载数据集
data = load_breast_cancer()
X = data.data
y = data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建模型
model = LogisticRegression()
# 定义损失函数
loss_fn = lambda y_true, y_pred: -y_true * log(y_pred) - (1 - y_true) * log(1 - y_pred)
# 训练模型
for epoch in range(100):  # 假设我们进行100轮训练
    # 前向传播
    y_pred = model.predict(X_train)
    loss = loss_fn(y_train, y_pred)
    
    # 反向传播
    model.update(X_train, y_train)
    
    # 输出训练进度
    if (epoch+1) % 10 == 0:
        print(f"Epoch {epoch+1}/{100}, Loss: {loss}")
相关推荐
yanxing.D6 小时前
OpenCV轻松入门_面向python(第四章色彩空间类型转换)
人工智能·python·opencv
knqiufan6 小时前
LangChain 表达式语言 (LCEL):从序列链接到并行执行
python·langchain·llm·rag
qq_433554546 小时前
C++ Bellman-Ford算法
开发语言·c++·算法
何妨重温wdys6 小时前
跳跃游戏(二):DFS 求解最少跳跃次数与最优路径
算法·深度优先
星期天要睡觉7 小时前
(纯新手教学)计算机视觉(opencv)实战十二——模板匹配(cv2.matchTemplate)
开发语言·python·opencv·计算机视觉
guygg887 小时前
基于电力系统潮流计算的 MATLAB GUI 开发
python·matlab
j_xxx404_7 小时前
数据结构:单链表的应用(力扣算法题)第二章
c语言·数据结构·算法·leetcode
大学生毕业题目7 小时前
毕业项目推荐:51-基于yolov8/yolov5/yolo11的反光衣检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·目标检测·cnn·pyqt·反光衣检测
小喵要摸鱼7 小时前
支持向量机(SVM)
机器学习·支持向量机
云天徽上7 小时前
【数据可视化-103】蜜雪冰城门店分布大揭秘:2025年8月数据分析及可视化
python·信息可视化·数据挖掘·数据分析·数据可视化