Python人脸识别
Python 人脸识别
“人脸识别”是人工智能的一个重要应用,听起来技术含量很高,貌似非常复杂,具体的实现也的确非常复杂,目前的算法一般都基于深度学习神经网络。但如果仅仅是使用识别功能,目前已有封装好的功能模块,并不需要训练模型,甚至不需要了解任何算法原理,只需调用
Python 的三方模块,几行代码即可实现人脸识别。
face_recognition
是目前使用方法最简单,效果也非常好的人脸识别库,它的离线识别率高达
99.38%。除了检测面部位置,它还能快速识别出面部特征:如眉毛、眼睛、鼻子、嘴,识别具体的人,对比两张脸的相似度等等。从后面例程可以看到,识别位置相当准确。
一、安装和原理
face_recognition 底层基于 dlib 实现。dlib
是一个人脸关键点检测库,它的核心功能由 C++
实现,适用于多个平台。不同于一般的 Python
三方模块,它在安装时需要编译,其 Github 上主要介绍了它在 Linux 和 MacOS
系统的安装方法。在 Windows 系统下编译安装过程比较复杂,需要安装 Visual
Studio 的 Visual C++ fo ...
Fritzing画电路图
Fritzing 画电路图
#Arduino
Fritzing 是一套设计 PCB (Printed Circuit Board) 印刷电路板的软件
1. Ubuntu 系统安装方法
$ sudo apt-get install fritzing
$ Fritzing # 运行
2. 其它平台软件下载地址: http://fritzing.org/download/
3. 新建元件
做图过程中难免有图库中没有的元件,需要新建元件。Fritzing
1.7
之后的版本不能直接创建元件,需要在相似元件的基础上修改,比较麻烦。我只想画一个连线示意图,操作越简单越好,故下载了
Fritzing
0.6.4b 版本,它的元件菜单中支持 " 新建 "。
最终绘图效果如下图所示:
[](https://img-blog.csdnimg.cn/20190721192642250.png?x-oss-
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpZXlhbj ...
TF-IDF逆文本频率指数
TF-IDF 逆文本频率指数
1. 原理
TF-IDF(term frequency–inverse document
frequency)是信息处理和数据挖掘的重要算法,它属于统计类方法。最常见的用法是寻找一篇文章的关键词。
其公式如下:
TF(词频)是某个词在这篇文章中出现的频率,频率越高越可能是关键字。它具体的计算方法如上面公式所示:某关键在文章中出现的次数除以该文章中所有词的个数,其中的
i 是词索引号,j 是文章的索引号,k 是文件中出现的所有词。
IDF(逆向文档频率)是这个词出现在其它文章的频率,它具体的计算方法如上式所示:其中分子是文章总数,分母是包含该关键字的文章数目,如果包含该关键字的文件数为
0,则分母为 0,为解决此问题,分母计算时常常加
1。当关键字,如“的”,在大多数文章中都出现,计算出的 idf 值算小。
词出现次数越多,idf
为越大的负数,说明这词没什么用;出现少,则为正值;不多不少为 0
把 TF 和 IDF 相乘,就是这个词在该文章中的重要程度。
2. 使用 Sklearn 提供的 TF-IDF 方法
Sklearn 是最常用的机器学习第三方 ...
自动机器学习框架之三_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
数 ...