Regularization(正则化)

Problem

  • underfitting(欠拟合)       又称(high bias 高偏差)
  • overfitting(过度拟合)       又称(high variance高方差):千方百计拟合训练集,导致无法泛化(一个假设模型应用到新样本的能力)到新的样本中。

Addressing overfitting

  • 减少选取变量的数量(多项式的项数):
                  1. 手动选择
                  2. 模型选择算法
  • 正则化
                   保留变量,但是减少量级/参数 θ 的大小,保证每一个变量都有助于预测 y 。

Regularization

- linear regression(梯度下降/正规方程)

1.cost function

(1). 新增项λΣ(θ^2)作用:惩罚参数,缩小每一个参数。(约定俗成:求和从θ1开始,不用给θ0添加惩罚项)
(2). 正则化参数λ:控制两个不同目标之间的取舍,从而保持假设模型相对简单,避免出现过拟合的情况。
                目标一:更好地拟合训练集的目标
                目标二:将参数θ控制得更小的目标
(3). λ过大(惩罚程度过大)影响:会使参数θ约等于0,相当于把假设函数的全部项忽略,h(x) = θ0(直线,欠拟合)

2.Gradient descent

不对θ0惩罚,因此将 θ0 分离出来。

  1. Normal equation

if λ>0, ( X^T * X + λ*)必可逆。

  • logistic regression(梯度下降/高级优化)
  1. Cost function
  2. Gradient descent(形式同线性回归一致,但h(x)不一致)


3. Advanced optimization

Programming Exercise

本例子部分代码见上一个博客(logistic regression)
本例子是正则化 logistic regression
根据两个测试结果预测制造厂的微芯片是否通过质量保证
训练集(测试1,测试2,是否通过)

  1. 训练集可视化
data = load('ex2data2.txt');
X = data(:, [1, 2]); y = data(:, 3);
plotData(X, y);


2. 特征映射

X = mapFeature(X(:,1), X(:,2));
function out = mapFeature(X1, X2)
degree = 6;       %1,x1,x2,x1^2,x1x2,x2^2......x1x2^5,x2^6
out = ones(size(X1(:,1)));   %列数为1,元素为1的矩阵(注意size返回两个值,行和列)
for i = 1:degree
    for j = 0:i
        out(:, end+1) = (X1.^(i-j)).*(X2.^j);
    end
end
end
  1. cost function
initial_theta = zeros(size(X, 2), 1);
lambda = 1;
[cost, grad] = costFunctionReg(initial_theta, X, y, lambda);
function [J, grad] = costFunctionReg(theta, X, y, lambda)
m = length(y);
J = 0;
grad = zeros(size(theta));

h = sigmoid(X * theta);
J = (-1/m)*((y' * log(h))+(1-y)' * (log(1 - h))) + (lambda/(2*m))*(theta'*theta-theta(1)*theta(1));

grad = (1/m)*(X' * (h - y)) + (lambda/m)*theta; 
grad(1) = (1/m)*sum(h-y);
end
  1. 决策边界(代码见上一个博客(logistic regression))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值