返回 导航

Python

hangge.com

Python - 机器学习算法库Scikit-Leran使用详解3(Logistic回归算法)

作者:hangge | 2022-08-24 17:10

四、Logistic 回归算法

1,什么是 Logistic 回归?

(1)Logistic 回归算法,又叫做逻辑回归算法,或者 LR 算法(Logistic Regression)。虽然它被称为回归,但其实际上是分类模型,并常用于二分类。
(2)逻辑回归的与线性回归一样,也是以线性函数为基础的;而与线性回归不同的是,逻辑回归在线性函数的基础上添加了一个非线性函数,比如添加 Sigmoid 函数从而可以进行二分类。其 Sigmoid 函数图像如下所示:
提示sigmoid 函数会将所有的数值转化到 0 1 之间,我们可以将其简单的理解为该数据被判定为正样本的概率(所谓正样本就是标签为 1 的样本,负样本就是标签为 0 的样本),根据 sigmoid 函数,我们可以很明显的分析出当前数据应该是哪一个类别(大于 0.5 为正样本,小于 0.5 为负样例)

(3)Logistic 算法在处理二分类问题上表现优越,但在多分类(二个以上)问题上容易出现欠拟合。并且在多分类问题上我们就不再使用 sigmoid 函数,而是另一个叫做 softmax 函数。

2,使用样例

(1)下面我们以 sklearn 库中自带的鸢尾花数据集对 Logistic 回归算法进行简单的应用。
    鸢尾花数据集:数据集包含 3 个类,每个类 50 个实例,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这 4 个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。
#导入 sklearn 提供的鸢尾花数据
from sklearn.datasets import load_boston
#导入 sklearn 提供的logistic回归算法
from sklearn.linear_model import LogisticRegression
#导入skleran 提供的分割数据集的方法
from sklearn.model_selection import train_test_split
#导入pandas
import pandas as pd
 
#加载数据集
iris = load_iris()
#分割数据集训练集,测试集
x_train,x_test,y_train,y_test=train_test_split(iris['data'],iris['target'],random_state=0)
#创建一个logistic回归模型
model=LogisticRegression()
#训练模型
model.fit(x_train,y_train)
#训练后用测试集对模型进行评分
print("模型评分:",model.score(x_test,y_test))
print("每个类别的系数向量为:",model.coef_)
print("每个类别的截距值为:",model.intercept_)
print('-----------------------------------------------------')
 
print('测试集前5条数据特征值:')
print(pd.DataFrame(x_test).head(5))
print('-----------------------------------------------------')
print('测试集前5条数据目标值:')
print(pd.DataFrame(y_test).head(5))
print('-----------------------------------------------------')
#使用模型预测
y_predict=model.predict(x_test)
print('使用模型预测测试集前5条数据的目标值:')
print(pd.DataFrame(y_predict).head(5))

(2)运行结果如下:
评论

全部评论(0)

回到顶部