91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現歸一化算法

發布時間:2022-03-19 09:02:45 來源:億速云 閱讀:304 作者:iii 欄目:開發技術

今天小編給大家分享一下Python如何實現歸一化算法的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1.前言                                 

歸一化算法Normalization將數據處理成量綱一直的數據,一般限定在[0,1]、[-1,1]
一般在進行建模的時候需要進行數據歸一化處理,

原因如下:

  • 降低計算難度

  • 有可能提高模型的預測精度

  • 消除量綱影響

下面介紹三種常見的標準化方法,分別是最大最小值、正態中心化、小數點定標

2.Min-Max方法

2.1 公式

Python如何實現歸一化算法

2.2 算法實現邏輯

  • 1.找一組數據的最大最小值

  • 2.利用公式歸一化

  • 3.輸入結果(為了方便可視化展示,我們設計了代碼)

2.3 代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 1.最小最大標準化
Data = np.array([[0.2,0.9,29],
                [0.9,0.1,100],
                [0.5,0.5,30]]) #最小-最大歸一化算法
# 1.1數據轉化
def MinMax(data):
    min = 0
    max = 1
    C = data[:,2]
    min = np.min(C)
    max = np.max(C)
    for one in data:
        one[2] = (one[2]-min) / (max-min)
    print('轉化后的矩陣:\n',data)
    return data


# 1.2可視化
def ShowData(Data,ShowD1):
    length = len(Data)
    X = np.ones(Data.shape[0])
    plt.figure(1)
    plt.subplot(121)
    for i in range(length):
        plt.scatter(X*(i+1),Data[:,i])
    plt.subplot(122)
    for i in range(length):
        plt.scatter(X*(i+1),ShowD1[:,i])
    plt.show()
ShowData(Data,MinMax(Data.copy()))

轉化后的矩陣:

 [[0.2        0.9        0.        ]
 [0.9        0.1        1.        ]
 [0.5        0.5        0.01408451]]

Python如何實現歸一化算法

2.4局限

  • 數據規模過大不適應

  • 數據歸一化后范圍在[0,1],對于一些有負有正數的原始數據慎用

3 Z-score標準化

3.1 公式

Python如何實現歸一化算法

3.2 算法實現邏輯

  • 輸入數據

  • 求取數據的均值、方法,在利用中心化公式計算

  • 輸出結果

3.3 代碼

def Zscore(data):
    x_mean = np.mean(data[:2])
    length = len(data[:,2])
    vari = np.sqrt((np.sum((data[:2]-x_mean)**2))/length)
    print('方差:',vari)
    data[:,2] = (data[:,2]-x_mean)/vari
    print('Z-score標準化后的矩陣是',data)
    return data

ShowData(Data,Zscore(Data.copy()))

方差: 51.569160680908254
Z-score標準化后的矩陣是 [[0.2        0.9        0.13864876]
 [0.9        0.1        1.5154406 ]
 [0.5        0.5        0.15804019]]

Python如何實現歸一化算法

3.4 局限

  • 對樣本量少的數據,表現不好

  • 標準化后范圍在有負有正,范圍在[-1,1]

4 小數定標法

4.1 公式

Python如何實現歸一化算法

4.2 算法實現邏輯

  • 輸入數據

  • 絕對值化,最大值

  • 將每個數除以最大值的數量級

  • 輸入數據

4.3 代碼實現

# 小數定標歸一化算法
def Decimals(data):
    C = np.abs(data[:,2])
    max = int(np.sort(C)[-1]) # 按從小到大排序,取最后一位,及最大值
    k = len(str(max))
    print('絕對值最大的位數:\n',k)
    data[:2] = data[:,2] /(10**k)
    print('小數點定標準化后的矩陣:\n',data)
    return data
ShowData(Data,Decimals(Data.copy()))

絕對值最大的位數:

 3

小數點定標準化后的矩陣:

 [[2.9e-02 1.0e-01 3.0e-02]
 [2.9e-02 1.0e-01 3.0e-02]
 [5.0e-01 5.0e-01 3.0e+01]]

Python如何實現歸一化算法

4.4 局限

  • 受到最大值影響較大

以上就是“Python如何實現歸一化算法”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大埔县| 金门县| 敖汉旗| 临桂县| 博湖县| 甘德县| 南投市| 濮阳市| 长阳| 始兴县| 古田县| 曲阳县| 重庆市| 开阳县| 长子县| 夏津县| 海晏县| 呼图壁县| 通许县| 兴宁市| 巫山县| 武清区| 金寨县| 五河县| 胶南市| 九江市| 龙门县| 屯昌县| 丁青县| 双桥区| 黑河市| 离岛区| 南川市| 孝昌县| 吴桥县| 都兰县| 武夷山市| 潍坊市| 贡山| 麻城市| 孝义市|