• 机器学习(五)逻辑回归


    一、原理

                     结果数值仅有0和1,无法使用直接线性模型

             公式原型ln(\frac{p}{1-p})=b_{0}+b{1}*x(由 y=b_{0}+b_{1}*x 和 p=\frac{1}{1+e^{-y}} 组合而成)

                     曲线表示概率

    二、Python实现

            ①工作路径设置

            ②数据预处理

            ③逻辑回归模型的创建和拟合

    1. from sklearn.Linear_model import logisticcRegression --分属线性回归模型
    2. classifier = logisticRegression(random_state = 0)
    3. calssifier.fit(x_train,y_train) --拟合

            ④预测与评估(混淆矩阵)

    y_pred = classifier.predict(x_test)    --预测结果
    1. from sklearn.merics import confusion_matrix --导入混淆矩阵
    2. cm = confusion_matrix(y_test,y_pred) --真实分类,预测结果

    1. --绘制图像
    2. from matplotlib,colors import ListedColormap --引入图像类
    3. x_set,y_set = x_train,y_train --临时变量
    4. x1,x2 = np.meshgrid(np.arange(start = x_set[:0],min()-1,stop=x_set[:,0].max()+1,setp=0.01),
    5. np.arange(start = x_set[:1],min()-1,stop=x_set[:,1].max()+1,setp=0.01))
    6. --设置画布,-1和+1是为了图像边缘留白
    7. plt.contourf(x1,x2,classifier.predict(np.arry([x1.ravel(),x2.ravel()].T).reshape(x1.shape),
    8. alpha=0.75,camp=ListedColormap('red','green')))
    9. --将分类器着色(按照0,1
    10. plt.xlim(x.min(),x.max())
    11. plt.ylim(y.min(),y.max())
    12. --标注最大最小值
    13. for i,j in enumerate(np.unique(y_set)):
    14. plt.scatter(x_set[y_set==j,0],x_set[y_set==j,1],c=ListedColormap(('orange','bule'))(i),
    15. label=j)
    16. --循环画点
    17. plt.title('逻辑回归图像')
    18. plt.xlabel='年龄'
    19. plt.ylabel='收入'
    20. plt.legend()
    21. plt.show()

             此情况实际是非线性的,故使用线性分类器会造成部分样本的错误分类。

  • 相关阅读:
    三、JavaScript函数[四种函数格式、this]
    支持向量机 (SVM):初学者指南
    c++实现串口功能之termios.h头文件研读<二>
    C---链表
    进程调度算法
    Jetpack Compose 中的状态管理
    实战!RPA厂商选型分享
    Oracle上process爆满,session数远远低于process数
    如何在C程序中使用libcurl库下载网页内容
    c++图片取出每一个像素的值
  • 原文地址:https://blog.csdn.net/weixin_37878740/article/details/126297369