线性模型与LDA(附MATLAB代码)(周志华的《机器学习》整理)

  • 最小二乘法:基于均方误差最小化来求解模型的方法,称为“最小二乘法”(least square method)。(实际上就是试图找到一条直线,使得所有样本点距离直线的“欧式距离”(Euclidean distance)之和最小)
  • 线性回归(linear regression): f ( x i ) = w x i + b f(x_i)=w x_i+b f(xi)=wxi+b
  • 对数线性回归(log-linear regression): l n f ( x i ) = w T x ⃗ + b ln f(x_i)=w^T \vec{x}+b lnf(xi)=wTx +b
  • 对数几率函数(logistic function): y = 1 1 + e − z y=\frac {1} {1+e^{-z}} y=1+ez1该函数能够将z值转化为一个接近0或者是1的y值
  • 线性判别分析(Linear Discriminant Analysis,LDA):在二分类问题上,LDA设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近(协方差尽可能小),异类样例的投影点尽可能远离(让类中心之间的距离尽可能大)。在多分类问题上,LDA将样本投影到d‘维空间,d’通常远小于数据原有的属性d,因此LDA也被视为一种经典的监督降维技术。
    在这里插入图片描述
    附LDA的matlab代码(标签在最后一列):

function [A,predict_label]=f_LDA(tr,te)

%Input: tr: Training set
% te: testing set
% Note that: each row represents a instance, last column is label, begins from 1
%Output: A: Testing Accuracy
% predict_label: predict label by DA for testingdata

data=[tr;te];
n=size(data,2);
m1=size(tr,1);m2=size(te,1);

trd=tr(:,1:n-1);trl=tr(:,n);
ted=te(:,1:n-1);tel=te(:,n);

obj = ClassificationDiscriminant.fit(trd, trl);
predict_label = predict(obj, ted);

bj=(predict_label==tel);a=nnz(bj);
A=a/m2; %输出识别率

end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值