《机器学习实战》个人学习记录笔记(十二)———Logistic回归SKlearn病马案例

这篇博客记录了作者学习《机器学习实战》中Logistic回归的部分,包括数据缺失的处理策略,手写Python代码构建分类器的尝试,以及使用Sklearn构建Logistic回归分类器的详细过程。文章强调了Sklearn中LogisticRegression参数的选择,如惩罚项、优化算法,并探讨了不同场景下如何选择合适的参数。
摘要由CSDN通过智能技术生成

第五章 Logistic回归

PS:个人笔记 根据《机器学习实战》这本书,Jack-Cui的博客,以及深度眸的视频进行学习

1 数据缺失

⭐解决办法:

  • 使用可用特征的均值来填补缺失值;
  • 使用特殊值来填补缺失值,如-1;
  • 忽略有缺失值的样本;
  • 使用相似样本的均值添补缺失值;
  • 使用另外的机器学习算法预测缺失值。
⭐预处理数据:

  • 如果测试集中一条数据的特征值已经确实,那么我们选择实数0来替换所有缺失值,因为本文使用Logistic回归。因此这样做不会影响回归系数的值。sigmoid(0)=0.5,即它对结果的预测不具有任何倾向性。
  • 如果测试集中一条数据的类别标签已经缺失,那么我们将该类别数据丢弃,因为类别标签与特征不同,很难确定采用某个合适的值来替换。


2 使用Python构建Logistic回归分类器

先用手写的代码尝试:

import numpy as np
import random

def sigmoid(inX):
    return 1.0 / (1 + np.exp(-inX))

def stocGradAscent1(dataMatrix, classLabels, numIter=150):
    m,n = np.shape(dataMatrix)                                          
    weights = np.ones(n)                                                  
    for j in range(numIter):                                           
        dataIndex = list(range(m))
        for i in range(m):           
            alpha = 4/(1.0+j+i)+0.01                                           
            randIndex = int(random.uniform(0,len(dataIndex)))             
            h = sigmoid(sum(dataMatrix[randIndex]*weights))                
            error = classLabels[randIndex] - h                            
            weights = weights + alpha * error * dataMatrix[randIndex]     
            del(dataIndex[randIndex])                                    
    return weights                                                     

def colicTest():             
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值