python数据分析模块

在这里插入图片描述

numpy
·——numpy就上一个支持矩阵等数学运算的一个python第三方库(和scipy统称为python的统计学与线性代数),常常用在深度学习中,和TensorFlow配合使用
numpy提供了许多高级的数值编程工具,如矩阵、矢量、精密的运算库
numpy和稀疏矩阵运算包scipy配合使用更加方便
(广播:矩阵和标量相乘,这时标量需要根据矩阵的形状扩展,扩展的过程叫广播)
(使用他的一个优点是显式循环语句明显减少,数值运算效率更高(底层直接调用c运算))

scipy
和numpy差不多,对他的功能有一定扩充
和numpy都实现了傅里叶分析,最高效的算法快速傅里叶变换FFT

傅里叶分析:是建立在傅里叶极数之上的一种数学方法,是一种表示函数的数学方法,它通常使用正弦函数和余弦函数构成的无穷级数来表示函数

matplotlib
·——是一个数据展示工具,数据可视化,可以用来做数据分类展示和相关处理比如线性回归等
他类似与MATLab的过程式API,pandas中ploy方法也封装了一些相关的matplotlib函数,也能完成一些数据可视化的任务
使用pyplot子库中的ploy()函数创建图

pandas(panel data 面板数据)
·——是一个常用的数据操作、数据分析第三方库,配合numpy可以完成各种统计分析任务,支持数据的检索加工存储等操作
可用来读写CSV、JSON、Excel等
他的DataFrame数据结构有很多统计函数,用来做数据统计

NLTK
·——是一个自然语言处理的第三方库,NLP领域中常用,可建立词袋模型(单词计数),支持词频分析(单词出现次数)、模式识别、关联分析、情感分析(词频分析+度量指标)、可视化(+matploylib做分析图)等,还有朴素贝叶斯分类等
通过download方法下载语料库,一两个G
停用字:常用但无太多信息意义的字,比如“的”“to”各种连词动词
不能创建特征向量,但可用sklearn辅助

朴素贝叶斯:如何利用新证据修正某些事件发生的概率的方法
称为朴素是因为它假设特征之间是相互独立的

度量指标:词频和逆文档频率TF-IDF(是信息检索的重要内容)
对单词加权重(分停用词、常用词、专业词等)
sklearn实现了他,生成一个scipy矩阵

sklearn(scikit learn)
·——这个第三方库实现了一些机器学习算法,神经网络方面暂不完善
sklearn是机器学习中一个常用的python第三方模块,里面对一些常用的机器学习方法进行了封装,在进行机器学习任务时,并不需要每个人都实现所有的算法,只需要简单的调用sklearn里的模块就可以实现大多数机器学习任务。
机器学习任务通常包括分类(Classification)和回归(Regression),常用的分类器包括SVM、KNN、贝叶斯、线性回归、逻辑回归、决策树、随机森林、xgboost、GBDT、boosting、神经网络NN。
常见的降维方法包括TF-IDF、主题模型LDA、主成分分析PCA等等

SVM可以吧数据点映射到多维空间的数据点,通过核函数完成,核函数既可以是线性也可以是非线性的
这样,分类问题就简化为寻找一个将空间一分为二的超平面,或是能够将数据点很好的划分到不同空间(类别)的多个超平面
利用超平面分类,软间隔的概念,表示对错误的容忍度
核函数的类型可以有:sigmoid、径向基、多项式、线性

扫描二维码关注公众号,回复: 4216198 查看本文章

支持向量回归:SVR

————
聚类:分组,无需提供目标数据,属于非监督学习,需要推测聚类数
相似性传播AP算法属于一种聚类方法,不需要推测聚类数

还有一个不需推测聚类数的是均值漂移算法Meanshift
基本概念:沿着密度上升方向寻找聚簇点
该算法通过迭代寻找一个密度函数的最大值

Meanshift算法的应用:
聚类(K均值聚类),图像分割(将图像映射到特征空间,对采样点进行均值漂移聚类),对象轮廓检验(光线传播算法),目标跟踪(求解最优化Bhattacharya系数函数)

步骤:数据点中随机选一个中心点
找出离其距离在带宽之内的所有点,集合M,这些点属于簇C
计算中心点到每个元素的向量,相加得到偏移向量
中心点沿着偏移向量移动,移动距离是偏移向量的模
重复计算偏移向量.偏移中心点
中心点到最优后再随机选另一个中心点做同样操作,直到所有点都被归类
根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类

————————————

ANN 人工神经网络
计算模型灵感来自高等动物的大脑,所谓神经网络,实际上就是由神经元组成的网络,这些神经元都具有输入和输出…

决策树
跟老式流程图非常类似,只不过流程图允许循环而已
决策树学习:末端节点通常叫做叶节点,存放着分类问题的类标签,每个非叶节点都对应特征值之间的一个布尔条件判断,sklearn使用基尼不纯度和熵作为信息的衡量指标,这两种指标度量的是数据项被错误分类的概率
决策树非常易于理解、使用、可视化和验证
为了形象展示决策树,可以借助于Graphviz决策树可视化

GPU(图形处理单元):是专门用于高效显示图像的集成电路

————————————
随着大数据的发展,noSQL数据库开始盛行,因为灵活
比如sqlite3

SQLAlchemy
是基于设计模式的对象关系映射ORM闻名,它可以把python类映射为数据库中表
可以通过他填充和查询数据库
Dataset懒人数据库,对SQLAlchemy的再包装

PonyORM
是另一款ORM程序包,它能自动进行查询、优化,可以通过python的生成器表达式来查询数据库

