赞
踩
线性回归算法能对连续值的结果进行预测,而逻辑回归模型是机器学习从统计领域借鉴的另一种技术,用于分析二分类或有序的因变量与解释变量之间的关系。
逻辑回归算法是一种广义的线性回归分析方法,它仅在线性回归算法的基础上,利用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()
逻辑回归的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]
(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]]
(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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。