机器学习一

机器学习(一)


(一)监督学习和无监督学习


监督学习:

回归(预测值 如三个月后卖出的货物数量)

分类(0 1问题 如这个账户是否被盗过 否)

有标记好的数据 如垃圾邮件


无监督学习:

自动进行分类 如新闻分类、戏份市场、区分声音


(二)线性回归:


单变量线性回归:


主要思想:不断调整参数,使预测函数到样本点的距离和最小。

核心算法:梯度下降

参数含义:

  • m:训练集中实例的数量
  • x:输入变量/特征  x23)第三个实例的第二个参数
  • y:目标变量/输出变量
  • h:假设函数
  • theta:参数
  • J(theta):代价函数   
  • alpha:学习率(相当于调整参数的速度)

目标:找到是代价函数的导数最小时的theta(相当于下图,导数为零时是最小值)



梯度下降算法:注意如何对代价函数J求导

可以使用矩阵相乘 

样本:[x1, y1; x2, y2; x3, y3;,; xm, ym]

theta = [theta0; theta1; theta2;; thetan]

X = [1, x1; 1, x2; 1, x3;; 1, xm]

y = [y1; y2; y3;;ym]

delta = ((X * theta - y)' * X * alpha / m)';   theta = theta - delta;


求导后的结果  J(thata)分别对theta1theta2求导




多变量梯度下降:



和单变量类似



公式:(使用矩阵相乘的方法,代码和单变量一毛一样)





tips


1、特征缩放

尽量将所有特征缩放到-1~1的区间


注意:计算的是所给样本的平均值和标准差,不是样本可能取值的。


2、学习率

如果学习率过小,则达到收敛所需的迭代次数会非常高;如果学习率过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

参考值:alpha = 0.010.030.11310


3、特征和多项式回归


x是二次幂、三次幂或者更多,可以先另x = x^n,然后同线性回归类似

注:如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。


4、正规方程


pinv(X'*X)*X'*y


要先转置再取逆是因为只有方阵才能求逆



(三)Matlab 基本操作:


行向量

v = 1 : 0.1 : 2     1开始,增量为0.1,直到加到2

生成矩阵

ones(2,3)  元素都为1的两行三列矩阵

zeros(2,3) 元素都为0

rand(2,3) 元素为0-1之间的随机数

randn(13) 正态分布  均值为0,方差或等于1的标准差

eye(6) 单位矩阵

hist 绘制直方图

size(A) 返回矩阵大小

size(A1) 返回矩阵的第一个元素

length(A) 返回矩阵最大维度大小

who 显示所有变量

v = priceY(1:10) 将向量Y的前十个元素存入v

A(23) 返回矩阵A2行第3列的元素

A(2,:) 返回第二行所有元素

A([1 3], :) 返回第一行和第三行的每一列

C = [A B] AB左右拼接

C = [AB] 上下拼接


plot(t, y1) 画图  hold on将新图画在旧图上

xlabel('time’)标记X轴;ylabel('value') 标记Y

load(‘a.txt’) 读取文件

save hello.mat v  v储存问hello.mat


(四)逻辑回归


和线性回归差不多吧,,但是只有0 1 ,,主要就是假设函数h(theta)变成了sigmoid函数


代价函数:




求导过程:不重要,反正你也不会看



一对多的问题:

将每次都将一种当作1 其他当作0,计算每一种情况




(五)正则化(正则化指的就是加入一个惩罚函数对模型向量进行惩罚)


过拟合问题

1、什么是过拟合

可以非常好的拟合训练集,但是在进行预测时可能效果不好


2、如何处理过拟合问题

  • 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA
  • 正则化。 保留所有的特征,但是减少参数的大小(magnitude)。


3、代价函数

从上图可以看出,出现过拟合的原因一般是高次项导致的,所以我们需要让高次项的系数接近于0,可是当特征很多时,我们不知道需要惩罚那些特征,所以可以做以下的简单假设


加入后面一项,使J(theta)变大了,,可是最后我们要得到代价函数尽可能的小,所以theta的值会一定程度上减小(不包括

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值