python机器学习常用模块

时间:2022-12-06 09:00:59

numpy 可以高效的处理数据,提供数组支持,很多模块都依赖它,比如pandas,scipy,matploylib,所以这个模块是基础。numpy+mkl

pandas 用于进行数据探索和数据分析
scipy 主要进行数值计算,同时支持矩阵运算,并提供了很多高等数据处理功能,比如积分,傅里叶变换,微分方程求解等
matplotlib 作图模块,解决可视化问题
statsmodels 主要用于统计分析。
Gensim 这个模块主要用于文本挖掘。
sklearn 机器学习
keras 深度学习
jieba 用于分词,对于英文可以空格分词,中文分词需要词典;jieba中还有多种模式,同时jieba还可以关键词的提取
tflearn 深度学习,对tensorflow进一步封装
图像处理工具 opencv

 

pandas 数据分析库
是为了解决数据分析任务而创建的一种基于numpy的工具
纳入了大量的库和一些标准的数据模型,提供了非常高效的操作大型数据集的方法,提供了大量使我们快速的便捷的处理数据的函数
使得python成为广泛使用的高效的数据环境

# 1 Series & dataFrame 主要的数据结构
# 2 Basic & Select & Set 基本操作
# 3 Missing Data Processing 丢失值处理
# 4 Merge & Reshape 数据融合 形状定义
# 5 Time Series & Graph & Files 时间序列 图形绘制 文件操作

 

scikit-learn 是基于python的数据挖掘建模和机器学习的工具包
可以非常方便的实现分类、回归、降维等数据挖掘和机器学习的常用的操作
是基于python的高级数据分析中非常重要的工具包
官网:http://scikit-learn.org/
也是开源软件,可以在github上找到开源的代码
Github:https://github.com/scikit-learn/scikit-learn

1、机器学习与决策树Machine learning&Decision Tree
2、scikit-learn实现决策树Realizing Decision Tree

机器学习
权威解释:计算机程序如何随着经验积累自动提高性能
实际上,机器学习模拟的是人的学习,人做出决定的时候是基于以往的经验
机器的经验是历史数据,本质是函数
例如:垃圾邮件检测
是否群发或者邮件内容是否包含链接是判断是否是垃圾邮件的重要因子,我们事先告诉机器哪些是垃圾邮件哪些不是
基于我们定义的属性以及定义需要用到的数据,就可以得到一个判断邮件是否是垃圾邮件的模型
下次输入参数的时候,机器可以根据训练好的模型(或者可以称为一个函数)作出判断
这其中最基础的就是数据,对做决定起着最重要的关键作用的就是机器学习算法

机器学习:因子----》结果
结果:不打标记----》无监督学习(例如:对植物的分类,不知道属性是什么,只是简单的聚类)
打标记----》监督学习(例如垃圾邮件检测,我们会告诉机器到底是不是垃圾邮件,需要打标记)
如果打标记的数据结果是有限离散的----》分类算法
如果打标机的数据结果是连续的----》回归算法
决策树:监督学习 树形结构
每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别
例如是否出去玩,天气是sunny有2个出去玩3个不出去玩,如果是rain有3个出去玩2个不出去玩,如果晴天的情况下再看湿度
可以利用信息熵的概念H(U)=E[-logpi],所有概率*log概率的和结果取负值
把原始数据集分类成几部分之后可以得到新的信息熵,叶子信息熵=本节点算法*(叶子实例集个数占上节点总个数的比值)
叶子信息熵和上节点信息熵差值最大的当做判断条件

机器学习监督学习与无监督学习。机器学习的本质是一个函数。机器学习使用训练好的算法或者函数对历史数据进行处理,得出我们想要的结果。
根据结果的不同,我们把机器学习分成以下几类
如果不在打标记的情况下得出的结果我们称之为无监督学习,如聚类和关联规则
如果提前进行打标记处理,那么就是监督学习。根据打标记的数据是离散的还是连续的,我们又进一步分为分类(结果是有限、离散的)和回归(结果是连续的)。
数据挖掘和机器学习的一般步骤是数据预处理数据建模结果验证,这个工具包具体要结合自己的论文和实习进行整理。

Keras
另一种机器学习模型人工神经网络
人工神经网络有两个比较著名的框架,一个是诞生于LISA lab的Theano,一个是谷歌开源的Tensorflow
Keras是二者的高层应用API,简化了构建人工神经网络的步骤,让人工神经网络更容易实现
Windows下的Tensorflow还不是很成熟,所以接下来的实例中采用基于Theano的Keras
官网:https://keras.io/

1、人工神经网络简单介绍Neural Net
人工神经网络的是一种机器学习运算模型
计算学习的运算模型本质上来说就是构造一种映射函数,人工神经网络也不例外
从数学上可以证明,人工神经网络可以映射成所有的非线性函数
神经网络由大量的节点(或者我们可以称之为神经元)直接相互连接构成的
通过对节点的输入进行加权求和,这里的节点的输入不一定是网络的输入,这里的权值就是模型所需要训练的参数,最后通过一个非线性函数,实现对模型的非线性处理
常用的非线性函数:sigmoid、thanh、ReLU、softplus
人工神经网络一般分为输入层(Input layer)、隐含层(Hidden layer)、输出层(Output layer)
层与层之间相互连接,一般情况下同一层以内是不进行连接的,当然也有特殊情况比如RNN节点对自己进行反馈连接
一般的数据分析中,隐含层只有一层就够了,如果隐含层有很多层的就是深度学习网络(其参数计算过程与浅层神经网络的训练过程不太一样)

人工神经网络ANN
反向传播
激活函数
多层神经元
映射到分类种类

Dense全连接层
Activation激活层
SGD随机梯度下降算法
标签先独热码化

2、keras实现人工神经网络Keras Installation & Neural Network with Keras
Installation:因为Anaconda不自带,所以需要额外安装
1、打开Anaconda命令行prompt
2、输入命令conda install mingw libpython
3、输入命令pip install keras(windows下会先安装theano再安装keras)
然后使用pycharm运行程序一次报错No module named tensorflow
这里是因为如果使用theano下的keras需要指定
只要运行过keras就会在电脑有c:\user\电脑名字\keras\keras.jason
备份之后修改这个文件,修改两处,修改为"image_dim_ordering":"th"和"backend":"theano",保存关掉
再运行提示用的是Theano客户端(Using Theano backend)就成功了