资源简介
用matlab实现了机器学习中的感知机学习算法(perceptron algorithm),利用前500个样本值训练分类器,用剩余样本做测试。

代码片段和文件信息
function ganzhiji()
%利用感知机学习算法训练分类器解决tic tac toe游戏问题
%样本数据digitdata2.txt文件中,×是1,o是-1,b是0,positive是1,negative是-1
%样本数据顺序进行了调整,1-250个是第一类,251-500个是第二类
%利用前500个样本训练分类器,剩下458个样本做测试
%digitdata中,×是1,o是2,b是3,positive是1,negative是-1
A = importdata(‘digitdata2.txt‘);%导入样本数据为一个958行10列的矩阵
%A = importdata(‘digitdata.txt‘);%导入样本数据为一个958行10列的矩阵
%A = importdata(‘littledata.txt‘);%少量数据,调试用
% B保存剩下用来测试的样本
for i = 501:958
B(i-500:) = A(i:);
end
%将矩阵A的第10列置为1,得到每个样本的增广向量
for i = 1:958
A(i10) = 1;
end
%disp(A);
%初始化一些参数
w = rand(101);%初始权向量,10维列向量
%disp(w);
p = 1;%梯度下降的步长
ox1 = -1;%符号系数,保证代价函数大于0
ox2 = 1;
s = 1;%迭代标志位
n = 0;%迭代次数
w1 = [0 0 0 0 0 0 0 0 0 0]‘;%10维列向量,临时权向量
%disp(w1);
%迭代过程
while s
J = 0;%代价函数的初值
j = [0 0 0 0 0 0 0 0 0 0]‘;%用于每次迭代过程中临时累加下降量
%for i = 1:5
for i = 1:250 %第一类样本
if( A(i:)*w >0 )%x属于第一类且w‘x>0,分类正确
w1 = w;%权向量不变
else %分类错误
j = j + ox1 * A(i:)‘;%累加下降量
J = J + ox1 * A(i:) * w;%更新代价函数
end
end
%for i = 6:10
for i = 251:500 %第二类样本
if( A(i:)*w <0 )%x属于第二类且w‘x<0,分类正确
w1 = w;%权向量不变
else %分类错误
j = j + ox2 * A(i:)‘;%累加下降量
J = J + ox2 * A(i:) * w;%更新代价函数
end
end
if J==0 %代价函数为0,即没有错分的样本了
s = 0;%迭代终止
disp(‘迭代终止‘);
else
w1 = w - p*j;%得到新的权向量
p = p + 0.1;%增加步长
n = n + 1;
%disp(n);
%disp(J);
end
w = w1;%将临时权向量w1赋值给w
end %while s
disp(‘迭代次数:‘);disp(n);%输出迭代次数
disp(‘权向量:‘);w%输出权向量
%迭代结束后,w即为所得最优分类面
count = 0;%测试样本分类正确的个数
for i = 501:958
if( A(i:) * w >0 ) %第一类
B(i-50011) = 1;
if( B(i-50010) == 1 ) %分类正确
count = count + 1;
end
else %第二类
B(i-50011) = -1;
if( B(i-50010) == -1 ) %分类正确
count = count + 1;
end
end
end
%disp(B);
disp(‘正确率:‘);
disp(count/458);%输出正确率
end %function ganzhiji()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 32072 2012-11-06 22:52 digitdata2.txt
文件 2450 2012-11-08 13:40 ganzhiji.m
----------- --------- ---------- ----- ----
34522 2
- 上一篇:matlab车牌识别程序源代码
- 下一篇:matlab国债期货套期保值代码
相关资源
- 斯坦福机器学习编程作业machine-learn
- MATLAB与机器学习
- MACHINE_LEARNING_with_NEURAL_NETWORKS_using_MA
- 交替方向乘子法ADMM算法的matlab代码
- 机器学习 : 实用案例解析 mobi格式
- 带操作界面GUI的字母识别-MATLAB程序
- matlab流形学习算法工具包&matlab机器学
- 机器学习工具包spider工具包
- MATLAB与机器学习 李三平 陈建平译 译
- 机器学习Lasso回归重要论文和Matlab代码
- RVM-MATLAB-V1.3.zip
- 机器学习高斯混合模型资料总结含m
- Coursera吴恩达机器学习课程作业资料
- KNN算法训练MNIST和CIFAR数据集
- Matlab Deep learning 2017年新书
- 机器学习与MATLAB代码
- matlab与机器学习代码
- 机器学习课程设计《基于朴素贝叶斯
- usps手写数字数据集
- cifar-10 数据集 MATLAB版本
- 斯坦福大学CS229机器学习完整详细笔记
- MATLAB神经网络43个案例分析源码
- MATLAB神经网络30个案例分析全书+源代
- 斯坦福机器学习公开课CS229讲义作业及
- 机器学习基础,配套代码
- 机器学习:近20种人工神经网络模型m
- 机器学及其matlab实现—从基础到实践
- mnist的mat格式数据
- 《MATLAB神经网络43个案例分析》源代码
- 机器学习基础教程 matlab代码+数据
评论
共有 条评论