Fork me on GitHub

【机器学习】--线性回归中soft-max从初始到应用

一、前述

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]]))

 

posted @ 2018-01-24 01:00  L先生AI课堂  阅读(944)  评论(0编辑  收藏  举报