sklearn实现线性逻辑回归
发布日期:2021-05-28 17:02:19 浏览次数:30 分类:技术文章

本文共 1566 字,大约阅读时间需要 5 分钟。

sklearn实现线性逻辑回归

前言: 上篇博文通过梯度下降算法实现了逻辑回归的分类问题,整个核心算法都是我们自己用python实现的,看起来比较复杂,本次博文介绍如何使用sklearn包实现逻辑回归

一、sklearn实现逻辑回归Demo

import matplotlib.pyplot as pltimport numpy as npfrom sklearn.metrics import classification_reportfrom sklearn import linear_model# 数据是否需要标准化scale = False# 读取数据data = np.genfromtxt('LR-testSet.csv', delimiter=',')x_data = data[:, 0:-1]y_data = data[:, -1]# 绘制各类别的数据散点图def plotClass():    x0 = []    y0 = []    x1 = []    y1 = []    for i in range(len(x_data)):        if y_data[i] == 0:            x0.append(x_data[i, 0])            y0.append(x_data[i, 1])        else:            x1.append(x_data[i, 0])            y1.append(x_data[i, 1])    # 绘图    s1 = plt.scatter(x0, y0, c='b', marker='o')    s2 = plt.scatter(x1, y1, c='r', marker='x')    plt.legend(handles=[s1, s2], labels=['class0', 'class1'])# 训练模型model = linear_model.LogisticRegression()model.fit(x_data, y_data)# 画决策边界if not scale:    plotClass()    x_test = np.array([[-4], [3]])    y_test = (-model.intercept_ - x_test * model.coef_[0][0]) / model.coef_[0][1]    plt.plot(x_test, y_test, 'r')# 计算正确率,召回率,F1值predictions = model.predict(x_data)print(classification_report(y_data, predictions))plt.show()

二、执行结果

precision    recall  f1-score   support         0.0       0.92      1.00      0.96        47         1.0       1.00      0.92      0.96        53   micro avg       0.96      0.96      0.96       100   macro avg       0.96      0.96      0.96       100weighted avg       0.96      0.96      0.96       100

在这里插入图片描述

三、数据下载
链接:https://pan.baidu.com/s/1cOxjGUyVbf3qDtPFPJKqwA
提取码:1mlo

转载地址:https://blog.csdn.net/qq_34720818/article/details/105887522 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:非线性逻辑回归的梯度下降算法python实现以及决策边界的绘制
下一篇:线性逻辑回归的梯度下降算法python实现

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年01月20日 14时02分59秒