目录
- (一 )逻辑回归
- 1.1 逻辑回归概述:
- 1.2 逻辑回归的作用与Sigmoid 函数:
- 1.2.1 Sigmoid 函数作用
- 1.3 指数族分布
- 1.4 逻辑回归的损失函数
- 1.5逻辑回归如何求解得到最优解模型方法
- 1.6 逻辑回归鸢尾花分类
- 1.7 逻辑回归做多分类
- (二)softmax回归
- 2.1 softmax回归公式与理解
- 2.2 逻辑回归和 Softmax 回归的关系
- 总结
(一 )逻辑回归
1.1 逻辑回归概述:
逻辑回归不是一个回归的算法,逻辑回归是一个分类的算法,因为逻辑回归算法是基于多元线性回归的算法。而正因为此,逻辑回归这个分类算法是线性的分类器,所以为有监督的。
1.2 逻辑回归的作用与Sigmoid 函数:
1.2.1 Sigmoid 函数作用
1.3 指数族分布
1.4 逻辑回归的损失函数
1.5逻辑回归如何求解得到最优解模型方法
1.6 逻辑回归鸢尾花分类
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.linear_model import LogisticRegression # 导入logistics回归
data=datasets.load_iris() #内置的数据集
# print(data)
print(data.keys())
# print(data["data"]) data
#print(data["DESCR"]) data desc
"""
feature_names:此为花瓣的特征
['sepal length (cm)',
'sepal width (cm)',
'petal length (cm)',
'petal width (cm)']
"""
data["feature_names"]
x_data=data["data"][:,3:] # 取出所有行第四列之后的所有的列,下标从0开始
# really_data
y=(data.target==2).astype(np.int) # 将正确为2的样本转为1,前面为真,使用astype转为int型的
# print(y)
model_data=LogisticRegression(solver="sag",max_iter=1000) # 生成模型
model_data.fit(x_data,y) #模型训练
x_new=np.linspace(0,3,1000).reshape(-1,1) # reshape(行,列)可以根据指定的数值将数据转换为特定的行数和列数,为-1代表着该行全部获取
print(x_new)
prd=model_data.predict_proba(x_new) # 各列别的可能性
print(prd)
prdic_b=model_data.predict(x_new)
print(prdic_b) # 属于哪类
1.7 逻辑回归做多分类
(二)softmax回归
2.1 softmax回归公式与理解
softmax 回归是另一种做多分类的算法,是假设多项分布的,多项分布可以理解为二项分布的扩展。
公式为:
2.2 逻辑回归和 Softmax 回归的关系
总结
- 逻辑回归一般用于o-1分布的有监督分类问题,softmax用于多项式分类。逻辑多项式回归一般用于医疗影橡,如病例所属的类,可将不同的病例分到不同类中,一种病例可以分多次;而softmax则是归为一类。
- 由 GLM 可知,LinearRegression,LogisticRegression,SoftmaxClassification
三者都可以通过广义线性模型的指数分布族来解释,其参数求解优化过程都可以通过极大似然 函 数 法 来 实 现 。 当 采 用 极 大 似 然 函 数 求 解 时 , LogisticRegression 等 价 于 内 积 层+Sigmoid 函 数 +BinraryCrossEntropy 损 失 ; SoftmaxClassification 等 价 于 内 积 层+softmax 函数+CategoricalCrossEntropy 损失(在 caffe 里叫做 MultinomialLoss);LinearRegression 等价于内积层+均方差损失(caffe 里叫做 EuclideanLoss)