机器学习实战-第五章 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

 机器学习实战-第五章 Logistic回归笔记_第1张图片

      上述分别为读取数据文件的代码和原数据,原数据共有三列,最后一列是类别。可以看到在代码第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}

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

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

你可能感兴趣的:(机器学习,python,机器学习,logistic,regression)