【机器学习算法-python实现】矩阵去噪以及归一化
生活随笔
收集整理的這篇文章主要介紹了
【机器学习算法-python实现】矩阵去噪以及归一化
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.背景
? ?項(xiàng)目需要,打算用python實(shí)現(xiàn)矩陣的去噪和歸一化。用numpy這些數(shù)學(xué)庫沒有找到很理想的函數(shù),所以一怒之下自己用標(biāo)準(zhǔn)庫寫了一個(gè)去噪和歸一化的算法,效率有點(diǎn)低,不過還能用,大家如果有需要可以拿去。 ?(1)去噪算法:根據(jù)概率論的知識,如果一組數(shù)據(jù)服從正態(tài)分布,我們設(shè)均值是n,方差是v,那么對于每個(gè)離散數(shù)值有百分之九十二以上的概率會在(n-3*v,n+3*v)的區(qū)間內(nèi)。所以這里的去噪功能主要是實(shí)現(xiàn)如果超出了區(qū)間就將這個(gè)值標(biāo)記為區(qū)間所能容忍最大值。 ?(2)歸一化:找到輸入隊(duì)列最大值max,最小值min。對任意一個(gè)自變量x,它的歸一化數(shù)值為(x-min/max-min)。2.實(shí)現(xiàn)代碼
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庫的實(shí)現(xiàn):輸入矩陣mat,
GetAverage(mat):返回均值
GetVar(average,mat):返回方差
DenoisMat(mat):去噪
AutoNorm(mat):歸一化矩陣
下載地址:點(diǎn)擊下載
/********************************
* 本文來自博客 ?“李博Garvin“
* 轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結(jié)
以上是生活随笔為你收集整理的【机器学习算法-python实现】矩阵去噪以及归一化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python将字典内容存入mysql
- 下一篇: 【机器学习算法-python实现】K-m