特征工程feature engineering
特征的选择会对学习算法的性能产生巨大影响,选择或输入正确的特征是使得学习算法运行良好的关键步骤
如上图中创建了一个新特征x3就是特征工程的一个例子,我们可以用知识或者对问题的直觉来设计新的特征,通常通过变换(transform)或组合(combine)问题中原始特征从而使得学习算法更容易做出准确的预测,你自己利用对于问题的见解创造一个新特征,相比于采用原始的特征进行计算,可能会获得会更好的模型。
多项式回归Polynomial Regression
目前而言我们仅将直线拟合到我们的数据中,我们利用多元线性回归和特征工程的想法来come up with一种新的算法,多项式回归算法,此算法让你的数据可以拟合曲线
你可以选择多种不同特征,比如此处还可以选择平方根函数,它既不会像二次函数那样之后会随着size的增大而减小,也不会和三次函数那样走势很陡峭,所以这里也可以采用平方根函数。那么我们怎么选择使用什么样的特征呢?course2见!
分类算法
y只能是两个值中的一个,称之为二分类问题,对于哪种情况是false哪种情况是true由你定夺,此外false不等于bad,只是表示absence(缺失,不存在);true也不等于good,只是表示presence(存在)
对于分类问题,线性回归算法是不适用的,在原先的八个数据情况下可以拟合出一条蓝色的直线,并且选择一个0.5的阈值,大于0.5的y-hat是1,否则为0,利用决策边界(蓝色竖线),竖线左侧为0右侧为1,但当你再添加一个数据,红色的cross,此时拟合出的一条绿色的直线,在决策边界(绿色竖线)的左右两侧分别有了不同的数据
此处引入的逻辑回归算法,其结果的输出值将始终介于0到1之间,实际上用于解决输出值y为0或者1的二分类问题
逻辑回归算法
这就是逻辑回归模型,其作用就是输入特征从而输出一个介于0到1之间的数
解释逻辑回归的输出
f(x)所表示的意思就是在给定输入x和参数w、b的条件下,y=1的概率
决策边界
为逻辑回归函数——sigmod函数找到一个分界的阈值,从而进行分割哪边会是0哪边会是1
当你的参数选择不同时,决策边界也不同,这里我们举一个例子并设定w1为1,w2为1,b为-3
逻辑回归可以拟合相当复杂的数据,像之前的线性回归一样,引入多项式
但如果你不包括任何高阶多项式那么你的决策边界将始终是线性的,一条直线
如何实际训练逻辑回归模型
逻辑回归中的成本函数
成本函数提供了一种方法来衡量一组特定的参数拟合数据的好坏。
不同于线性回归模型,逻辑回归模型的数学公式比较复杂,得到的成本函数图像也不同,逻辑回归模型下的成本函数是非凸的(not convex),这就意味着如果你进行梯度下降的话,很可能陷入众多局部最小值其中的一个,所以平方误差成本函数不能很好地用于分类。
因此我们寻找另外的成本函数取代平方误差成本函数,这样采用损失,保证了成本函数(1/m乘以损失函数的总和)是凸函数,可以找到一个全局最小值。在此处的例子中,loss L就等于1/2 * f和y的平方差
当引入loss function之后我们首先看y(i)真实值为1的时候的图像,如果f趋近于0,那么它意味着有很大概率输出的是y-hat=0,这与我们开始的条件y(i)真实值是相悖的!于是此时的loss将会非常大,所以此loss function将会强力督促或帮助算法做出更准确的预测,降低损失
通过定义单个训练样本的损失并且提出了逻辑回归损失函数的定义,通过这样的选择整体成本函数将是凸函数
简化成本函数
上节中我们看到逻辑回归的损失函数和成本函数,在此节中进行简化
几乎每一个人都用这个成本函数去训练逻辑回归模型,我们在大量的成本函数中选择了这一个特定的成本函数是因为这个特定的成本函数使用了最大似然估计的统计原理并且是凸函数
实现梯度下降
此处注意:执行所有的更新方法都是进行同步更新
注意区别,虽然公式相同但是f(x)的表达式是不同的,还要注意三个相同的概念也同样可以由线性回归迁移到逻辑回归中来