logistic和线性回归的区别与联系 :
区别:logistic回归是做分类(0,1,分类),线性回归是做预测(y值是多少)
区别:线性回归的求法:求theta,让J(theta)达到最小值【J(theta)是凸函数】
logistic回归的求法:写出似然函数,求theta,让似然函数达到最大值【似然函数是凹函数】
联系:求参数,使目标函数达到极值,都是用 梯度下降方法求的
联系:梯度下降的方法里,我们需要人手动算出它的导数,导数的公式是一样的(h(x)-y)*xj)。唯一区别是差一个符号。
所以代码和线性回归基本一样,唯一的区别是增加了一个sigmoid函数,把原来的h(x)变为1/1+e^(-hx) 然后求误差,梯度下降改参数,同上
代码如下:
#include<stdio.h>
#include<math.h>
double sigmoidFunction(double x)
{
double ex;
ex = pow(2.718281828,x);
return ex/(1+ex);
}
int main()
{
double matrix[6][4] = {