当前位置:   article > 正文

回归分析(四)—— 逻辑回归_逻辑回归算法是一种广义的线性回归分析方法

逻辑回归算法是一种广义的线性回归分析方法

主要内容
回归分析概述
一元线性回归分析
多元线性回归
逻辑回归
其他回归分析

四、逻辑回归

线性回归算法能对连续值的结果进行预测,而逻辑回归模型是机器学习从统计领域借鉴的另一种技术,用于分析二分类或有序的因变量与解释变量之间的关系。
逻辑回归算法是一种广义的线性回归分析方法,它仅在线性回归算法的基础上,利用Sigmoid函数对事件发生的概率进行预测。也就是说,在线性回归中可以得到一个预测值,然后将该值通过逻辑函数进行转换,将预测值转为概率值,再根据概率值实现分类。逻辑回归常用于数据挖掘、疾病自动诊断和经济预测等领域。

逻辑回归模型

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np
def sigmoid(x):
    return 1./(1.+np.exp(-x))
x = np.arange(-8,8,0.2)
y = sigmoid(x)
plt.plot(x,y)
plt.xlabel('$x$',fontsize = 13)
plt.ylabel('$y$',fontsize = 13, rotation = 0)
plt.title('Sigmoid')
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

在这里插入图片描述
逻辑回归的Python实现
(1)导入相关包,打开数据

from sklearn.datasets import load_iris
X = load_iris().data
y = load_iris().target
print('前8条数据:\n',X[:8])
print('前8条数据对应的类型:',y[:8])

# 前8条数据:
#  [[5.1 3.5 1.4 0.2]
#  [4.9 3.  1.4 0.2]
#  [4.7 3.2 1.3 0.2]
#  [4.6 3.1 1.5 0.2]
#  [5.  3.6 1.4 0.2]
#  [5.4 3.9 1.7 0.4]
#  [4.6 3.4 1.4 0.3]
#  [5.  3.4 1.5 0.2]]
# 前8条数据对应的类型: [0 0 0 0 0 0 0 0]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

(2)划分训练集和测试集并进行归一化

from sklearn.model_selection 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)
print(X_train[:5])

# [[ 0.01543995 -0.11925475  0.22512685  0.35579762]
#  [-0.09984503 -1.04039491  0.11355956 -0.02984109]
#  [ 1.05300481 -0.11925475  0.95031423  1.12707506]
#  [-1.36797986  0.34131533 -1.39259884 -1.31530348]
#  [ 1.1682898   0.11103029  0.72717965  1.38416753]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

(3)训练逻辑回归模型并对测试集进行预测

from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression(random_state = 0)
classifier.fit(X_train,y_train)
y_pred = classifier.predict(X_test)
#用LogisticRegression自带的score获得模型在测试集上的准确性
print('Accuracy of LR Classifier:%.3f'%classifier.score(X_test,y_test))

# Accuracy of LR Classifier:0.816
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/135814
推荐阅读
相关标签
  

闽ICP备14008679号