1.逻辑回归 简要介绍
1 应用
- 逻辑回归 用来处理不同的分类问题,----预测当前的值 属于哪个组
- 给出一个类似于二进制结果(0,1)的输出 -----离散的输出结果(不同于线性回归的连续结果)
2 如何工作
- 使用基础逻辑函数 通过估算概率来计算输出结果和一个或者多个特征之间的关系
3 作出预测
- 将概率值转换为二进制的数 以便进行预测
- 使用sigmoid函数 获得(0,1)的范围内结果
- 阈值分类器 将(0,1)范围内的结果 转化为0或者1
4 sigmoid函数
θ(s)=11+e−s
5 极大似然估计
利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
2. 基本原理
1 构造一个预测函数(h函数) :猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。
1 使用 sigmoid函数
2 确定边界类型
3线性边界
- 边界线
ΘT=Θ0+Θ1x1+Θ2x2+...+Θnxn
2.构造h函数hΘ(x)=11+e−ΘTxh函数表示结果取1 的概率
2 构造cost 函数:表示预测的输出(h)与训练数据类别(y)之间的偏差
综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值与实际类别的偏差。
1 使用最大似然估计推导 ---详细
2 结果
3 使用梯度下降法求 J(theta)最小值 or 梯度上升求最大值
1梯度下降法表示theta更新过程
结果:
4 梯度下降过程向量化
3 实操
1.实例
尝试预测哪些用户会购买这种全新SUV。并且在最后一列用来表示用户是否购买。我们将建立一种模型来预测用户是否购买这种SUV,该模型基于两个变量,分别是年龄和预计薪资。因此我们的特征矩阵将是这两列。我们尝试寻找用户年龄与预估薪资之间的某种相关性,以及他是否购买SUV的决定。
Step 1 Data Pre-Processing-----详见
import numpy as np import matplotlib.pyplot as plt import pandas as pd dataset = pd.read_csv('Social_Network_Ads.csv') X = dataset.iloc[:, [2, 3]].values ## 选取2,3两列--Age+ salary y = dataset.iloc[:, 4].values ## 选取最后一列 from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) from sklearn.preprocessing import StandardScaler ##特征缩放 sc = StandardScaler() X_train = sc.fit_transform(X_train) X_test = sc.transform(X_test)
Step 2 Logistic Regression Model
- 逻辑回归应用于分类好的数据集
from sklearn.linear_model import LogisticRegression classifier = LogisticRegression() classifier.fit(X_train, y_train)
LogisticRegression()函数有很多参数,详见link
Step 3 Predection
y_pred = classifier.predict(X_test)
Step 4 Evaluating The Predection-------混淆矩阵等待解决????
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred)
Step 5 visulisation
原文无代码,但是有可视化结果,自行可视化-----其中plot_decision_regions函数代码
plot_decision_regions(X_test, y_pred, classifier=cl) plt.xlabel('age') plt.ylabel('salary') plt.legend(loc='upper left') plt.title("Test set") plt.show()
结果
4
1 完整代码
2 数据集
参考
-
极大似然估计 : 极大似然估计详解-CSDN博客
-
数学推导以及图片来源: 机器学习--Logistic回归计算过程的推导_logistic回归推导-CSDN博客
-
可视化: 逻辑回归(Logistic regression)详解-并用scikit-learn训练逻辑回归拟合Iris数据集-CSDN博客
4.logisticRegression() 函数参数: Sklearn-LogisticRegression逻辑回归-CSDN博客