编程实现对率回归,并给出西瓜数据集3.0@上的结果。
对率回归即逻辑回归,可以看做没有隐藏层的,用sigmoid做激活函数,crossentropy做cost(不加regularization)的神经网络。
本题用theano实现,调参时,learning rate 设为1,更大则cost会出现震荡,迭代次数设为10000可收敛,但是,训练效果并不好,最高准确率也只有70%。简单分析,根据前面knn和决策树画的分类面,可以看出这个问题不是线性可分的,因此逻辑回归在这里不太适用。
第一次用theano,还是简单记录下
theano中有符号变量的概念,无实值,类似C语言,必须先声明其类型;表达式的概念,并没有做计算;函数的概念,定义好输入输出,输出一般是表达式,输入是与输出相关的变量(不要多也不要少),传入参数后,theano将会编译表达式(包含各种优化,时间较长),然后带入计算。
此外,函数中还可以有updates参数,形式为一对对的tuple,每对tuple由欲更新的变量,及更新的值组成。因为符号变量是无实值的,无法更新