日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dataframe数据标准化处理_数据预处理——标准化/归一化(实例)

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dataframe数据标准化处理_数据预处理——标准化/归一化(实例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次我們來說說關于數據預處理中的數據標準化及歸一化的問題。主要以理論+實例的方式為大家展示。

本次實驗也將會展示部分數據以及代碼,有興趣的小伙伴可以自己動手試試~

在本次實例過程中,我們使用的數據是:2010-2018年間廣州市經濟與環境的時間序列資料,數據來源為《廣州市統計年鑒》及《國民經濟和社會發展統計公報》,感興趣的同學也可利用其它數據進行實例操作。(本次實驗的Excel數據附在文后)

一、歸一化(Normalization)

描述:

將數據映射到指定的范圍,如:把數據映射到0~1或-1~1的范圍之內處理。

作用:1、數據映射到指定的范圍內進行處理,更加便捷快速。

2、把有量綱表達式變成無量綱表達式,便于不同單位或量級的指標能夠進行比較和加權。經過歸一化后,將有量綱的數據集變成純量,還可以達到簡化計算的作用。

常見做法:Min-Max歸一化

python實現:

(1)導入數據并刪除我們不要的列:

import numpy as np

import pandas as pd

df=pd.read_excel('C://Users/Administrator/Desktop/data_py.xlsx',sheet_name='廣州',encoding='utf-8')

df.drop(columns="時間",axis=1,inplace=True)

df.set_index([[2010,2011,2012,2013,2014,2015,2016,2017,2018]],inplace=True)

df.drop(columns=['第二產業產值占比','第三產業產值占比','一般工業固體廢物綜合利用率'],axis=1,inplace=True)

(2)查看數據:

可以看到,數據前三列特征的數量級明顯大于后面的特征很多,如果這個時候我們想要利用這個數據表來衡量廣州市的發展情況時,地區生產總值、公共財政收入、人均生產總值這三項特征就會起到主導作用從而遮蓋住其他的特征,這樣的模型效果是很差的,因此我們可以通過歸一化來解決這個問題。

(3)Min-Max歸一化:

for i in list(df.columns):

# 獲取各個指標的最大值和最小值

Max = np.max(df[i])

Min = np.min(df[i])

df[i] = (df[i] - Min)/(Max - Min)

(4)查看歸一化結果:

二、標準化(Normalization)

注:在英文翻譯中,歸一化和標準化的翻譯是一致的,而在實際使用中,我們需要根據實際的公式(或用途)去理解~

數據標準化方法有多種,如:直線型方法(如極值法、標準差法)、折線型方法(如三折線法)、曲線型方法(如半正態性分布)。不同的標準化方法,對系統的評價結果會產生不同的影響。其中,最常用的是Z-Score 標準化。

Z-Score 標準化

其中,

為數據均值(mean),

為標準差(std)。

描述:

將原數據轉換為符合均值為0,標準差為1的標準正態分布的新數據。

作用:1、提升模型的收斂速度(加快梯度下降的求解速度)

2、提升模型的精度(消除量級和量綱的影響)

3、簡化計算(與歸一化的簡化原理相同)

python實現:

(1)(這里我們重置一下數據表df,避免實驗的偶然性)

from sklearn import preprocessing

df=pd.read_excel('C://Users/Administrator/Desktop/data_py.xlsx',sheet_name='廣州',encoding='utf-8')

df.drop(columns="時間",axis=1,inplace=True)

df.set_index([[2010,2011,2012,2013,2014,2015,2016,2017,2018]],inplace=True)

df.drop(columns=['第二產業產值占比','第三產業產值占比','一般工業固體廢物綜合利用率'],axis=1,inplace=True)

(2)Z-Score 標準化,最簡便、也是L推薦的方法是用:sklearn庫里的StandardScaler()。

實例化:

zscore = preprocessing.StandardScaler()

# zscore標準化

zscore = zscore.fit_transform(df)

查看標準化后的數據:

df_zscore = pd.DataFrame(zscore,index=df.index,columns=df.columns)

df_zscore

使用歸一化/標準化會改變數據原來的規律嗎?

歸一化/標準化實質是一種線性變換,線性變換有很多良好的性質,這些性質決定了對數據改變后不會造成“失效”,反而能提高數據的表現,這些性質是歸一化/標準化的前提。比如有一個很重要的性質:線性變換不會改變原始數據的數值排序。

如果是單純想實現消除量級和量綱的影響,用Min-Max還是用Z-Score?

1、數據的分布本身就服從正態分布,使用Z-Score。

2、有離群值的情況:使用Z-Score。

這里不是說有離群值時使用Z-Score不受影響,而是,Min-Max對于離群值十分敏感,因為離群值的出現,會影響數據中max或min值,從而使Min-Max的效果很差。相比之下,雖然使用Z-Score計算方差和均值的時候仍然會受到離群值的影響,但是相比于Min-Max法,影響會小一點。

當數據出現離群點時,用什么方法?

當數據中有離群點時,我們可以使用Z-Score進行標準化,但是標準化后的數據并不理想,因為異常點的特征往往在標準化后容易失去離群特征,此時就可以用RobustScaler 針對離群點做標準化處理。

三、Robust標準化(RobustScaler)

很多時候我們在機器學習中,或是其他模型都會經常見到一個詞:魯棒性。也就是Robust的音譯。

計算機科學中,健壯性(英語:Robustness)是指一個計算機系統在執行過程中處理錯誤,以及算法在遭遇輸入、運算等異常時繼續正常運行的能力。 諸如模糊測試之類的形式化方法中,必須通過制造錯誤的或不可預期的輸入來驗證程序的健壯性。很多商業產品都可用來測試軟件系統的健壯性。健壯性也是失效評定分析中的一個方面。

關于Robust,是這么描述的:

This Scaler removes the median(中位數) and scales the data according to the quantile range(四分位距離,也就是說排除了outliers).

Huber從穩健統計的角度系統地給出了魯棒性3個層面的概念:

一是模型具有較高的精度或有效性,這也是對于機器學習中所有學習模型的基本要求;

二是對于模型假設出現的較小偏差,只能對算法性能產生較小的影響;

主要是:噪聲(noise)

三是對于模型假設出現的較大偏差,不可對算法性能產生“災難性”的影響。

主要是:離群點(outlier)

在機器學習,訓練模型時,工程師可能會向算法內添加噪聲(如對抗訓練),以便測試算法的「魯棒性」。可以將此處的魯棒性理解述算法對數據變化的容忍度有多高。魯棒性并不同于穩定性,穩定性通常意味著「特性隨時間不變化的能力」,魯棒性則常被用來描述可以面對復雜適應系統的能力,需要更全面的對系統進行考慮。

使用方法

(1)和Z-Score一樣,進行實例化:

robust = preprocessing.RobustScaler()

# robust標準化處理

df_robust = robust.fit_transform(df)

(2)查看標準化后的數據:

df_robust = pd.DataFrame(df_robust,index=df.index,columns=df.columns)

df_robust

(在這里我們僅僅是做一個示范,并不是說當前這個數據表必須用Robust進行標準化)

實驗數據表:

鏈接:https://pan.baidu.com/s/1MOmda_0kDbwRNp9jJ0XOgw?pan.baidu.com

提取碼:5ca2

由于時間關系,剩下的內容我會在下次更新中一并補充~

以上便是的內容,感謝大家的細心閱讀,同時歡迎感興趣的小伙伴一起討論、學習,想要了解更多內容的可以看我的其他文章,同時可以持續關注我的動態~

總結

以上是生活随笔為你收集整理的dataframe数据标准化处理_数据预处理——标准化/归一化(实例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。