classification问题和regression问题类似,区别在于y值是一个离散值,例如binary classification,y值只取0或1。
方法来自Andrew Ng的Machine Learning课件的note1的PartII,Classification and logsitic regression.
实验表明,通过多次迭代,能够最大化Likehood,使得分类有效,实验数据为人工构建,没有实际物理意义,matrix的第一列为x0,取常数1,第二列为区分列,第三列,第四列为非区分列,最后对预测起到主导地位的参数是theta[0]和theta[1]。
#include "stdio.h"
#include "math.h"
double matrix[6][4]={
{1,47,76,24}, //include x0=1
{1,46,77,23},
{1,48,74,22},
{1,34,76,21},
{1,35,75,24},
{1,34,77,25},
};
double result[]={1,1,1,0,0,0};
double theta[]={1,1,1,1}; // include theta0
double function_g(double x)
{
double ex = pow(2.718281828,x);
return ex/(1+ex);
}
int main(void)
{
double like