Softmax回归是什么?(多元逻辑回归)
逻辑回归模型经过推广,可以直接支持分类多个类别,而不需要训练并组合多个二元分类器。这就是softmax回归,或叫“多元逻辑回归”。Softmax是Logistic回归在多分类问题中的推广。对于三个及以上的分类问题,要采用Softmax作为输出层的激活函数。
Sk(x)=xT θk (类k的Softmax分数)
def softmax(z): exp_sum = 0for k in range(z.shape[0]):exp_sum = exp_sum + np.exp(z[k])a = np.exp(z)/exp_sum #按元素做除法return a
Softmax实现
在具体的模型实现时,softmax搭配categorical_crossentropy函数使用,该函数公式如下:
因为yi,要么是0,要么是1。而当yi等于0时,结果就是0,当且仅当yi等于1时,才会有结果。也就是说categorical_crossentropy只专注与一个结果,因而它一般配合softmax做单标签分类
使用鸢尾花数据采集softmax的实例:
X = iris["data"][:, (2, 3)] # petal length, petal width
y = iris["target"]softmax_reg = LogisticRegression(multi_class="multinomial",solver="lbfgs", C=10, random_state=42)
softmax_reg.fit(X, y)
x0, x1 = np.meshgrid(
np.linspace(0, 8, 500).reshape(-1, 1),
np.linspace(0, 3.5, 200).reshape(-1, 1),
)
X_new = np.c_[x0.ravel(), x1.ravel()]y_proba = softmax_reg.predict_proba(X_new)
y_predict = softmax_reg.predict(X_new)zz1 = y_proba[:, 1].reshape(x0.shape)
zz = y_predict.reshape(x0.shape)plt.figure(figsize=(10, 4))
plt.plot(X[y==2, 0], X[y==2, 1], "g^", label="Iris virginica")
plt.plot(X[y==1, 0], X[y==1, 1], "bs", label="Iris versicolor")
plt.plot(X[y==0, 0], X[y==0, 1], "yo", label="Iris setosa")from matplotlib.colors import ListedColormap
custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])plt.contourf(x0, x1, zz, cmap=custom_cmap)
contour = plt.contour(x0, x1, zz1, cmap=plt.cm.brg)
plt.clabel(contour, inline=1, fontsize=12)
plt.xlabel("Petal length", fontsize=14)
plt.ylabel("Petal width", fontsize=14)
plt.legend(loc="center left", fontsize=14)
plt.axis([0, 7, 0, 3.5])
save_fig("softmax_regression_contour_plot")
plt.show()
predict 返回预测结果
predict_proba 返回预测的概率值。
Softmax回归是什么?(多元逻辑回归)相关推荐
- 《人工智能》机器学习 - 第5章 逻辑回归(四 多元逻辑回归实战)
5.4多元逻辑回归实战 5.4.1多元逻辑回归实战之预测病马的死亡率 本次实战内容,将使用Logistic回归来预测患疝气病的马的存活问题.原始数据集下载地址: http://archive.ics. ...
- 神经网络(二):Softmax函数与多元逻辑回归
文章目录 一. Softmax函数与多元逻辑回归 二.广告时间 一. Softmax函数与多元逻辑回归 为了之后更深入地讨论神经网络,本节将介绍在这个领域里很重要的softmax函数,它常被用来定义神 ...
- mllib逻辑回归 spark_Spark Mllib中逻辑回归
1相关参数设置 <1> setMaxIter():设置最大迭代次数 <2> setRegParam(): 设置正则项的参数,控制损失函数与惩罚项的比例,防止整个训练过程过拟合, ...
- 逻辑回归和多项逻辑回归
文章目录 一.逻辑回归 逻辑回归模型 极大似然估计法求w 损失函数 梯度下降求解w 二.多项逻辑回归 三.问题 1.逻辑回归如何处理多标签问题? 2.为什么不用平方误差(MSE)作为Logistic回 ...
- R语言使用broom包将回归模型(线性回归、逻辑回归、比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集
R语言使用broom包将回归模型(线性回归.逻辑回归.比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集 目录
- 回归、线性回归和逻辑回归【逻辑回归部分待完成】
一.回归 "回归"这个词很有误导性,在陈希孺的<概率论与数理统计>中对这个词的来源有过解释.是个外国人,在做数据分析的时候,发现将数据画出来后,不管大的小的数据都会有一 ...
- Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS
Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多 ...
- 【逻辑回归算法】{2} ——逻辑回归损失函数的梯度
目标:求出逻辑回归损失函数的最小值. 逻辑回归的损失函数: 逻辑回归损失函数的梯度: 计算预测函数Sigmoid函数的导数: 代入: 计算过程: 最后得出逻辑回归损失函数的梯度: 回顾一下线性回归代价 ...
- 【数学建模】统计领域的逻辑回归(分类变量相关性检验、优势比OR、包含分类变量的多元逻辑回归)
统计领域的逻辑回归 0 指导方针 1 分类变量之间的相关性检验 1.1 分类变量相关性的示例 1.2 列联表分析 1.3 信用风险建模案例 1.3.1 制作两分类变量交叉表并求解交叉频率 1.3.2 ...
- 【机器学习之逻辑回归】sklearn+python逻辑回归详解
文章目录 一.逻辑回归 二.算法原理介绍 三.代码实现 3.1 sklearn-API介绍 3.2 sklearn-代码实现 3.3 python手写代码实现 四.总结 五.算法系列 一.逻辑回归 逻 ...
最新文章
- PTA基础编程题目集-7-4 BCD解密
- Linux 环境下NFS 服务搭建
- 关于软件产品服务有感
- 免费图标下载:100个手绘的PSD图标
- 数据库分组选 第一条
- Could not delete .........May be locked by another process.
- oracle 设置忽略关键字,记oracle里continue关键字的陷阱
- wincc 如何实现上下箭头对数字的增减_由箭头函数引发的对一些概念的认识
- C# 设置Excel中的数字字符串格式
- mybatis的startPage使用
- Mac生成和查看SSH Key
- ES6 学习内容记录
- 程序员的数学思维修炼(趣味解读)还有哪些进制
- 计算机科学与技术优劣,计算机科学与技术专业优势多多
- 抓取国家统计局2018年的省市区街道数据
- java面试题2021
- 第九章 数据库事物管理
- 微信小程序从本地开发环境到线上测试环境和生产环境的配置
- 【二】CC2541 阿莫BLE开发板 与 BTool软件的连接 以及 读写UUID
- PHPRunner 10.7.0 PHP代码生成器