① python实现对CSV文件多维不同单位数据的归一化处理
1)线性归一化
这种归一化比较适用在数值比较集中的情况,缺陷就是如果max和min不稳定,很容易使得归一化结果不稳定,使得后续的效果不稳定,实际使用中可以用经验常量来代替max和min。
2)标准差标准化
经过处理的数据符合标准正态分布,即均值为0,标准差为1。
3)非线性归一化
经常用在数据分化较大的场景,有些数值大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括log、指数、反正切等。需要根据数据分布的情况,决定非线性函数的曲线。
log函数:x = lg(x)/lg(max)
反正切函数:x = atan(x)*2/pi
Python实现
线性归一化
定义数组:x = numpy.array(x)
获取二维数组列方向的最大值:x.max(axis = 0)
获取二维数组列方向的最小值:x.min(axis = 0)
对二维数组进行线性归一化:
def max_min_normalization(data_value, data_col_max_values, data_col_min_values):
""" Data normalization using max value and min value
Args:
data_value: The data to be normalized
data_col_max_values: The maximum value of data's columns
data_col_min_values: The minimum value of data's columns
"""
data_shape = data_value.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
for i in xrange(0, data_rows, 1):
for j in xrange(0, data_cols, 1):
data_value[i][j] = \
(data_value[i][j] - data_col_min_values[j]) / \
(data_col_max_values[j] - data_col_min_values[j])
标准差归一化
定义数组:x = numpy.array(x)
获取二维数组列方向的均值:x.mean(axis = 0)
获取二维数组列方向的标准差:x.std(axis = 0)
对二维数组进行标准差归一化:
def standard_deviation_normalization(data_value, data_col_means,
data_col_standard_deviation):
""" Data normalization using standard deviation
Args:
data_value: The data to be normalized
data_col_means: The means of data's columns
data_col_standard_deviation: The variance of data's columns
"""
data_shape = data_value.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
for i in xrange(0, data_rows, 1):
for j in xrange(0, data_cols, 1):
data_value[i][j] = \
(data_value[i][j] - data_col_means[j]) / \
data_col_standard_deviation[j]
非线性归一化(以lg为例)
定义数组:x = numpy.array(x)
获取二维数组列方向的最大值:x.max(axis=0)
获取二维数组每个元素的lg值:numpy.log10(x)
获取二维数组列方向的最大值的lg值:numpy.log10(x.max(axis=0))
对二维数组使用lg进行非线性归一化:
def nonlinearity_normalization_lg(data_value_after_lg,
data_col_max_values_after_lg):
""" Data normalization using lg
Args:
data_value_after_lg: The data to be normalized
data_col_max_values_after_lg: The maximum value of data's columns
"""
data_shape = data_value_after_lg.shape
data_rows = data_shape[0]
data_cols = data_shape[1]
for i in xrange(0, data_rows, 1):
for j in xrange(0, data_cols, 1):
data_value_after_lg[i][j] = \
data_value_after_lg[i][j] / data_col_max_values_after_lg[j]
② 在Python中,能不能在不使用sklearn包的情况下对数据进行归一化处理
用定义呗,
取 data.max ,data.min
然后对 所有元素 取 (x- data.min ) / (data.max - data.min) 就可以了
③ 怎么得到python中归一化直方图横坐标的对应值
a=plt.hist()
a[0]就是bins的高度,a[1]就是bins的列表
④ 如何在Python中实现这五类强大的概率分布
R编程语言已经成为统计分析中的事实标准。但在这篇文章中,我将告诉你在Python中实现统计学概念会是如此容易。我要使用Python实现一些离散和连续的概率分布。虽然我不会讨论这些分布的数学细节,但我会以链接的方式给你一些学习这些统计学概念的好资料。在讨论这些概率分布之前,我想简单说说什么是随机变量(random variable)。随机变量是对一次试验结果的量化。
举个例子,一个表示抛硬币结果的随机变量可以表示成
Python
1
2
X = {1 如果正面朝上,
2 如果反面朝上}
随机变量是一个变量,它取值于一组可能的值(离散或连续的),并服从某种随机性。随机变量的每个可能取值的都与一个概率相关联。随机变量的所有可能取值和与之相关联的概率就被称为概率分布(probability distributrion)。
我鼓励大家仔细研究一下scipy.stats模块。
概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布。
离散概率分布也称为概率质量函数(probability mass function)。离散概率分布的例子有伯努利分布(Bernoulli distribution)、二项分布(binomial distribution)、泊松分布(Poisson distribution)和几何分布(geometric distribution)等。
连续概率分布也称为概率密度函数(probability density function),它们是具有连续取值(例如一条实线上的值)的函数。正态分布(normal distribution)、指数分布(exponential distribution)和β分布(beta distribution)等都属于连续概率分布。
若想了解更多关于离散和连续随机变量的知识,你可以观看可汗学院关于概率分布的视频。
⑤ 用python怎么做出概率分布图啊,新手菜鸟,求高手指点
如果没有编程经验,建议不要看太深入的书籍,先从简单的print 学起,然后写一个简单的函数,函数可以只输出些简单字符串,然后了解一下函数,比如函数的参数形式,以及函数与method的区别。
然后使用一些简单的类型,比如tuple,dict 等,一个一个了解,了解一个,慢慢的练习。如果有哪些不懂,可以网络一下,多网络(谷歌)。
看哪些书都无所谓,刚开始没有什么好坏之分,只要你看得进,看得懂,就看那一本,别纠结于看哪本书。
⑥ 在python上数据归一化后怎样还原
数据归一化方法有两种形式,一种是把数变为(0,1)之间的小数,一种是把有量纲表达式变为无量纲表达式。1、把数变为(0,1)之间的小数主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。2、是把有量纲表达式变为无量纲表达式归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
⑦ 数据的归一化处理
归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。
1、(0,1)标准化:
这是最简单也是最容易想到的方法,通过遍历feature vector里的每一个数据,将Max和Min的记录下来,并通过Max-Min作为基数(即Min=0,Max=1)进行数据的归一化处理:
LaTex:{x}_{normalization}=frac{x-Min}{Max-Min}
Python实现:
⑧ python怎么做均值方差归一化
可以用线性归一化,就是找到最大值和最小值。
平均数是表示一组数据集中趋势的量数,是指在一组数据中所有数据之和再除以这组数据的个数。它是反映数据集中趋势的一项指标。解答平均数应用题的关键在于确定“总数量”以及和总数量对应的总份数。在统计工作中,平均数(均值)和标准差是描述数据资料集中趋势和离散程度的两个最重要的测度值。
⑨ python数据归一化的函数吗
目测是autonorm.py中lin 17 normdataset=zeros(shape(dataset)) 这一句 shape(dataset)返回的是元组,但是zeros( args )需要的是整形参数,做个类型转换就ok了
⑩ 如何用python求出某已知正态分布的概率密度
Python正态分布概率计算方法,喜欢算法的伙伴们可以参考学习下。需要用到math模块。先了解一下这个模块方法,再来写代码会更好上手。
def st_norm(u):
'''标准正态分布'''
import math
x=abs(u)/math.sqrt(2)
T=(0.0705230784,0.0422820123,0.0092705272,
0.0001520143,0.0002765672,0.0000430638)
E=1-pow((1+sum([a*pow(x,(i+1))
for i,a in enumerate(T)])),-16)
p=0.5-0.5*E if u<0 else 0.5+0.5*E
return(p)
def norm(a,sigma,x):
'''一般正态分布'''
u=(x-a)/sigma
return(st_norm(u))
while 1:
'''输入一个数时默认为标准正态分布
输入三个数(空格隔开)时分别为期望、方差、x
输入 stop 停止'''
S=input('please input the parameters:\n')
if S=='stop':break
try:
L=[float(s) for s in S.split()]
except:
print('Input error!')
continue
if len(L)==1:
print('f(x)=%.5f'%st_norm(L[0]))
elif len(L)==3:
print('f(x)=%.5f'%norm(L[0],L[1],L[2]))
else:
print('Input error!')