机器学习实战-第五章 Logistic回归笔记

def loadDataSet():
    dataMat = []; labelMat = []
    fr = open(r'data\MLiA_SourceCode\machinelearninginaction\Ch05\testSet.txt')
    for line in fr.readlines():
        # 按照空格分割文本,返回列表
        lineArr = line.strip().split()
        dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
        labelMat.append(int(lineArr[2]))
    return dataMat,labelMat

 

      上述分别为读取数据文件的代码和原数据,原数据共有三列,最后一列是类别。可以看到在代码第7行,构建数据矩阵dataMatrix时不仅读取了数据的前两列,而且还增加了一列数据(常数1),因为权重向量的长度是根据特征个数定的,如果完全按照原数据,只需要设置w=(w_{0},w_{1})^{T}即可,但增加了一列数据后,权重就增加了一维,变成w=(w_{0},w_{1},w_{2})^{T}书中给出的解释为“为了方便计算”,但我仍然不是很清楚。

      后来和同学进行讨论,有了一个比较合理的解释。可以把与常数列相乘的权重分量看做偏置,即:

xw^{T}=x_{0}w_{0}+x_{1}w_{1}+x_{2}w_{2}=w_{0}+x_{1}w_{1}+x_{2}w_{2}=b+x_{1}w_{1}+x_{2}w_{2}

    而增加偏置的好处可以增加函数的灵活性,提高函数的拟合能力,详情可以查看神经网络中的偏置究竟有什么用?

    上述解释仅为个人的理解和猜想,本人是小白,还在学习中,写笔记旨在记录学习过程中的疑惑和解决方法,如有错误欢迎各位大佬批评指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值