吴恩达机器学习笔记7

第7章 Logistic回归(讨论离散数据集的学习算法)

logistic回归又称logistic回归分析,主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等。(from baidu baike)

1,分类

分类问题,主要是将结果分成正和负两种情况,这是二分类/二元分类问题。也可以是多种情况,多分类问题

不推荐将线性回归应用于二元分类问题。

线性回归应用于分类问题时,会存在远大于1和远小于0 的情况,不准确。

Logistic算法本身不是回归的,但是由于历史原因,它被命名为Logistic回归。

2,假设陈述(Hypothesis representation)

Sigmoid 函数和Logistic函数是同义词,是一个东西。

3,决策界限(decision boundary)

决策边界不是训练集的属性,是假设本身及其参数的属性,它判定是0还是1.

4,代价函数

如果还是采用平方误差代价函数,将存在多个局部最优点。

5,简化代价函数与梯度下降

这是从统计学极大似然估计当中学来的,用于logistic的代价函数。

可以将h_theta(x)带入偏导求解。

J(\theta)=-\frac{1}{m}[\sum_{i=1}^{m}y^{(i)}log(\frac{1}{1+e^{\theta^Tx^{(i)}}})+(1-y^{(i)})log(1-\frac{1}{1+e^{\theta^Tx^{(i)}}})]=-\frac{1}{m}[\sum_{i=1}^m-y^{(i)}log(1+e^{\theta^Tx^{(i)}})+(1-y^{(i)})log(\frac{e^{\theta^Tx^{(i)}}}{1+e^{\theta^Tx^{(i)}}})]

=-\frac{1}{m}[\sum_{i=1}^m-y^{(i)}log(1+e^{\theta^Tx^{(i)}})+(1-y^{(i)})(log(e^{\theta^Tx^{(i)}})-log(1+e^{\theta^Tx^{(i)}}))]

=-\frac{1}{m}[\sum_{i=1}^m(1-y^{(i)})\theta^Tx^{(i)}-log(1+e^{\theta^Tx^{(i)}})]

\frac{\partial J(\theta)}{\partial \theta}=-\frac{1}{m}[\sum_{i=1}^m(1-y^{(i)})x^{(i)}-\frac{1}{1+e^{\theta^Tx^{(i)}}}e^{\theta^Tx^{(i)}}x^{(i)}]

=-\frac{1}{m}[\sum_{i=1}^m(1-\frac{e^{\theta^Tx^{(i)}}}{1+e^{\theta^Tx^{(i)}}}-y^{(i)})x^{(i)}]

=-\frac{1}{m}[\sum_{i=1}^m(\frac{1}{1+e^{\theta^Tx^{(i)}}}-y^{(i)})x^{(i)}]

特征缩放也可以用于logistic回归问题

6,高级优化

求代价函数最优解的算法,不一定要采用梯度下降法,也可以采用共轭梯度法(conjugate gradient),牛顿法(BFGS),拟牛顿法(L-BFGS)。它们通常会比梯度下降法更快收敛,缺点就是复杂很多。

吴恩达推荐调用已有的库来实现,而不需要都自己写,可以提高准确度。可以多试一些库,不同库的差别挺大。

7,多元分类:一对多(Multi-class classification:one-vs-all)

选出h_theta最大的那一个,从而选出可信度最高,效果最好的那个分类器,从而得到对应的i。从而判定它就是那个i。

猜你喜欢

转载自blog.csdn.net/Margo_Zhang/article/details/82380859