江东的笔记

Be overcome difficulties is victory

0%

机器学习算法-Logistic Regressi

逻辑回归并不是一个回归算法,它是一个分类算法;通过拟合一个逻辑函数来预测一个离散型因变量的值(预测一个概率值,基于0与1)

·逻辑回归

  • 与线性回归不同的是,逻辑回归并不是一个回归算法,它是一个分类算法;通过拟合一个逻辑函数来预测一个离散型因变量的值(预测一个概率值,基于0与1),来描述自变量对因变量的影响程度。

自变量可以有一个,也可以有多个。其中,一个自变量被称为一元逻辑回归,而多个自变量被称为多元逻辑回归。以实例而言,逻辑回归可以预测一封邮件是垃圾邮件的概率是多少。同时,因为结果是概率值,它同样可以对点击率等结果做排名模型预测

  • 基本代码实现:
1
# 关于逻辑回
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//# 首先导入包:
from sklearn.datasets import load_iris

iris = load_iris()

# 前两列数据(花萼长度与宽度)进行回归分类
X = iris.data[:, :2]
Y = iris.target

# 分割数据集:
from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(X, Y, random_state=66, test_size=0.2)

# 导入模型, 调佣逻辑回归函数LogisticRegrssion()函数
from sklearn.linear_model import LogisticRegression

# 训练模型
lr = LogisticRegression(penalty="l2", solver='newton-cg', multi_class='multinomial')
lr.fit(x_train, y_train)
# 关于模型的参数:
# penalty:正则化选择参数,默认方式为 L2 正则化
# solver:优化算法选择参数,有{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’}四种参数,如果你是用的是 L1 正则化,则只能使用 libinear,这是因为 L1 正则化并不是一个连续可导的损失函数。
# muti_class:分类方式选择参数,包括{‘ovr’, ‘multinomial’}两种参数。简单来说,OvR 相对简单,但分类效果相对略差(这里指大多数样本分布情况,某些样本分布下 OvR 可能更好)。而 MvM 分类相对精确,但是分类速度没有 OvR 快。

# 预测数据
y_pre = lr.predict(x_test)

# 准确率的评估
print("逻辑回归训练集数据的准确率为\n", lr.score(x_train, y_train))
print("逻辑回归测试集数据的准确率为\n", lr.score(x_test, y_test))
from sklearn import metrics
accuracy = metrics.accuracy_score(y_pre, y_test)
print('逻辑回归模型准确率:%.3f'% accuracy)

公众号:欢迎转发和关注本公众号,经常分享一些基础的学习知识。欢迎关注!!!

请添加图片描述