代码:https://github.com/LiuZhe6/AndrewNGMachineLearning
文章目录
测验1:Logistic Regression
第一题
答案
AD
第二题
答案
AB
第三题
答案
CD
第四题
答案
AB
分析:
A:因为H_theta(x)总是0到1,故CostFunction按照定义一定是大于等于0的,正确。
B:罗辑回归可以使用“区分一类和其他剩下类”的方法,正确。
C:罗辑回归是收敛的,故梯度下降法总会找到全局最小值,错误。
D:如果我们有两类,则需要两个分类器;有三类,则需三个分类器,错误。
第五题
答案
C
分析:
易求出h_theta(x) = g(6 - x2)
当6-x2>=0时,y=1,故x2<=6时,y=1
测验2:Regularization
第一题
答案
D
分析:
对于A:添加过多的特征,一定会使假设函数在训练集上表现的很好,但不一定在新数据上表现很好,错误。
对于B:引进正则化不一定会在训练集上表现很好,通常会表现的不好,错误。
对于C:引进正则化不一定会在新数据上总是表现很好,错误。
对于D:添加过多特征,会过度拟合训练集数据,正确。
第二题
答案
A
分析:
当lamda=0时,即未正则化,此时theta保持应有的值。
但lamda不为0时,正则化后,为了保持代价函数处于更小的值,此时theta会比原来更小。
第三题
答案
C
分析:选取过大的lamda,得到一条平行于X轴的直线,这条直线显然是欠拟合的。
第四题
In which one of the following figures do you think the hypothesis has overfit the training set?
答案
A
第五题
In which one of the following figures do you think the hypothesis has underfit the training set?
答案
A
编程练习
作业一:Sigmoid Function
sigmoid.m
% z也可以是矩阵,此处除法应使用 点除
g = 1 ./ ( 1 + exp(-z) );
作业二&三:Logistic Regression Cost & Logistic Regression Gradient
costFunction.m
注意矩阵的纬度
J = 1/m * sum(-y' * log(sigmoid(X * theta)) - (1 - y)' * log(1 - sigmoid(X * theta)));
grad = 1 / m * X' * (sigmoid(X * theta) - y);
作业四:Predict
predict.m
% 计算结果为m*1的向量
res = sigmoid(X * theta);
p(res>=0.5) = 1;
p(res<0.5) = 0;
作业五:Regularized Logistic Regression Cost
costFunctionReg.m
% theta(1)不需要正则化
J = 1 / m * (-y' * log(sigmoid(X * theta)) - (1 - y)' * log(1 - sigmoid(X * theta))) + lambda / (2 * m) * (theta' * theta - theta(1)^2);
grad = 1 ./ m * X' * (sigmoid(X * theta) - y) + lambda /m * theta;
grad(1) = 1 / m * X'(1,:) * (sigmoid(X * theta) - y);