Apache Axis

Python: sklearn库——数据预处理

假如想象 提交于 2021-02-12 22:42:36
Python: sklearn库 —— 数据预处理 数据集转换之预处理数据: 将输入的数据转化成机器学习算法可以使用的数据。包含特征提取和标准化。 原因:数据集的标准化(服从均值为0方差为1的标准正态分布(高斯分布))是大多数机器学习算法的常见要求。 如果原始数据不服从高斯分布,在预测时表现可能不好。在实践中,我们经常进行标准化(z-score 特征减去均值/标准差)。 一、标准化(Z-Score),或者去除均值和方差缩放 公式为:(X-mean)/std 计算时对每个属性/每列分别进行。 将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。 实现时,有两种不同的方式: 使用sklearn.preprocessing.scale()函数,可以直接将给定数据进行标准化。 >>> from sklearn import preprocessing >>> import numpy as np >>> X = np.array([[ 1., -1., 2 .], ... [ 2 ., 0., 0.], ... [ 0., 1., -1 .]]) >>> X_scaled = preprocessing.scale(X) >>> X_scaled array([[ 0. ..., -1.22..., 1.33 ...],

Python简单实现KNN算法

跟風遠走 提交于 2021-02-12 11:52:40
__author__ = '糖衣豆豆 ' from numpy import * from os import listdir import operator # 从列方向扩展 # tile(a,(size,1)) # 实现KNN算法,需要指定k,需要测试数据集,需要训练数据集,类别名(标签), def knn(k,testdata,traindata,labels): # 通过shape获得行数 traindatasize= traindata.shape[0] # 扩展testdata的维数,tile函数可以扩展testdata和traindata相同的行数,然后和traindata的向量相减计算测试机和训练集的差值 dif=tile(testdata,(traindatasize,1))- traindata # 计算差值的平方 sqdif=dif**2 # 计算平方和,每一行的各列求和,axis=1每一行的各列求和 sumsqdif=sqdif.sum(axis=1 ) # 开方 distance=sumsqdif**0.5 # 排序 sortdistance= distance.argsort() # 空字典 count= {} # 选择距离最短的k for i in range(0,k): # 获取类别,下标决定属于哪一类 vote= labels

python实现KNN算法

百般思念 提交于 2021-02-12 11:52:17
from numpy import * import operator import numpy as np a = np.array([1,2,3,4,5,6]) print(a.shape) def knn(k,testdata,traindata,labels):#traindata训练数据集 labels标签 k代表取多少个 traindatasize = traindata.shape[0]#shape函数查看数组有多少行列 [0]查看的是行数 dif = tile(testdata,(traindatasize,1))-traindata#计算差值 tile将训练集与测试集转换成相同维度 sqdif = dif**2 #差值平方 sumsqdif = sqdif.sum(axis=1)#axis = 各行差值求和 distance = sumsqdif**0.5#开方求出距离 sortidstance = distance.argsort()#排序 count = {} for i in range(0,k):#经过k次循环 vote = labels[sortdistance[i]]#投票 每次取距离最小的 count[vote] = count.get(vote,0)+1 #计算最小值出现了多少次 sortcount = sorted(count.items()

数据聚合与分组运算

旧时模样 提交于 2021-02-11 13:36:00
一、GroupBy技术 分组运算的过程可以由拆分-应用-合并描述。 利用df.groupby()进行分组操作 1、对分组进行迭代 GroupBy对象支持迭代,可以产生一组二元元组(由分组名(可能为组合)和数据块组成)。对分出的数据片段可以做任何操作,例如将其做成一个字典。groupby默认是在axis=0上进行分组的,通过设置可以在任何其他轴上进行分组,例如还可以根据dtypes对列进行分组。 2、选取一个或一组列 对于由DataFrame产生的GroupBy对象,如果用一个或一组列名对其进行索引,就能实现选取部分列进行聚合的目的。这种索引操作所返回的对象是一个已分组的DataFrame(如果传入的是列表或数组,如df.groupby('key')[['data']])或已分组的Series(如果传入的是标量形式的单个列名,如df.groupby('key')['data'])。 3、通过字典或Series进行分组 4、通过函数进行分组 可以将函数跟数组、列表、字典、Series混合使用。 5、根据索引级别分组 层次化索引数据集能够根据索引级别进行聚合,通过level关键字传入级别编号或名称即可。 二、数据聚合 聚合是指任何能够从数组产生标量值的数据转换过程。可以使用已有的聚合函数,如mean/count/min/sum等;也可以自己定义聚合函数

数据科学|pandas教程——分组和聚合

时间秒杀一切 提交于 2021-02-09 19:02:52
https://zhuanlan.zhihu.com/p/106015466 编者按 在对数据处理的过程中,除了前期对数据的清洗,更多的工作是需要根据不同的分析需求对数据进行整合。比如需要统计某类数据的出现次数,或者需要按照不同级别来分别统计等等。为满足这些需求,比较常用的方法即分组和聚合。幸运的是,pandas中完美支持了这样的功能,掌握好pandas中这些功能,可以使数据处理的效率大大提高。这篇文章就通过一些基础而又十分扎实的例子带大家一起学习一下这些方法。 文章作者:周岩 王转转 责任编辑:周岩 @书生 文章发表于 微信公众号【运筹OR帷幄】: 数据科学|pandas教程--分组和聚合 欢迎原链接转发,转载请私信 @运筹OR帷幄 获取信息,盗版必究。 敬请关注和扩散本专栏及同名公众号,会邀请 全球知名学者 发布运筹学、人工智能中优化理论等相关干货、 知乎Live 及行业动态 更多精彩文章,欢迎访问我们的机构号: @运筹OR帷幄 数据的分组与聚合是关系型数据库中比较常见术语。使用数据库时,我们利用查询操作对各列或各行中的数据进行分组,可以针对其中的每一组数据进行各种不同的操作。 pandas的DataFrame数据结构也为我们提供了类似的功能,可以非常方便地对DataFrame进行变换。我们可以把生成的数据保存到python字典中,然后利用这些数据来创建一个python

图像识别之物体识别

橙三吉。 提交于 2021-02-08 04:05:33
''' 物体识别 ''' import cv2 as cv import os import warnings import numpy as np import hmmlearn.hmm as hl warnings.filterwarnings( ' ignore ' , category= DeprecationWarning) np.seterr(all = ' ignore ' ) def search_objects(directory): directory = os.path.normpath(directory) if not os.path.isdir(directory): raise IOError( ' the directory ' + directory + ' doesnt exist! ' ) objects = {} for curdir, subdirs, files in os.walk(directory): for jpeg in (file for file in files if file.endswith( ' .jpg ' )): path = os.path.join(curdir, jpeg) label = path.split(os.path.sep)[-2 ] if label not in objects:

pandas之DataFrame合并merge

∥☆過路亽.° 提交于 2021-02-07 04:16:41
一、merge merge操作实现两个DataFrame之间的合并,类似于sql两个表之间的关联查询。merge的使用方法及参数解释如下: pd.merge(left, right, on=None, how= ' inner ' , left_on=None, right_on=None, left_index= False, right_index =False,    sort=False, suffixes=( ' _x ' , ' _y ' ), copy=True, indicator=False, validate=None) left和right:第一个DataFrame和第二个DataFrame对象,merge只能实现两个DataFrame的合并,无法一次实现多个合并 on:指定参考column,要求两个df必须至少有一个相同的column,默认为None以最多相同的column为参考 how:合并的方式,默认为inner取参考column的交集,outer取并集保留所有行;outer、left、right中的缺失值都以NaN填充;left按照左边对象为参考进行合并即保留左边的所有行,right按照右边对象为参考进行合并即保留右边所有行, left_on=None和right_on=None:以上on是在两个df有相同的column的情况下使用

sklearn——数据数据预处理

假装没事ソ 提交于 2021-02-03 06:34:45
一、数据的标准化、归一化、正则化 1、标准化   将数据转化为均值为0方差为1的数据,即标准正态分布。标准化可以规范数据,但不适用于稀疏数据,因为会破坏其数据结果。标准化的过程为两步:去均值的中心化(均值变为0);方差的规模化(方差变为1)。即每一列减去该列的均值再除以该列的方差。   在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,StandardScaler表现更好。 对应函数:   sklearn.preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True) x:需要标准化标准化的数据。 axis:需要标准化的方向,0为列,1为行。 with_mean:是否去均值的中心化,默认为True。 with_std:是否方差规模化,默认为True。 copy:是否要copy数据。 代码示例:    import numpy as np from sklearn.preprocessing import scale a =np.random.normal(4,5,[5,2]) # 创造数据 a_s=scale(a) # 标准化 print ( ' a:\n ' ,a) print ( ' \na_s:\n ' ,a_s) print ( ' \na_s的均值: '

2020年你不应该错过的CSS新特性

空扰寡人 提交于 2021-02-02 14:40:05
@argyleink在第四次的伦敦(LondonCSS 2020)CSS活动中分享了一个有关于CSS特性相关的话题。看了一下这个主题的PPT,里面有些新东西还是蛮有意思的。基于该PPT,我稍微整理近24个CSS方面的新特性,感兴趣的同学可以继续往下阅读。 接下来的内容我将分为: Web动效 、 Web排版 、 Web性能 、 Web可访问性 、 Web美化 和 其他 等六个部分。 下面聊的CSS新特性当中,有部分还处于实验阶段,如果您感兴趣的话,并不会影响你阅读。你也可以选择你感兴趣的部分阅读。(^_^) NO.1 伦敦CSS 2020 伦敦CSS 2020 (https://www.londoncss.dev/) 并不是一次性的活动,到我写这篇文章为止已经是第四届 (https://www.londoncss.dev/events/event4) 了,每届的话题都不同。在这次活动中主要有三个话题: @argyleink的WHAT'S NEW WITH CSS? @Stephanie Eckles的STYLE STAGE AND MODERN CSS:Style Stage堪比现代版的CSS禅意花园(CSS Zen Garden),允许任何级别的CSS从业者重新设计基于相同HTML的样式,同时提高他们地现代CSS特性的熟悉程度 @Cassie Evans的PAINTING WITH

2020 年你不应该错过的 CSS 新特性

妖精的绣舞 提交于 2021-02-02 13:59:56
@argyleink在第四次的伦敦(LondonCSS 2020)CSS活动中分享了一个有关于CSS特性相关的话题。看了一下这个主题的PPT,里面有些新东西还是蛮有意思的。基于该PPT,我稍微整理近24个CSS方面的新特性,感兴趣的同学可以继续往下阅读。 接下来的内容我将分为: Web动效 、 Web排版 、 Web性能 、 Web可访问性 、 Web美化 和 其他 等六个部分。 下面聊的CSS新特性当中,有部分还处于实验阶段,如果您感兴趣的话,并不会影响你阅读。你也可以选择你感兴趣的部分阅读。(^_^) NO.1 伦敦CSS 2020 伦敦CSS 2020 (https://www.londoncss.dev/) 并不是一次性的活动,到我写这篇文章为止已经是第四届 (https://www.londoncss.dev/events/event4) 了,每届的话题都不同。在这次活动中主要有三个话题: @argyleink的WHAT'S NEW WITH CSS? @Stephanie Eckles的STYLE STAGE AND MODERN CSS:Style Stage堪比现代版的CSS禅意花园(CSS Zen Garden),允许任何级别的CSS从业者重新设计基于相同HTML的样式,同时提高他们地现代CSS特性的熟悉程度 @Cassie Evans的PAINTING WITH