机器学习虚拟环境安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sisure_shen/article/details/82710855

软件环境:WIN7+VM12+UBUNTU18.04+PYTHON3.6+MOBAXTERM10.4

1、安装虚拟机VM12,然后安装ubuntu18.04最小版(不涉及到视频音乐软件等,所以用最小版,能用浏览器,处理文件就行)。

调用命令行可以使用快捷键:ctrl+alt+t

2、软件源需要更换一下,换成国内的软件镜像源,比如清华tuna、阿里云ali、网易163、百度等。

我用的清华TUNA软件源镜像:使用前,把系统自带的软件源镜像备份一下。

tuna源地址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

更换后,更新软件,然后重启:

apt  update;  apt  upgrade;    reboot;

3、ubuntu18.04自带python3.6.5,所以不用再安装python。但需要安装pip,

apt install python3-pip;

pypi的源在海外,速度较慢,可以使用国内douban,ali,tuna等的pip镜像源.

在用户默认目录下创建一个.pip目录,然后在.pip目录中创建一个pip.conf文件,在文件中保存pip镜像源。

 

douban的pip.conf配置:

[global]
index-url = https://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com

 

ali的pip.conf配置:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host = mirrors.aliyun.com

 

tuna的pip.conf配置:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn/simple

 

4、安装jupyter notebook,xgboost,lightgbm,scikit-learn这些机器学习要用的包。还需要安装数据科学和画图相关的包numpy,scipy,pandas,matplotlib,seaborn。(直接安装Anaconda也可以)

pip3 install jupyter xgboost lightgbm scikit-learn

其中的作用:

jupyter:

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。

Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等,数据挖掘领域中最热门的比赛 Kaggle 里的资料都是Jupyter 格式。

xgboost:

eXtreme Gradient Boosting 
项目地址:https://github.com/dmlc/xgboost

是由 Tianqi Chen http://homes.cs.washington.edu/~tqchen/ 最初开发的实现可扩展,便携,分布式 gradient boosting (GBDT, GBRT or GBM) 算法的一个库,可以下载安装并应用于 C++,Python,R,Julia,Java,Scala,Hadoop,现在有很多协作者共同开发维护。

XGBoost 所应用的算法就是 gradient boosting decision tree,既可以用于分类也可以用于回归问题中。并且其特点就是计算速度快,模型表现好。

其不足之处:

  • 每轮迭代时,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。

  • 预排序方法(pre-sorted):首先,空间消耗大。这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引,为了后续快速的计算分割点),这里需要消耗训练数据两倍的内存。其次时间上也有较大的开销,在遍历每一个分割点的时候,都需要进行分裂增益的计算,消耗的代价大。

  • 对cache优化不友好。在预排序后,特征对梯度的访问是一种随机访问,并且不同的特征访问的顺序不一样,无法对cache进行优化。同时,在每一层长树的时候,需要随机访问一个行索引到叶子索引的数组,并且不同特征访问的顺序也不一样,也会造成较大的cache miss。

lightgbm:

xgboost的出现,让数据民工们告别了传统的机器学习算法们:RF、GBM、SVM、LASSO……..。现在微软推出了一个新的boosting框架,想要挑战xgboost的江湖地位。

顾名思义,lightGBM包含两个关键点:light即轻量级,GBM 梯度提升机。

LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树。它可以说是分布式的,高效的,有以下优势:

  • 更快的训练效率

  • 低内存使用

  • 更高的准确率

  • 支持并行化学习

  • 可处理大规模数据

与常用的机器学习算法进行比较:速度飞起

scikit-learn:

有几个 Python 库提供一系列机器学习算法的实现。最著名的是 Scikit-Learn,一个提供大量常见算法的高效版本的软件包。 Scikit-Learn 的特点是简洁,统一,流线型的 API,以及非常实用和完整的在线文档。这种一致性的好处是,一旦了解了 Scikit-Learn 中一种类型的模型的基本用法和语法,切换到新的模型或算法就非常简单。

GBDT(其他模块):

GBDT(Gradient Boosting Decison Tree)中的树都是回归树,GBDT用来做回归预测,调整后也可以用于分类(设定阈值,大于阈值为正例,反之为负例),可以发现多种有区分性的特征以及特征组合。GBDT是把所有树的结论累加起来做最终结论的,GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差(负梯度),这个残差就是一个加预测值后能得真实值的累加量。比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学。 Boosting的最大好处在于,每一步的残差计算其实变相地增大了分错instance的权重,而已经分对的instance则都趋向于0。这样后面的树就能越来越专注那些前面被分错的instance。

 

pip安装的东西默认放到当前用户的默认录下的.local目录中,仅供当前用户使用,所以可以不用加sudo就可以使用,
安装完成后,执行以下这个命令,或者将这个命令,放到你的.bashrc文件中:

export PATH=$PATH:$HOME/.local/bin

原因:安装好的包使用命令在当前用户默认目录中的.local/bin目录中,所以要把该目录放到环境变量中,才能不管在哪个目录中都能直接使用其中的命令。

5、学习环境的使用。

执行命令:jupyter notebook  就可以打开使用了。

给notebook添加一个密码保护,使用命令: jupyter notebook password 

如果修改密码报错如下:FileNotFoundError: [Errno 2] No such file or directory: '/home/sisure/.jupyter/jupyter_notebook_config.json'

那么先执行下面这个命令后再改密码。

$ jupyter notebook --generate-config

notebook默认是在本机上开启的,如果想要在虚拟机外部访问notebook,需要执行下面的操作:

jupyter notebook --ip 0.0.0.0   #在0.0.0.0的地址上,接收所有的网络连接,不加ip参数,默认是只能在虚拟机内部使用。访问时候只需要把IP部分改为虚拟机内部IP地址即可。

6、可以用远程连接工具连接虚拟机,用于主机与虚拟机交互,比如用Xshell或者MobaXterm等。

 

参考资料:各类博客,CSDN人工智能学习资料,机器学习资料

 

 

 

展开阅读全文

没有更多推荐了,返回首页