python三種數(shù)據(jù)標(biāo)準(zhǔn)化方式
python三種數(shù)據(jù)標(biāo)準(zhǔn)化
數(shù)據(jù)變換是數(shù)據(jù)準(zhǔn)備的重要環(huán)節(jié),它通過數(shù)據(jù)平滑、數(shù)據(jù)聚集、數(shù)據(jù)概化和規(guī)范化 等方式將數(shù)據(jù)轉(zhuǎn)換成適用于數(shù)據(jù)挖掘的形式。
常見的變換方法:
- 1.數(shù)據(jù)平滑:去除數(shù)據(jù)中的噪聲,將連續(xù)數(shù)據(jù)離散化。這里可以采用分箱、聚類和回歸的方式進(jìn)行數(shù)據(jù)平滑
- 2.數(shù)據(jù)聚集:對(duì)數(shù)據(jù)進(jìn)行匯總,在SQL中有一些聚集函數(shù)可以供我們操作(比如Max)反饋某個(gè)字段的數(shù)值最大值,Sum返回某個(gè)字段的數(shù)值總和;
- 3.數(shù)據(jù)概化:將數(shù)據(jù)由較低的概念抽象成為較高的概念,減少數(shù)據(jù)復(fù)雜度,即用更高的概念替代更低的概念。比如說上海、杭州、深圳、北京可以概化為中國。
- 4.數(shù)據(jù)規(guī)范化:使屬性數(shù)據(jù)按比例縮放,這樣就將原來的數(shù)值映射到一個(gè)新的特定區(qū)域中。常用的方法有最小一最大規(guī)范化、Z-score規(guī)范化、按小數(shù)定標(biāo)規(guī)范化等;
- 5.屬性構(gòu)造:構(gòu)造出新的屬性并添加到屬性集中。這里會(huì)用到特征工程的知識(shí),因?yàn)橥ㄟ^屬性與屬性的連接構(gòu)造新的屬性,其實(shí)就是特征工程。比如說,數(shù)據(jù)表中統(tǒng)計(jì)每個(gè)人的英語、語文和數(shù)學(xué)成績,你可以構(gòu)造一個(gè)“總和“這個(gè)屬性,來作為新屬性。這樣“總和這個(gè)屬性就可以用到后續(xù)的數(shù)據(jù)挖掘計(jì)算中。
在這些變換方法中,最簡單易用的就是對(duì)數(shù)據(jù)進(jìn)行規(guī)范化處理。下面我來給你講下如何對(duì)數(shù)據(jù)進(jìn)行規(guī)范化處理。
1、Min-max 歸一化
Min-max規(guī)范化方法是將原始數(shù)據(jù)變換到[0,1]的空間中。
用公式表示就是:
新數(shù)值=(原數(shù)值-極小值)/(極大值-極小值)。
2、Z-Score標(biāo)準(zhǔn)化
我們定義:
新數(shù)值=(原數(shù)值一均值)/標(biāo)準(zhǔn)差。
3、小數(shù)定標(biāo)規(guī)范化
小數(shù)定標(biāo)規(guī)范化就是通過移動(dòng)小數(shù)點(diǎn)的位置來進(jìn)行規(guī)范化。
小數(shù)點(diǎn)移動(dòng)多少位取決于屬性A的取值中的最大絕對(duì)值。
舉個(gè)例子:
- 比如屬性A的取值范圍是-999到88,那么最大絕對(duì)值為999,小數(shù)點(diǎn)就會(huì)移動(dòng)3位,即新數(shù)值=原數(shù)值/1000。
- 那么A的取值范圍就被規(guī)范化為-0.999到0.088。
Python的SciKit-Learn庫使用
- Min-max 規(guī)范化
from sklearn import preprocessing import numpy as np #初始化數(shù)據(jù),每一行表示一個(gè)樣本,每一列表示一個(gè)特征 x=np.array([[0.,-3.,1.], [3.,1.,2.], [0.,1.,-1.]]) #將數(shù)據(jù)進(jìn)行[0,1]規(guī)范化 min_max_scaler=preprocessing.MinMaxScaler() minmax_x=min_max_scaler.fit_transform(x) print (minmax_x)
- Z-Score規(guī)范化
from sklearn import preprocessing import numpy as np #初始化數(shù)據(jù) x=np.array([[0.,-3.,1.], [3.,1.,2.], [0.,1.,-1.]]) #將數(shù)據(jù)進(jìn)行Z-Score規(guī)范化 scaled_x=preprocessing.scale(x) print (scaled_x)
- 小數(shù)定標(biāo)規(guī)范化
from sklearn import preprocessing import numpy as np #初始化數(shù)據(jù) x=np.array([[0.,-3.,1.], [3.,1.,2.], [0.,1.,-1.]]) #小數(shù)定標(biāo)規(guī)范化 j=np.ceil(np.log10(np.max(abs(x))) scaled_x=X/(10**j) print (scaled_x)
4、歸一化和標(biāo)準(zhǔn)化的區(qū)別和聯(lián)系
區(qū)別:
- 歸一化是將樣本的特征值轉(zhuǎn)換到同一量綱下把數(shù)據(jù)映射到[0,1]或者[a,b]區(qū)間內(nèi),僅由變量的極值決定,因此區(qū)間放縮法是歸一化的一種。
- 標(biāo)準(zhǔn)化是依照特征矩陣的列處理數(shù)據(jù),其通過求z-score的方法,轉(zhuǎn)換為標(biāo)準(zhǔn)正態(tài)分布,和整體樣本分布相關(guān),每個(gè)樣本點(diǎn)都能對(duì)標(biāo)準(zhǔn)化產(chǎn)生影響。
- 歸一化會(huì)改變數(shù)據(jù)的原始距離,分布,信息;
- 標(biāo)準(zhǔn)化一般不會(huì)。
聯(lián)系:
- 它們的相同點(diǎn)在于都能取消由于量綱不同引起的誤差;
- 都是一種線性變換,都是對(duì)向量X按照比例壓縮再進(jìn)行平移。
5、使用情形:
什么時(shí)候用歸一化?什么時(shí)候用標(biāo)準(zhǔn)化?
(1)如果對(duì)輸出結(jié)果范圍有要求,用歸一化。
(2)如果數(shù)據(jù)較為穩(wěn)定,不存在極端的最大最小值,用歸一化。
(3)如果數(shù)據(jù)存在異常值和較多噪音,用標(biāo)準(zhǔn)化,可以間接通過中心化避免異常值和極端值的影響。
6、哪些模型必須歸一化/標(biāo)準(zhǔn)化?
- ①SVM
- ②KNN
- ③神經(jīng)網(wǎng)絡(luò)
- ④PCA等
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python中的數(shù)據(jù)標(biāo)準(zhǔn)化與反標(biāo)準(zhǔn)化全面指南
- Python數(shù)據(jù)標(biāo)準(zhǔn)化的實(shí)例分析
- Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解
- 詳解python實(shí)現(xiàn)數(shù)據(jù)歸一化處理的方式:(0,1)標(biāo)準(zhǔn)化
- python數(shù)據(jù)預(yù)處理之?dāng)?shù)據(jù)標(biāo)準(zhǔn)化的幾種處理方式
- python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化詳解
相關(guān)文章
詳解python的sorted函數(shù)對(duì)字典按key排序和按value排序
這篇文章主要介紹了詳解python的sorted函數(shù)對(duì)字典按key排序和按value排序,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08Python圖像的增強(qiáng)處理操作示例【基于ImageEnhance類】
這篇文章主要介紹了Python圖像的增強(qiáng)處理操作,結(jié)合實(shí)例形式分析了使用ImageEnhance類處理圖片的亮度、對(duì)比度、色度以及銳度等相關(guān)操作技巧,需要的朋友可以參考下2019-01-0110 行 Python 代碼教你自動(dòng)發(fā)送短信(不想回復(fù)工作郵件妙招)
這篇文章主要介紹了10 行 Python 代碼教你自動(dòng)發(fā)送短信(不想回復(fù)工作郵件妙招),目前在國內(nèi)通過手機(jī)短信保障信息安全是比較常見的,具體實(shí)例代碼大家跟隨小編一起通過本文學(xué)習(xí)吧2018-10-10Windows8下安裝Python的BeautifulSoup
這篇文章主要介紹了Windows8下安裝Python的BeautifulSoup,本文著重講解安裝中出現(xiàn)的錯(cuò)誤和解決方法,需要的朋友可以參考下2015-01-01Python使用Bokeh實(shí)現(xiàn)交互式圖表的創(chuàng)建
Bokeh?是一個(gè)流行的?Python?數(shù)據(jù)可視化庫,可以生成高質(zhì)量的交互式圖表,這篇文章主要就介紹了Python如何使用Bokeh實(shí)現(xiàn)交互式圖表的創(chuàng)建,需要的可以參考一下2023-06-06Python利用Turtle繪制哆啦A夢(mèng)和小豬佩奇
turtle庫是python的基礎(chǔ)繪圖庫,經(jīng)常被用來介紹編程知識(shí)的方法庫,是標(biāo)準(zhǔn)庫之一,利用turtle可以制作很多復(fù)雜的繪圖。本文將為大家介紹通過turtle庫繪制制哆啦A夢(mèng)和小豬佩奇,感興趣的小伙伴可以學(xué)習(xí)一下2022-04-04Python機(jī)器學(xué)習(xí)特征重要性分析的8個(gè)常用方法實(shí)例探究
本文詳細(xì)介紹8種常用的方法,涵蓋了基于決策樹、集成學(xué)習(xí)模型以及統(tǒng)計(jì)學(xué)方法的特征重要性分析,從決策樹模型到SHAP值,深入探討每種方法的原理和示例,幫助全面了解如何評(píng)估特征的重要性,將能更好地理解特征對(duì)模型預(yù)測的貢獻(xiàn),為提升模型性能和解釋模型決策提供有力支持2024-01-01