【機器學習演算法-python實現】矩陣去噪以及歸一化,python機器學習

來源:互聯網
上載者:User

【機器學習演算法-python實現】矩陣去噪以及歸一化,python機器學習
1.背景   項目需要,打算用python實現矩陣的去噪和歸一化。用numpy這些數學庫沒有找到很理想的函數,所以一怒之下自己用標準庫寫了一個去噪和歸一化的演算法,效率有點低,不過還能用,大家如果有需要可以拿去。 (1)去噪演算法:根據機率論的知識,如果一組資料服從常態分佈,我們設均值是n,方差是v,那麼對於每個離散數值有百分之九十二以上的機率會在(n-3*v,n+3*v)的區間內。所以這裡的去噪功能主要是實現如果超出了區間就將這個值標記為區間所能容忍最大值。 (2)歸一化:找到輸入隊列最大值max,最小值min。對任意一個自變數x,它的歸一化數值為(x-min/max-min)。
2.實現代碼

from __future__ import divisiondef GetAverage(mat):        n=len(mat)    m= width(mat)     num = [0]*m    for 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=0    for j in lst[0]:       i=i+1    return 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]*m    for 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]*m    denoisMat=[]        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]*m    MaxNum = [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 section    NormMat=[]         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):歸一化矩陣



:https://github.com/jimenbian/AutoNorm-mat-

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

* 本文來自部落格  “李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

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


開發機器學習演算法一般常用什麼語言?通常而言能夠深入研究機器學習演算法並按照自己項目需求進行定製開發人程式設計語言真次要問題
自己去google搜尋下面關鍵詞吧多機器學習演算法實現
machine learning in Java
machine learning in C++
machine learning in Python
machine learning in Matlab
machine learning in R
機器學習中常用的歸一化方法有哪些?單位化、除大值等我用兩多還有幾找找資訊檢索書看看;
還有歸化分行歸化和列歸化得根據資料本身性質來取文本行歸化般要好於列歸化實驗過

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.