matlab 中机器学习工具箱中分类器下有SVM工具,其中介绍SVM新函数时有这样一个例子:LoadFisher's iris data set. Remove the sepal lengths and widths, and all observedsetosa irises.
程序:
load fisheriris %我看了一下,fisheriris是matlab系统自带的fisheriris.csv文件,里面有5列数据,151行,第1行是项目名称:SepalLength,SepalWidth,PetalLength,PetalWidth,Species,第2行以后是5.1,3.5,1.4,0.2,setosa;。。。。等等这样的数据。
load的意思是读入fisheriris这个文件到系统里。运行之后matlab工作区生成2个文件。
Meas就是前四列全部数据的矩阵,不含名称这行;species就是最后一列即第五列数据。
strcmp(species,'setosa');就是把species过滤一下,把species中的每个元素和s做比较,如果一致,则对应位置的元素为1,否则,为0。前50行是'setosa'就变成1,后100行不是就是0。inds = ~strcmp(species,'setosa');% 取反后返回值inds是一个和species有相同size的logical array,inds的元素是1或0。数据文件中species列里面是'setosa'的共有50行。再取反,应该就是一列向量,前50项是0,后面100项是1。
X = meas(inds,3:4); 前2列按程序目的被移除,