1、mlpy安装要求
(1)需要先安装配置好以下软件:
GCC
Python且版本>= 2.6或为 3.X
NumPy且版本>= 1.3.0
SciPy 且版本>= 0.7.0
GSL 且版本>= 1.11
mlpy下载地址:http://sourceforge.net/projects/mlpy/files/
这里下载:mlpy-3.5.0.tar.gz安装包。
(2)GSL
GSL(GNU Scientific Library)作为三大科学计算库之一,除了涵盖基本的线性代数,微分方程,积分,随机数,组合数,方程求根,多项式求根,排序等,还有模拟退火,快速傅里叶变换,小波,插值,基本样条,最小二乘拟合,特殊函数等。
GSL源码包提供了以下二进制包:
gsl-bin:GNU Scientific Library (GSL) -- binary package
libgsl0-dbg: GNU Scientific Library (GSL) -- debug symbols package
libgsl0-dev: GNU Scientific Library (GSL) -- development package
libgsl0ldbl: GNU Scientific Library (GSL) -- library package
GSL下载地址:http://mirrors.ustc.edu.cn/gnu/gsl/
使用gsl-2.1.tar.gz安装包
安装过程:
$tar -zxvf gsl-2.1.tar.gz
$cd gsl-2.1
$sudo ./configure
$sudo make
$sudo make install
执行 make install 时,会自动将动态库和头文件分别拷贝到/usr/local/lib和 /usr/local/include 下面
2、安装
mlpy官方文档安装方法:
(1)解压mlpy与安装
$tar -zxvf mlpy-3.5.0.tar.gz
$sudo python setup.py install
假设GSL头文件和库文件没有安装在系统的标准位置,在这种情况下,mply的安装方式如下:
$python setup.py build_ext --include-dirs=/path/to/header --rpath=/path/to/lib
$python setup.py install
如果GSL安装在标准位置,则只需要运行上述命令中的最后一行。
3、测试
pca.py代码:
#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
import mlpy
np.random.seed(0)
mean, cov, n = [0, 0], [[1,1],[1,1.5]], 100
x = np.random.multivariate_normal(mean, cov, n)
pca = mlpy.PCA()
pca.learn(x)
coeff = pca.coeff()
fig = plt.figure(1)
plot1 = plt.plot(x[:, 0], x[:, 1], 'o')
plot2 = plt.plot([0,coeff[0, 0]], [0, coeff[1, 0]], linewidth=4, color='r')
plot3 = plt.plot([0,coeff[0, 1]], [0, coeff[1, 1]], linewidth=4, color='g')
xx = plt.xlim(-4, 4)
yy = plt.ylim(-4, 4)
z = pca.transform(x, k=1)
xnew = pca.transform_inv(z)
fig2 = plt.figure(2)
plot1 = plt.plot(xnew[:, 0], xnew[:, 1], 'o')
xx = plt.xlim(-4, 4)
yy = plt.ylim(-4, 4)
plt.show()
利用python pca.py运行报错:
错误描述:
Traceback (most recent call last):
File "pca.py", line 4, in <module>
import mlpy
File "/usr/local/lib/python2.7/dist-packages/mlpy/__init__.py", line 18, in <module>
import gsl
ImportError: libgsl.so.19: cannot open shared object file: No such file or directory
解决方法:将/usr/local/lib/目录下的libgsl.so.19库复制到/usr/lib/目录下问题解决。
命令:$sudo cp libgsl.so.19/usr/lib/
最终的运行结果如下图: