《MatlabProjectsSY1106404罗杨机器学习大作业一》由会员分享,可在线阅读,更多相关《MatlabProjectsSY1106404罗杨机器学习大作业一(15页珍藏版)》请在金锄头文库上搜索。
1、机器学习大作业一 过三关二分类问题,组 长: 罗杨 SY1106404 副 组 长: 刘康 SY1106625,北京航空航天大学 北京市网络技术重点实验室 2019年6月,报告内容,线性回归方法 LDA方法 二层BP神经网络方法 支持向量机方法 分析与总结总结,2,基本思路,输入strData和strResult 输入数值化为data和result x:1 o:-1 b:0 positive:1 negative:-1 输入的一部分用作训练:dataTrain和resultTrain,另一部分用作测试:dataTest和resultTest 最后将result与resultTest相比对,得出
2、准确率 侧重于分析样本偏差和准确率之间的关系 Matlab7.0实现,3,线性回归方法 Linear Regress,4,线性回归方法 Linear Regress,5,线性回归方法 Linear Regress,存在问题: 回归方法主要适用于拟合问题,针对二分类应用有一定限制,主要表现为判定条件不确定,只有在两类样本数接近的情况下才能得到较好的结果。,6,线性判别分析方法 LDA,w1 = ; w2 = ; for (i = 1 : size(dataTrain, 1) if (resultTrain(i) = 1) w1 = w1; dataTrain(i, :); elseif (res
3、ultTrain(i) = -1) w2 = w2; dataTrain(i, :); end end s1 = cov(w1, 1); s2 = cov(w2, 1); m1 = mean(w1); m2 = mean(w2); sw = s1 + s2; w = inv(sw) * (m1 - m2); y0 = (w * m1 + w * m2) / 2; y1 = w * m1; y2 = w * m2; resultTest = dataTest * w;,7,线性判别分析方法 LDA,LDA方法稳定性总体较好,准确率保持95%+ 有时会出现极不稳定的情况,8,二层BP神经网络方法
4、BP ANN,net = newff(minmax(p), n, 1, tansig, purelin, trainlm); net.trainParam.epochs = epochs; net.trainParam.goal = aim; net = train(net, p, t); resultTest = sim(net, dataTest); 传递函数:tansig、purelin 训练算法:trainlm Epochs:50 Goal:0.01,9,二层BP神经网络方法 BP ANN,NN方法稳定性比LDA好,准确率保持95%+ 在正样本率差距较大时,易出现准确率急剧下降的情况,
5、10,支持向量机方法 SVM,SVM功能分类: C-SVC、-SVC、-SVR和-SVR SVM工具分类: Matlab自带的通用SVM工具箱(二分类) 台湾大学林智仁开发的libsvm工具箱(分类,回归) lssvm工具箱(分类,回归) 经过matlab SVM和libsvm的比较,发现速度上libsvm具有明显优势,所以本实验采用libsvm。,11,支持向量机方法 SVM,Libsvm和matlab SVM,12,支持向量机方法 SVM,SVM方法稳定性不高,对样本偏差非常敏感,13,总结,有一定规模的均匀的训练样本的话,四种方法都能达到较好的测试效果。 在训练样本分布不均匀时,BP神经网络和LDA方法效果较好。BP神经网络更稳定一些。 线性回归主要用来拟合,因此效果不佳。 SVM方法效果不好,估计是参数选取的问题。,14,敬请批评指正,谢谢!,北京航空航天大学 北京市网络技术重点实验室 2019年6月,