机器学习之逻辑回归
逻辑回归概念
1.什么是逻辑回归
逻辑回归是一种监督学习分类算法,用于预测对离散类集的观察值。实际上,它被用来将观测结果划分为不同的类别。因此,它的输出本质上是离散的。逻辑回归也称为Logit回归。它是用于解决分类问题的最简单、直接和通用的分类算法之一。
2.逻辑回归模型的原理和定义
逻辑斯谛回归是经典的分类方法,它属于对数线性模型,原理是根据现有的数据对分类边界线建立回归公式,以此进行分类。(主要思想)
定义:
在线性回归模型的基础上,使用Sigmoid函数,将线性模型的结果压缩到[0,1]之间,使其拥有概率意义,它可以将任意输入映射到[0,1]区间,实现值到概率转换。
属于概率性判别式模型
线性分类算法
在学习逻辑回归模型之前,先来看一下逻辑斯谛分布,因为我们的逻辑斯蒂模型就是根据逻辑斯蒂分布得到的;通过参数估计方法直接估计出参数,从而得到P(Y|X)。
下面给出《统计学习方法》上逻辑斯蒂分布的定义:
实例及代码
1.导入库和数据集
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = '.../weatherAUS.csv'
df = pd.read_csv(data)
df.head()
2.声明特征向量和目标变量
X = df.drop(['RainTomorrow'], axis=1)
y = df['RainTomorrow']
3.划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
4.训练模型
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression(solver='liblinear', random_state=0)
logreg.fit(X_train, y_train)
5.模型预测结果
y_pred_test = logreg.predict(X_test)
y_pred_test
6.模型预测的准确率
from sklearn.metrics import accuracy_score
print('Model accuracy score: {0:0.4f}'. format(accuracy_score(y_test, y_pred_test)))