MongoDB
noSQL数据库,存储方式:JSON、BSON
redis
noSQL数据库,kv数据库,底层由c实现,读写速度快的惊人
Apache Cassandra
kv数据库+传统,通过列族进行组织,各行灵活使用

statsmodels
可以配合numpy、scipy、pandas完成信号处理,协整、滤波、谱分析等

Restful API
web采用的是Rest架构风格,对于HTTP,可以使用getputpostdelete等6个方法,对应数据项的创建、请求更新删除
restful返回JSON串,以请求位置参数代替指定参数名

Beautiful Soup和urllib、scrapy一样,也是一个爬虫框架

遗传算法
机器学习独立的分支,样本向量(个体),用目标函数(自然选择)对群体进行评价,根据评价值(适应度)对个体进行选择、交换、变异等操作,从而得到新的群体
适用于复杂的环境,比如带有大量噪声和无关数据、不断更新、持续周期长的场景等,如同神经网络一样

————————————————————————————

鲁棒性:一般泛化能力,SVM中产生的名词

from collections import Counter
统计每个类别再类别列表(前k个)中出现的次数
return Counter(y).most_common(1)[0][0]

·————————————————————————————

numpy打破了全局锁的限制,效率非常高
array.T直接转置
np.array(,dtype=np.float,ndmin=2) dtype默认int32,ndmin指定数组最小维度
array.dtype 类型 array.size array.shape array.ndim 数组维度
sum(axis=0.1) 0时按列运算,1时按行运算 max() min() argmax() argmin()
array.reshape((1,4)) array.resize((1,3))
array.swapaxes((0,1)) 交换两轴元素
np.zeros((1,4,5)) 根据数组形状,所有元素为0 np.ones 元素填充为1

多维数组切片 array[:,0:1]
在一个中括号内,写多个切片规则,以逗号隔开,从左到右,默认以0轴往上数

a.std() 标准 a.var() 方差 a.mean() 平均数 a.prod() 乘积 a.cumprod() 累积
a.cumsum() 累和 a.trace() 对角线和 a.diagonal() 返回主对角线元素

·————————————————————————————
pandas是做数据分析和数据挖掘的python包,是基于numpy的
它的三种数据结构:系列.一维数组、DataFrame.二维数组、Panel面板.三维数组

t=pd.read_table(url,usecols=(0,1,2),sep=’\t’)
用三列,通过tab分隔,是numpy数组,可以直接调运算方法

t.columns=[‘name’,‘age’] 覆盖表头,用来写标题
t.head(10) 看前几行 t,tail(10) 看后几行 t.values 只看数据
t.T 矩阵转置 t.age 直接访问属性列 t.sort_values(by=‘age’) 根据列排序
t[0:3] 切片 t[0:3,‘age’:‘salary’] 行列切片 t.iloc[0:3,0:3] 行列取值

·————————————————————————————
sklearn
开发流程:
准备训练和测试数据
#归一化
创建分类器对象
拆分样本集(同一分布)
训练fit
预测predict(X)
评估score(testX,testY)
———————————

from sklearn import preprocessing
scaler=preprocessing.MinMaxScaler(feature_range=(0,1)).fit(X)
选择归一化的方式,并训练数据
scaler.transform(X) # 将数据进行归一化

from sklearn.model_selection import train_test_split # 拆分样本集
train_x,test_x=train_test_split(X,test_size=0.1)
train_x,test_x,train_y,test_y=train_test_split(X,Y,test_size=0.1)
拆分样本集

from sklearn.neighbors import KNeighborsClassifier # knn分类器
knn=KNeighborsClassifier(n_neighbors=3) # 创建knn分类器对象
knn.fit(train_x,train_y) # 训练模型
knn.predict(X) # 预测
knn.score(test_x,test_y) 测试正确率

from sklearn.linear_model import LogisticRegression # 导入逻辑回归分类器
lr=LogisticRegression() # 创建逻辑回归对象

from sklearn.naive_bayes import GaussianNB,MultinomialNB,BernoulliNB
gb=GaussianNB() # 创建高斯贝叶斯分类器对象
bb=BernoulliNB() # 创建伯努利贝叶斯分类器对象
mb=MultinomialNB() # 创建多项式贝叶斯分类器对象

from sklearn.ensemble import AdaBoostClassifier # AdaBoost算法
from sklearn.ensemble import RandomForestClassifier #随机森林
from sklearn.tree import DecisionTreeClassifier # 决策树算法
a=AdaBoostClassifier(n_estimators=100,base_estimator=LogisticRegression()) # 创建决策树分类器对象,用100个逻辑分类器构建
rf=RandomForestClassifier(n_estimators=100) #100个决策树迭代的随机森林
dt=DecisionTreeClassifier() # 创建决策树分类器对象

from sklearn.svm import SVC
svc=SVC() # 创建决策树分类器对象

from sklearn.cluster import KMeans
from sklearn.cluster import DBSCAN
km=KMeans(n_clusters=3) # 创建km对象的时候的参数,聚类数
Y=DBSCAN(eps=0.01,min_samples=2) #eps是邻域半径,minpts最小实例点数

from sklearn.decomposition import PCA # 导入PCA降维
pca=PCA(n_components=1) # 指定保留下来的特征的数量
new_X=pca.fit_transform(X) # 对样本做降维 在归一化之前做

from sklearn.decomposition import TruncatedSVD # 导入SVD降维
svd=TruncatedSVD(n_components=2) # 指定保留下来的特征的数量
new_X=svd.fit_transform(X) # 对样本做降维 在归一化之前做

from sklearn import datasets
X=datasets.load_iris()[‘data’]
Y=datasets.load_iris()[‘target’]

猜你喜欢

转载自blog.csdn.net/weixin_42394432/article/details/82916115