自动机器学习框架之三_Auto-Keras
自动机器学习框架之三
_Auto-Keras
对于训练深度学习,设计神经网络结构是其中技术含高最高的任务,优秀的网络架构往往依赖建构模型的经验,专业领域知识,以及大量的算力试错。实际应用中往往基于类似功能的神经网络微调生成新的网络结构。
Auto-Keras
是一个离线使用的开源库,用于构建神经网络结构和搜索超参数,支持 RNN,CNN
神经网络,它使用了高效神经网络搜索
ENAS,利用迁移学习的原理将在前面任务中学到的权值应用于后期的模型中,效率相对较高。除了支持
keras,它还提供 TensorFlow 他 PyTorch 的版本。
1. 安装
由于需要把输出的神经网络结构保存成图片,使用了 pydot 和 graphviz
图像工具支持,auto-keras 支持 torch
等多种工具支持,因此,安装时会下载大量依赖软件。使用以下方法安装
auto-keras:
123$ apt install graphviz $ pip3 install pydot$ pip3 install autokeras
使用以下方法下载源码:
1$ git clone https ...
自动机器学习框架之二_AutoML
自动机器学习框架之二 _AutoML
Auto ML(Auto Machine
Learning)自动机器学习是个宽泛的概念,有不只一个软件以此命名,本篇介绍的
Auto-ML 并非谷歌基于云平台的 AUTOML。本篇介绍的 Auto-ML
也是一款开源的离线工具,它的优势在于简单快速,且输出信息比较丰富。它默认支持
Keras、TensorFlow、XGBoost、LightGBM、CatBoost 和 Sklearn
等机器学习模型,整体使用进化网格搜索的方法完成特征处理和模型优化。
安装
Auto-ML 安装方法如下:
1$ pip install auto-ml
为更多地了解 auto-ml 的功能和用法,建议下载其源码:
1$ git clone https://github.com/ClimbsRocks/auto_ml
举例
本例也使用 96 年美国大选数据,将”投票 vote”作为因变量,它有只 0/1
两种取值,因此使用分类方法
type_of_estimator=’classifier’,训练时需要用字典的方式指定各字段类型:其中包括:因变量
outpu ...
自动机器学习框架之一_Auto-Sklearn
自动机器学习框架之一
_Auto-Sklearn
当我们做完了特征工程之后,就可以代入模型训练和预测,对于模型的选择及调参,主要根据分析者的经验。在具体使用时,经常遇到同一批数据,同一种模型,不同的分析者得出的结果相差很多。
前面学习了几种常用的机器学习方法原理以及适用场景,对于完全没有经验的开发者,只要有足够时间,尝试足够多的算法和参数组合,理论上也能达到最优的训练结果,同理程序也能实现该功能,并通过算法优化该过程,自动寻找最优的模型解决方案,即自动机器学习框架。
我们将在未来的三周里分别为大家介绍三个常用的机器学习框架:auto-sklearn、auto-ml
和 auto-keras。
Auto-Sklearn 主要基于 sklearn
机器学习库,使用方法也与之类似,这让熟悉 sklearn 的开发者很容易切换到
Auto-Sklearn。在模型方面,除了 sklearn 提供的机器学习模型,还加入了
xgboost 算法支持;在框架整体调优方面,使用了贝叶斯优化。
(转载请注明出处:https://www.jianshu.com/p/cd775730a1ec)
...
TableOne数据分析工具
TableOne 数据分析工具
前面学习了统计描述和统计假设的 Python
方法,分析数据表时,需要先确定因变量 Y,然后对自变量 X
逐一分析,最后将结果组织成数据表作为输出,还是比较麻烦,使用 TableOne
工具可以简化这一过程。
TableOne 是生成统计表的工具,常用于生成论文中的表格,TableOne
底层也基于 scipy 和 statsmodels
模块实现,其代码主要实现了根据数据类型调用不同统计工具,以及组织统计结果的功能。它支持
Python 和 R 两种语言,可使用以下方法安装:
1$ pip install tableone
TableOne 的核心代码只有 800 多行,建议下载其源码,阅读核心代码文件
tableone.py,以了解其全部功能和工作流程,并从中借鉴统计分析的具体方法。
1git clone https://github.com/tompollard/tableone
下例中分析了 96 年美国大选数据,用 groupby
参数指定了其因变量,categorical 参数指定了自变量中的分类型变量,使用
pval=True 指定了需要计 ...
Stata中常用的数据分析命令
Stata 中常用的数据分析命令
1. 常用的数据分析工具
Stata、SPSS、SAS、R、Python,甚至 Excel 都可以做数据分析工作。R 和
Python
是程序员的首选,可以通过编写程序实现成整体的数据清洗、分析、挖掘,还可以增加扩展支持,把一套代码应用于类似的数据分析场景中。对于专业人士(如生物、医疗领域)来说,掌握编程语言的学习成本太高,他们更关注通过工具,方便快捷地得到分析结果,SPSS
和 Stata
主要是图形界面的软件操作,相对来说更为合适。很多专业领域,发论文时都使用了
Stata 和 SPSS
软件的分析结果,久而久之,也使该软件成为了该领域的数据分析标准工具。
###2. Stata 安装和运行
我下载的是 Stata 15.1 Linux 版本,下载到本地解包后,可看到工具 stata
和
xstata,它们分别是命令行版本和图形界面版本,图形界面中也可以使用命令,运行
xstata:
1$ ./xstata
可在其下方的框内输入 Stata
命令回车运行,该软件中最常用的三个菜单是:Data(数据处理)、Graphic(画图)和
Sta ...
Python写日志文件
Python 写日志文件
日志文件是记录程序操作及事件的记录文件或记录文件的集合。一般由程序开发人员编写,开发、运维人员共同使用,开发人员可以通过日志调试程序,运维人员通过日志检查程序近期是否正常运行,如果出现异常,则可通过日志快速定位问题。因此,用日志记录程序流程,事件,以及异常时的详细信息非常重要,尤其是对于部署在客户场地的程序。另外,日志有时也用于记录用户操作、程序运行地理位置等跟踪信息,用于后台的用户研究和数据挖掘。
日志文件需要详细、清晰、且具有高可读性,以便减少开发与运维人员后期的沟通成本,有时候我们也使用程序来检测和分析日志,因此,定义关键字和格式也很重要。
Python 使用 logging
工具管理日志,日志可以在终端显示,也可以记录成文件,每条日志都用级别号标志其严重程度,一般通过级别过滤选择性地记录和显示日志,级别定义如表
5-1 所示:
(谢彦技术博客)
本例展示了以屏幕输出和文件输出两种方式记录日志信息,日志文件为当前目录下的
log.txt,格式为文本文件。例程中设置了三次日志级别,第一次对程序中所有日志设置,级别为
DEBUG,即显示全部日 ...
Seaborn多图组合
Seaborn 多图组合
1. jointplot 两变量图
数据分析中常用做图的方式实现相关性分析,即 X 轴设置为变量 A,Y
轴设置为变量
B,做散点图,由于散点图中点的叠加显示,往往还需要关注每个变量自身的分布情况,jointplot
把描述变量的分布图和变量相关的散点图组合在一起,是相关性分析最常用的工具,图片上还能展示回归曲线,以及相关系数。
123456import statsmodels.api as smimport seaborn as snssns.set(style="darkgrid")data = sm.datasets.ccard.load_pandas().datag = sns.jointplot('AVGEXP', 'AGE', data=data, kind="reg", xlim=(0, 1000), ylim=(0, 50), color="m")
本例中使用 statsmodels 库的 ccard
数 ...
半小时搞定Hadoop+Mysql+Hive+Python
半小时搞定 Hadoop+Mysql+Hive
#操作系统/Linux #数据存储/MYSQL
1. 说明
搭建过 Hadoop 集群的小伙伴一定知道,如果不用 docker,半小时配好
Hadoop+Mysql+Hive(后简称 Hive)肯定是胡吹,有了 Docker
镜像,没有说明文档,配好了也不一定会用。本文将介绍如何在半小时内,让
Hive 在你的 Linux 系统上运行起来,并且可以通过 Python
程序访问其中数据。
2. 使用集群
Hadoop 需要安装 Java 虚拟机,创建 Hadoop 用户,下载安装 Hadoop
软件,修改多个配置文件,启动服务等,有时由于操作系统不同还需要重编
Hadoop 源码。没亲亲自搭建过可以参考这篇 Python海量数据处理之_Hadoop(一)集群搭建。整个
Hadoop 系统就非常复杂,涉及各种类型 Node 的概念及原理。本文主要介绍对
HIVE 的使用方法,只需要 Hadoop 可用,因此使用了 Hadoop,MySQL 及 Hive
都正常安装和配置好的 dokcer image.
首先,查找可用的 Hive 的 ...
python数据统计分析
python 数据统计分析
1. 常用函数库
scipy 包中的 stats 模块和 statsmodels 包是 python
常用的数据分析工具,scipy.stats 以前有一个 models
子模块,后来被移除了。这个模块被重写并成为了现在独立的 statsmodels
包。
scipy 的 stats 包含一些比较基本的工具,比如:t
检验,正态性检验,卡方检验之类,statsmodels
提供了更为系统的统计模型,包括线性模型,时序分析,还包含数据集,做图工具等等。
2. 小样本数据的正态性检验
(1) 用途
夏皮罗维尔克检验法 (Shapiro-Wilk)
用于检验参数提供的一组小样本数据线是否符合正态分布,统计量越大则表示数据越符合正态分布,但是在非正态分布的小样本数据中也经常会出现较大的
W 值。需要查表来估计其概率。由于原假设是其符合正态分布,所以当 P
值小于指定显著水平时表示其不符合正态分布。
正态性检验是数据分析的第一步,数据是否符合正态性决定了后续使用不同的分析和预测方法,当数据不符合正态性分布时,我们可以通过不同的转换方法把非正太态数据转换成 ...
迁移学习之_猫狗大战
迁移学习之 _ 猫狗大战
#图形图像 #算法实战
1. 迁移学习
迁移学习(transfer
learning)是指将已经学习的知识应用到其它领域,在图像识别问题中,是将训练好的模型通过简单调整来解决新的问题。从图像中提取特征,不一定需要算力强大的
GPU,训练上百层的神经网络。
卷积神经网络中卷积层和池化层可以抽取图片的几何特征,比如浅层的卷积用于抽取出一些直线,角点等简单的抽象信息,深层的卷积层用于抽取人脸等复杂的抽象信息,最后的全连接层是对图片分类的处理。因此,我们可以使用网络的前
N-1 层提取特征。
例如,利用在 ImageNet 数据集上训练好的 ResNet50
模型来解决一个自定义的图像分类问题:保留训练好的 ResNet50
模型中卷积层的参数,只去掉最后一个全连接层,将新图像输入训练好的神经网络,利用前
N-1 层的输出作为图片的特征,将 ResNet50
模型作为图片特征提取器,提取得到的特征向量作为输入训练新的单层全连接网络来处理新的分类问题,或者将这些特征代入
SVM,LR 等其它机器学习模型进行训练和预测。
在数据量足够的情况下,迁移学习的效 ...