根据模型的数学原理进行简单的代码自我复现以及使用测试,仅作自我学习用。模型原理此处不作过多赘述,仅罗列自己将要使用到的部分公式。代码框架部分参照了以下视频中的内容。清华博士爆肝300小时录制!!机器学习入门必备的10个经典算法(原理+复现+实验)被他讲得如此清晰!_哔哩哔哩_bilibili
如文中或代码有错误或是不足之处,还望能不吝指正。
Softmax是logistic回归的一个“一般形式”。基本思想就是在线性回归的基础上,使用一个单调可微的函数,使得预测值变为1个趋近于0/1的“预测概率”,与真实的标记y联系起来。在Logistics回归中,这个函数为
其中
。
而softmax将其一般化为多分类任务,单调可微的函数为
。
将预测的概率与真实值的标签分布的距离作为损失值,这种损失被称为交叉熵函数
对其进行梯度下降,可以得到
。其中
为学习率,
为以每次使用到的样本个数。
实际在sklearn中,是可以采取不同的优化策略的,如牛顿法、共轭梯度下降、梯度下降等方法。
在sklearn中,Logistics回归是具有"l1正则"、"l2正则"以及"弹性网络"的参数的,但是在我自己实现的正则化下,对于没有进行过特殊处理的数据,并没有明显的改善过拟合情况。所以此处不再进行试验。
import numpy as np
import pandas as pd
import random
from sklearn.preprocessing import PolynomialFeatures
from sklearn.utils import shuffle
class SoftMax:
def pre

最低0.47元/天 解锁文章
377

被折叠的 条评论
为什么被折叠?



