阅读(2443) (22)

AI人工智能 逻辑回归

2020-09-23 15:03:00 更新

基本上,逻辑回归模型是监督分类算法族的成员之一。 Logistic 回归通过使用逻辑函数估计概率来测量因变量和自变量之间的关系。

在这里,如果我们讨论依赖变量和独立变量,那么因变量就是要预测的目标类变量,另一方面,自变量是用来预测目标类的特征。

在逻辑回归中,估计概率意味着预测事件的可能性发生。例如,店主想要预测进入商店的顾客将购买游戏站(例如)或不购买。顾客将会观察到许多顾客的特征 - 性别,年龄等,以便预测可能性的发生,即购买游戏站或不购物。逻辑函数是用来构建具有各种参数的函数的 S 形曲线。

前提条件

在使用逻辑回归构建分类器之前,我们需要在系统上安装 Tkinter 软件包。 它可以从 此处 进行安装。

现在,在下面给出的代码的帮助下,可以使用逻辑回归来创建分类器 -

首先,导入一些软件包 -

import numpy as np
from sklearn import linear_model
import matplotlib.pyplot as plt

现在,需要定义可以完成的样本数据,如下所示 -

X = np.array([[2, 4.8], [2.9, 4.7], [2.5, 5], [3.2, 5.5], [6, 5], [7.6, 4],
              [3.2, 0.9], [2.9, 1.9],[2.4, 3.5], [0.5, 3.4], [1, 4], [0.9, 5.9]])
y = np.array([0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3])

接下来,我们需要创建逻辑回归分类器,可以按如下方式完成 -

Classifier_LR = linear_model.LogisticRegression(solver = 'liblinear', C = 75)

最后但重要的是,我们需要训练这个分类器 -

Classifier_LR.fit(X, y)

现在,我们如何可视化输出? 可以通过创建一个名为Logistic_visualize()的函数来完成 -

Def Logistic_visualize(Classifier_LR, X, y):
   min_x, max_x = X[:, 0].min() - 1.0, X[:, 0].max() + 1.0
   min_y, max_y = X[:, 1].min() - 1.0, X[:, 1].max() + 1.0

在上面的行中,我们定义了在网格中使用的最小值和最大值 XY。另外,还将定义绘制网格的步长。

mesh_step_size = 0.02

下面定义 XY 值的网格,如下所示 -

x_vals, y_vals = np.meshgrid(np.arange(min_x, max_x, mesh_step_size),
                 np.arange(min_y, max_y, mesh_step_size))

使用以下代码,可以在网格网格上运行分类器 -

output = classifier.predict(np.c_[x_vals.ravel(), y_vals.ravel()])
output = output.reshape(x_vals.shape)
plt.figure()
plt.pcolormesh(x_vals, y_vals, output, cmap = plt.cm.gray)


plt.scatter(X[:, 0], X[:, 1], c = y, s = 75, edgecolors = 'black', 
linewidth=1, cmap = plt.cm.Paired)

以下代码行将指定图的边界 -

plt.xlim(x_vals.min(), x_vals.max())
plt.ylim(y_vals.min(), y_vals.max())
plt.xticks((np.arange(int(X[:, 0].min() - 1), int(X[:, 0].max() + 1), 1.0)))
plt.yticks((np.arange(int(X[:, 1].min() - 1), int(X[:, 1].max() + 1), 1.0)))
plt.show()

现在,在运行代码之后,我们将得到以下输出,逻辑回归分类器 - img