您的位置:首页 > 其它

机器学习之逻辑回归

2019-03-15 14:49 78 查看

逻辑回归从数学的角度理解,就是一元或者多元线性函数预测了一个值,使用sigmoid函数将这个值映射到了0-1的值域上,理解为输出相应样本类别的概率。逻辑回归用在分类的问题上却叫回归,可能是逻辑回归用了回归类似的方法来解决了分类的问题。

1. 二元逻辑回归模型

对线性回归的结果做一个在函数g上的转换,可以变化为逻辑回归。这个函数g在逻辑回归中我们一般取为sigmoid函数,形式如下:

sigmoid函数有一个很不错的导数性质:

输入:x1,x2,x3 输出:0,1
Z = WX + B
hΘ(x)= sigmoid(Z)



x为输入的样本,hθ(x)为模型的输出,理解为某一个分类的概率大小,θ为参数,所以hθ(x)的值越小,代表分类为0的概率越高,反之,值越大代表分类为1的的概率越高。如果靠近临界点,分类准确率会下降。

为了计算方便,将模型写成矩阵的形式:


其中hθ(X)为模型输出,为 mx1的维度。X为样本特征矩阵,为mxn的维度。θ为分类的模型系数,为nx1的向量。我们理解好逻辑回归模型,下面我们来了解模型的损失函数和如何优化模型,得到是损失函数极小值的参数向量。

2. 逻辑回归模型的损失函数

线性回归的模型的输出值为连续的,所以可以使用模型误差平方和来定义损失函数,但是逻辑回归输出值是离散的,可以用最大似然推导损失函数。
逻辑回归y的概率分布函数表达公式:


使用似然函数最大化求解模型系数。我们用对数似然函数最大化,对数似然函数取反则是逻辑回归的损失函数。
似然函数:


损失函数 = 对似然函数取log并且取反


使用矩阵形式表示似然函数:


其中E为全1向量,. 为内积。

3. 损失函数的优化

逻辑回归损失函数极小化,常见的方法有梯度下降法、坐标轴下降法、牛顿法。使用矩阵法推导逻辑回归梯度。



这步求导中我们使用到了三个基础的求导公式:


化简后:


带入到梯度下降法中:


4.代码

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import OneHotEncoder,LabelEncoder,StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix

数据导入:
data = pd.read_csv(“Social_Network_Ads.csv”,encoding=“utf-8”)
X = data.iloc[:,2:-1].values
Y = data.iloc[:,-1].values

特征缩放:
sc = StandardScaler()
X = sc.fit_transform(X)

训练集划分:
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.25,random_state=0)

构建logistic模型:
classifier = LogisticRegression()
classifier.fit(X_train,Y_train)

预测:
y_pred = classifier.predict(X_test)

生成混淆矩阵:
cm = confusion_matrix(Y_test,y_pred)

总结

逻辑回归的优势在于输出的结果不仅可以用分类,还可以表征样本属于类别的概率值。
1.逻辑回归可以将输出结果映射到(0,1)
2.求解逻辑回归参数的传统方法是梯度下降

代码总结

1.必须先用fit_transform(trainData),之后再transform(testData),这样就是使用同一个标准下的归一化。
2.如果直接transform(testData),程序会报错
3.如果fit_transfrom(trainData)后,使用fit_transform(testData)而不transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。(一定要避免这种情况)

参考:
https://blog.csdn.net/t46414704152abc/article/details/79574003
https://www.geek-share.com/detail/2713889089.html
https://www.geek-share.com/detail/2689265720.html
https://blog.csdn.net/weixin_38278334/article/details/82971752

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: