Fork me on GitHub
  1. 机器学习笔记--线性回归

    线性回归模型是机器学习中最简单的一个有监督学习模型,所谓有监督学习,就是在给出的训练数据样本中已经标定了样本的目标信息(如类别,预测值),算法模型通过学习这些数据样本,得到能较好的应用于未标定类别数据样本的模型参数。 线性回归模型根据一个样本的输入特征给出这个样本的目标值/预测值, 举个例子

    我们要根据房子的面积和房间数预测房子的房价,如下表

    房子

    首先,给出一个初始的线性函数:

    初始线性函数

    其中‘theta下标i’是该线性函数从X映射到Y的参数(或者说是权重)。我们可以将X0看作1,所以:

    函数2

    在等式的右边,theta和x均为向量。 定义价值函数(cost function):

    公式3

    其中'X上标i'表示第i组输入数据,我们用J(theta)来衡量:对于每一组theta的值,它得出的预测值和实际上的y的值的接近程度。

    最小二乘法(LMS)

    我们要得到一组theta值使得J(theta)能最小化,可以使用梯度下降法(gradient descent):从某个初始theta值开始,然后重复改变theta使J(theta)更小,直到收敛:

    公式4

    :=表示赋值,alpha是学习因子,在实际中调整。 我们先考虑只有一个训练实例时 ...

    read more
  2. 机器学习笔记--逻辑斯蒂回归(logistic regression)

    logistic

    logistic regression实际上不是一个回归器,而是一个二分类器,即:给定的训练样本中一部分被标记为1(positive),剩下的被标记为0(negative),我们从这些样本中训练出一个分类器,给定输入特征(x),此分类器能够输出它预测的x的类别y,此时输出y只有两种情况:0和1. 先看一下logistic函数:

    logistic函数

    下面是它的曲线图:

    logistic曲线图

    下面给出我们的logistic regression函数模型:

    逻辑回归函数模型

    这个模型是这样工作的: 当h(x)输出值大于等于0.5时,预测x的类别为1; 当h(x)输出值小于0.5时,预测x的类别为0。 在这个函数模型中,x是输入,theta是我们要通过训练样本求的参数,求出theta之后我们就可以用这个模型去分类了。 那我们如何从训练样本中求出theta呢? 我们需要一个cost function,下面给出sklearn库中logisticRegression的实现使用的cost function:

    logisticRegressionCostFunction

    上下两个式子分别采用L2和L1方法进行regularization,防止模型过拟合。 式子左边是regularization term;右边是分类错误惩罚项;参数C权衡两者,实验中经验值,后面会讲到在实际中如何选取C。 得到cost function之后我们的目标就是选出一组参数theta使costFunction最小 ...

    read more
  3. 初学Python----urllib2模块与正则表达式组合而成的小爬虫

    最近开始学Python,在http://www.the5fire.com/python-sohuspider-software-people.html这个博客上看到作者写的简单的从搜狐上爬小说的爬虫,正好学习学习练练手,发现代码是几年前的,而搜狐网早已经更新了网页,原代码已经不能用了,正好我来改改。下面是改过之后的代码,亲测有效:

    #!/usr/bin/python
    
    import re
    import urllib2
    import sys
    
    def getPage(url,offset = '3399'):
        realurl = "%s%s%s" % (url,offset,".html")
        print realurl
        content = urllib2.urlopen(realurl).read()
    
        content_re = re.compile(r'<div class="chapter"></div ...
    read more

« Page 2 / 2

blogroll

social