五、多分类,One-hot

这篇博客深入探讨了多分类问题中的一热编码方法,指出了其空间消耗和效率问题。同时,介绍了softmax函数及其在概率分布计算中的应用。接着,详细讲解了交叉熵损失函数的计算过程,并通过示例展示了如何使用numpy实现。文章最后通过一个实例演示了分类预测与实际标签的误差评估。
摘要由CSDN通过智能技术生成

1、耗费空间
2、数据量更新起来,效率低
3、遗漏很多重要信息

def one_hot(elements):
    pure = list(set(elements))

    vectors = []
    for e in elements:
        vec = [0] * len(pure)
        vec[pure.index(e)] = 1
        vectors.append(vec)

    return vectors

print(one_hot(["北京", "上海", "南京", "北京", "重庆", "深圳", "广州", "天津"]))

多分类问题

x = [1237, 4512, 7845]
y = [0, 0, 1, 0, 0]  # x 的真实分类,这里选定为第3类
x = np.array(normalize(x))
weights = np.random.random(size=(3, 5))
# print(np.dot(x, weight))  # logits  算子


def softmax(x):
    """处理数据"""
    x = np.array(x)
    x -= np.max(x)  # 防止数据过大
    return np.exp(x) / np.sum(np.exp(x))

# ic(softmax(np.dot(x, weight)))


def cross_entropy(y, yhat):
    """把真实值和预测值对比"""
    return -np.sum(y_i * np.log(yhat_i) for y_i, yhat_i in zip(y, yhat))

print(cross_entropy(y, softmax(np.dot(x, weights))))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值