算法笔记(11)逻辑回归算法及Python代码实现

逻辑回归算法是一种被广泛使用的分类算法,通过训练数据中的正负样本,学习样本特征到样本标签之间的假设函数。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。
优点
(1)适合二分类问题,不需要缩放输入特征;
(2)内存资源占用小,因为只需要存储各个维度的特征值;
(3)训练速度快;
缺点
(1)不能用逻辑回归去解决非线性问题,因为Logistic的决策面是线性的;
(2)准确率并不是很高,因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布;

算法笔记(11)逻辑回归算法及Python代码实现_第1张图片

Python代码实现

# iterate over datasets
for ds_cnt, ds in enumerate(datasets):
    # iterate over classifiers
    for name, clf in zip(names, classifiers):
        ax = plt.subplot(len(datasets), len(classifiers) + 1, i)
        clf.fit(X_train, y_train)
        score = clf.score(X_test, y_test)

        # Plot the decision boundary. For that, we will assign a color to each
        # point in the mesh [x_min, x_max]x[y_min, y_max].
        if hasattr(clf, "decision_function"):
            Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
        else:
            Z = clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]

        # Put the result into a color plot
        Z = Z.reshape(xx.shape)
        ax.contourf(xx, yy, Z, cmap=cm, alpha=.8)

        # Plot also the training points
        ax.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cm_bright,
                   edgecolors='k')
        # and testing points
        ax.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cm_bright,
                   edgecolors='k', alpha=0.6)

        ax.set_xlim(xx.min(), xx.max())
        ax.set_ylim(yy.min(), yy.max())
        ax.set_xticks(())
        ax.set_yticks(())
        if ds_cnt == 0:
            ax.set_title(name)
        ax.text(xx.max() - .3, yy.min() + .3, ('%.2f' % score).lstrip('0'),
                size=15, horizontalalignment='right')
        i += 1

plt.tight_layout()
plt.show()

输出结果如下图:

算法笔记(11)逻辑回归算法及Python代码实现_第2张图片

  想要完整代码的朋友,可toutiao号搜索“编程研究坊”关注后s信我,回复“算法笔记11“免费获取

你可能感兴趣的:(python,人工智能,算法,python,算法,回归)