Mac上Matlab库libsvm安装指南

来源:互联网 发布:网络创世纪uo汉化 编辑:程序博客网 时间:2024/06/06 06:37

Mac上Matlab库libsvm安装指南





How SVM works

一个星期前装了Kinect的环境,当时用的百度搜索教程,往上各种不靠谱的教程简直搞死人。其实以前很少遇到这种情况,主要因为安装配置的东西都比较大众。但是一遇到往Mac里配置,这个时候搜百度=找虐。
写这个安装指南有三个点:一是不让兄弟们再被百度上的安装方法坑了,俺已经被坑疯了;二是能让不会爬梯子的兄弟姐妹们少蛋疼一点,看看靠谱的安装指南(Mac的真的太稀缺了TAT);三是留作备份,别下次再装自己忘了才是蛋疼蛋疼又蛋疼。

环境和适用

机器:MacBook Pro (Retina, 13-inch, Mid 2014)
系统:OS X Yosemite 10.10.3
Matlab版本:Matlab-R2014b

SVM书籍

最近在看SVM的时候,觉得有三本书不错:
『数据挖掘:概念与方法』
『MATLAB神经网络30个案例分析』
『理解SVM的三层境界』

推荐第一本因为里面的SVM只有5页,然则概念讲的很清楚,而且5页嘛,快速入门的感觉也是爽的。第二本书名是神经网络,但是神奇地用了4章来讲SVM(也是醉了),关键是有代码(和!注!释!),能运行一下看看效果。第三本太经典不多说了。
(画风诡异地变成了SVM书籍推荐,不是说好的Mac上的libsvm安装指南吗)

Mac上Matlab安装libsvm

(最近发现装个新软件简直是折寿,想快点安装好就费脑子想吧,别怕被累死,不想动脑子的网上搜吧,多半被坑死)
Matlab上跑svm是如果用到libsvm库需要先安装libsvm库。Mac纠结的地方就在于:Windows直接把库包含进去就行了,WIN下的Matlab会混合模式编译库里面的.c文件形成Matlab能用的.m文件,但是Mac下的Matlab没自动的混合编译——因此需要装Matlab的补丁。(说来还是Mathwork公司的问题 - -)
但是俺们都知道Matlab一堆数学家搞得老精了咋会出这个问题呢?再深挖一下:因为Mac没自带command line tools,这样一来就算Matlab调用混合编译Mac也会给你报个错。(Apple Inc你够了 - - )
言归正传,到底咋安装呢?Mathwork官方论坛上说的妥妥的,翻译过来+自己经历:

  1. 准备工作:首先你得有一台Mac(Windows滚粗!WIN安装这么方便自己滚去百度!),其次你得安装Matlab,最后你得下俩东西:
    Matlab optsPatch10.8.patch
    (OS操作系统版本10.8及以上的都用这个,10.7及以前版本的在上面论坛链接里找以前版本的补丁)
    libsvm库

  2. 安装command line tools:这一步百度到的教程让直接崩溃了——下载Xcode,再在Xcode里面安装命令行工具。网上教程的原话是这样的:『我装Xcode用了1个小时,在Xcode里装command line tools用了1个小时』。(为啥用这么久呢?因为蠢。哪个缺心眼的发明的方法。)那咋装呢?
    打开终端,输入命令:xcode-select --install
    然后点击安装就OK了。

  3. Matlab打补丁:给Matlab打上第一步中下的那货:optsPatch10.8.patch。在Matlab命令框中输入:
    cd(matlabroot)
    !unzip -o ~/Downloads/optsPatch10.8.patch

    第二行解压缩,路径要是不对,那就:对补丁右键,显示简介,通用里面有个位置,复制过去代替掉代码里的路径就行。

  4. mex -setup:告诉Matlab可以用混合模式编译了。在Matlab命令框中输入:
    mex -setup

  5. make:第二步安装的命令行工具就是为了make的(咦,哪里听起来不对?嘿嘿),打开libsvm库里面的MATLAB文件夹,找到make.m文件,在MATLAB里面打开,运行,成功之后会发现在原文件夹多了四个.m文件。

  6. 引入库。不知道为啥教程们都没这一步!那咋可能运行正常呢?!
    Matlab中HOME标签页点Set Path,出来个框,左侧点Add With Subfolders,把libsvm中MATLAB文件夹加进去,点Save,Close。大功告成。

安装遇到问题的同志直接在下面评论吧,我会即时回复。

转自:Hongyang Wang


作者署名:Hongyang Wang
版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

0 0