1.背景

   项目需要,打算用python实现矩阵的去噪和归一化。用numpy这些数学库没有找到很理想的函数,所以一怒之下自己用标准库写了一个去噪和归一化的算法,效率有点低,不过还能用,大家如果有需要可以拿去。
 (1)去噪算法:根据概率论的知识,如果一组数据服从正态分布,我们设均值是n,方差是v,那么对于每个离散数值有百分之九十二以上的概率会在(n-3*v,n+3*v)的区间内。所以这里的去噪功能主要是实现如果超出了区间就将这个值标记为区间所能容忍最大值。
 (2)归一化:找到输入队列最大值max,最小值min。对任意一个自变量x,它的归一化数值为(x-min/max-min)。

2.实现代码

from __future__ import division
def GetAverage(mat):n=len(mat)m= width(mat) num = [0]*mfor j in range(0,m): for i in mat:num[j]=num[j]+i[j]           num[j]=num[j]/n   return numdef width(lst):i=0for j in lst[0]:i=i+1return idef GetVar(average,mat):    ListMat=[]for i in mat:    ListMat.append(list(map(lambda x: x[0]-x[1], zip(average, i))))n=len(ListMat)m= width(ListMat) num = [0]*mfor j in range(0,m): for i in ListMat:num[j]=num[j]+(i[j]*i[j])       num[j]=num[j]/n   return num def DenoisMat(mat):average=GetAverage(mat)variance=GetVar(average,mat)section=list(map(lambda x: x[0]+x[1], zip(average, variance)))    n=len(mat)m= width(mat) num = [0]*mdenoisMat=[]    for i in mat:for j in range(0,m):if i[j]>section[j]:i[j]=section[j]denoisMat.append(i)  return denoisMat                def AutoNorm(mat):   n=len(mat)m= width(mat)     MinNum=[9999999999]*mMaxNum = [0]*m    for i in mat:for j in range(0,m):if i[j]>MaxNum[j]:MaxNum[j]=i[j]for p in mat:     for q in range(0,m):if p[q]<=MinNum[q]:MinNum[q]=p[q]  section=list(map(lambda x: x[0]-x[1], zip(MaxNum, MinNum)))print sectionNormMat=[]for k in mat:     distance=list(map(lambda x: x[0]-x[1], zip(k, MinNum)))value=list(map(lambda x: x[0]/x[1], zip(distance,section)))NormMat.append(value)           return NormMat        

库的实现:输入矩阵mat,

GetAverage(mat):返回均值

GetVar(average,mat):返回方差

DenoisMat(mat):去噪

AutoNorm(mat):归一化矩阵

下载地址:点击下载

/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/

【机器学习算法-python实现】矩阵去噪以及归一化相关推荐

  1. 决策算法python_GitHub - nxety/MachineLearning_Python: 机器学习算法python实现

    机器学习算法Python实现 目录 1.代价函数 其中: 下面就是要求出theta,使代价最小,即代表我们拟合出来的方程距离真实值最近 共有m条数据,其中代表我们要拟合出来的方程到真实值距离的平方,平 ...

  2. 机器学习算法 | Python实现k-近邻算法

    机器学习算法 | Python实现k-近邻算法 目录 机器学习算法 | Python实现k-近邻算法 基本介绍 工作原理 程序设计 参考资料 基本介绍 KNN,全名k近邻算法.是⼀种⾮常简单有效的机器 ...

  3. 【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集

    1.背景 决策书算法是一种逼近离散数值的分类算法,思路比较简单,而且准确率较高.国际权威的学术组织,数据挖掘国际会议ICDM  (the IEEE International Conference o ...

  4. 机器学习算法---微积分与矩阵

    微积分: 极限.无穷小.导数.高阶导数.泰勒级数.无穷求和.牛顿-莱布尼茨公式: 牛顿法: 线性代数: 低维到高维.高维到低维映射都有映射规则: 实例PCA: 实例解析: 相关算法思想: https: ...

  5. 【机器学习算法-python实现】PCA 主成分分析、降维

    1.背景 PCA(Principal Component Analysis),PAC的作用主要是降低数据集的维度,然后挑选出主要的特征. PCA的主要思想是移动坐标轴,找到方差最大的方向上的特征值,什 ...

  6. 【机器学习算法-python实现】采样算法的简单实现

    1.背景     采样算法是机器学习中比较常用,也比较容易实现的(出去分层采样).常用的采样算法有以下几种(来自百度知道): 一.单纯随机抽样(simple random sampling)将调查总体 ...

  7. 【机器学习算法-python实现】Adaboost的实现(1)-单层决策树(decision stump)

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景      上一节学习支持向量机,感觉公式都太难理解了,弄得我有点头大.不过这一章的Adaboost线比 ...

  8. 10种经典机器学习算法——Python版

    klearn python API LinearRegression from sklearn.linear_model import LinearRegression # 线性回归 # module ...

  9. 【机器学习算法-python实现】逻辑回归的实现(LogicalRegression)

    1.背景知识       在刚刚结束的天猫大数据s1比赛中,逻辑回归是大家都普遍使用且效果不错的一种算法.   (1)回归           先来说说什么是回归,比如说我们有两类数据,各有50十个点 ...

最新文章

  1. Python中常用的内值方法
  2. mysql 存储过程月单拆天单_为部门整理的mysql_db使用军规
  3. java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]
  4. android网络编程——HttpGet、HttpPost比较
  5. SilverLight4.0数据验证IDataErrorInfo, INotifyDataErrorInfo[转]
  6. linux-redis
  7. 操作系统—内存的基础知识
  8. JavaScript之继承(原型链)
  9. 电感感应电压公式推导
  10. 网易邮箱异常信息说明
  11. Vue路由守卫(通俗易懂)
  12. 传奇私服架设微端搭建教程
  13. 东北农业大学考研计算机大纲,东北农业大学339农业知识综合一考研大纲
  14. max3490esa_MAX4524EUB_美信MAXIM半导体代理就找宇航
  15. 深度关注 | 元宇宙如何改写人类社会生活
  16. 架构、框架、设计模式
  17. 接口技术实验:七段码显示
  18. C1任务-10:域名解析
  19. 人教版四年级上次计算机教案,新人教版四年级上册数学教案
  20. php中soap使用,SoapServer服务端编写,SoapClient客户端编写

热门文章

  1. PAT甲级1043 Is It a Binary Search Tree :[C++题解]判断二叉搜索树BST、给定前序序列和中序序列
  2. 吴恩达机器学习Ex1
  3. html代码 通用代码,新浪博客通用html代码及其使用方法
  4. php 数组转对象_[基础编程学习] [PHP7数组详解]:第1章 (8)数组和对象
  5. Java忽略算术溢出,IEEE-754:“最小”溢出条件
  6. java logout_Java Core.logout方法代码示例
  7. android 关闭2g网络,中国联通将关闭2G网络,速来了解联通2g卡升级4g套餐方法
  8. java工程师需要的技能_Java工程师需要掌握哪些技能?
  9. android实现跑马灯效果(最小集代码)
  10. 包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解