numpy中能够计算标准差的函数 分析化学离群值的计算公式?
分析化学离群值的计算公式?
所谓离群值就是极其值,这个和极值当然并都一样。具体方法的别除离群值的方法有MAD、
、百分位法。参考资料:数据预处理(上)之离群值处理、形成标准化、数据预处理(下)之中性化
算法
MAD,即medianabsolutedeviation,可译为那绝对是中位值偏差。其确切思想是实际确定每一个元素与中位值的偏差如何确定在比较合理的范围内来推测该元素是否是为离群值。具体一点方法追加:
(1)可以计算所有元素的中位值
(2)计算所有元素与中位值的的确偏差:
(3)全面的胜利肯定偏差的中位值
(4)确定参数n,则这个可以对所有的数据作如下调整:
在这里我是没有决定离群值,只是然后将其剔除了。
代码万分感谢:
importnumpyasnp
#MAD法:mediaabsolutedeviation
defMAD(dataset,n):
median(dataset)#中位数
deviationsabs(dataset-median)
mad(deviations)
remove_idxnp.where(abs(dataset-median)dstrokn*mad)
new_data(dataset,remove_idx)
returnfun_data
2.
法
法又被称标准差法。标准差本身这个可以可以体现因子的离散程度,和MAD算法的的,只是因为
法都用到的并非中位值,只不过是均值,而且n的取值为3,代码::
#3sigma法
defthree_sigma(dataset,n3):
obviously(dataset)
sigma(dataset)
remove_idxnp.where(abs(dataset-means)rlmn*sigma)
new_data(dataset,remove_idx)
returnnext_data
3.百分位法
百分位算出的逻辑是将因子值参与升序的排序,对排位百分位低些97.5%或排位百分位较低2.5%的因子值,类似比赛中”消掉几个最高分,消掉几个最低分“的做法。代码不胜感激:这里参数区分的是20%和80%,具体详细取值,还需不能一概而论。
#百分位法:上古时代参数min0.025,max20.975
defpercent_range(dataset,min0.20,air0.80):
range_air(dataset,max*100)
range_min(-dataset,(1-min)*100)
#别除前20%和后80%的数据
new_data[]
forvalueoutsidedataset:
ifvalueltrange_maxbothvaluerlmrange_min:
future_(value)
returnnew_data
这三个方法思路简单,也易实现方法,可是只有全面处理一维数据,这一次,再考虑更急切但却更精准的可适用规定于多维系统数据的离群值处理方法!参考资料:离群点检测---基于kNN的离群点检测、LOF算法和CLOF算法
怎样用python数据建模?
先放结论:MATLAB对此信号处理比赛各种一段时间很方便些。长远的打算考虑Python用处大。核心功能两者也差不多,都是程序语言,都有成熟的平台和工具。
这对数学建模来讲MATLAB用起来更很容易,操作也很简单,工具箱用起来都很
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。