一、前述
Soft-Max是做多分类的,本身是哪个类别的概率大,结果就为对应的类别。为什么称之为Soft判别,原因是归一化之后的概率选择最大的作为结果,而不是只根据分子。
二、原理
sigmod函数:
SoftMax函数模型理解:
每一个分类的预测值的概率:
soft-max的损失函数:
当k=2时其实损失函数就是:(实际上就是逻辑回归)
三、代码
# softmax多分类 from sklearn import datasets from sklearn.linear_model import LogisticRegression iris = datasets.load_iris() print(iris['DESCR']) print(iris['feature_names']) X = iris['data'][:, (2, 3)] #一般是选花瓣来做特征。 print(X) y = iris['target'] #最终的分类号 softmax_reg = LogisticRegression(multi_class='multinomial', solver='sag', C=8, max_iter=1000)#采用的是多分类 c=8 L2正则中的阿尔法参数 #选用的是sag 随机梯度下降来求 Multionmial 是多分类 max_iter是迭代次数 softmax_reg.fit(X, y) print(softmax_reg.predict([[5, 2]]))# soft_max是直接选定结果,根据概率大的。 print(softmax_reg.predict_proba([[5, 2]]))