sklearn中常用的數據預處理方法

常見的數據預處理方法,以下通過sklearn的preprocessing模塊來介紹;

1. 標準化(Standardization or Mean Removal and Variance Scaling)

變換后各維特征有0均值,單位方差。也叫z-score規范化(零均值規范化)。計算方式是將特征值減去均值,除以標準差。

1
sklearn.preprocessing.scale(X)

一般會把train和test集放在一起做標準化,或者在train集上做標準化后,用同樣的標準化器去標準化test集,此時可以用scaler

1
2
3
scaler = sklearn.preprocessing.StandardScaler().fit(train)
scaler.transform(train)
scaler.transform(test)

實際應用中,需要做特征標準化的常見情景:SVM

2. 最小-最大規范化

最小-最大規范化對原始數據進行線性變換,變換到[0,1]區間(也可以是其他固定最小最大值的區間)

1
2
min_max_scaler = sklearn.preprocessing.MinMaxScaler()
min_max_scaler.fit_transform(X_train)

3.規范化(Normalization)

規范化是將不同變化范圍的值映射到相同的固定范圍,常見的是[0,1],此時也稱為歸一化。《機器學習》周志華

將每個樣本變換成unit norm。

1
2
X = [[ 1, -1, 2],[ 2, 0, 0], [ 0, 1, -1]]
sklearn.preprocessing.normalize(X, norm='l2')

得到:

1
array([[ 0.40, -0.40, 0.81], [ 1, 0, 0], [ 0, 0.70, -0.70]])

可以發現對于每一個樣本都有,0.4^2+0.4^2+0.81^2=1,這就是L2 norm,變換后每個樣本的各維特征的平方和為1。類似地,L1 norm則是變換后每個樣本的各維特征的絕對值和為1。還有max norm,則是將每個樣本的各維特征除以該樣本各維特征的最大值。

在度量樣本之間相似性時,如果使用的是二次型kernel,需要做Normalization

4. 特征二值化(Binarization)

給定閾值,將特征轉換為0/1

1
2
binarizer = sklearn.preprocessing.Binarizer(threshold=1.1)
binarizer.transform(X)

5. 標簽二值化(Label binarization)

1
lb = sklearn.preprocessing.LabelBinarizer()

6. 類別特征編碼

有時候特征是類別型的,而一些算法的輸入必須是數值型,此時需要對其編碼。

1
2
3
enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
enc.transform([[0, 1, 3]]).toarray()  #array([[ 1., 0., 0., 1., 0., 0., 0., 0., 1.]])

上面這個例子,第一維特征有兩種值0和1,用兩位去編碼。第二維用三位,第三維用四位。

7.標簽編碼(Label encoding)

1
2
3
4
5
6
le = sklearn.preprocessing.LabelEncoder()  
le.fit([1, 2, 2, 6]) 
le.transform([1, 1, 2, 6])  #array([0, 0, 1, 2]) 
#非數值型轉化為數值型
le.fit(["paris", "paris", "tokyo", "amsterdam"])
le.transform(["tokyo", "tokyo", "paris"])  #array([2, 2, 1])

8.特征中含異常值時

1
sklearn.preprocessing.robust_scale

9.生成多項式特征

這個其實涉及到特征工程了,多項式特征/交叉特征。

1
2
poly = sklearn.preprocessing.PolynomialFeatures(2)
poly.fit_transform(X)

原始特征:

轉化后:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456944.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456944.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

兒童學計算機編程好處,兒童學習編程有什么好處

原標題:兒童學習編程有什么好處前幾年中國家長可能對少兒編程教育感到陌生。但隨著這兩年美國STEM教育在中國的流行,以及今年國務院普及中小學階段人工智能、編程教育規劃的發布,現在國內也漸漸掀起少兒學習編程的風潮。孩子學電腦編程&#…

python中tkinter的使用-中

00Listbox控件 import tkinterwin tkinter.Tk() win.title("Liuwang") win.geometry("400x40020020") 列表框控件,可以包含一個或者多個文本框 作用:在listbox控件的小窗口顯示一個字符串 #1、創建一個listbox,添加幾個元素&#…

SharePoint Server 2016 PWA(Project web app) 被變為只讀模式

今天有同事反應了一個狀況,我們SharePoint 2016里面集成的Project Web App(以下簡稱PWA)變成 read-only 只讀模式了!今天就給大家分享一下我的排查過程,供大家參考。 整個過程我一共使用了五種辦法,結果最后一種才生效&#xff0c…

HDU 5741 Helter Skelter(構造法)

【題目鏈接】 http://acm.hdu.edu.cn/showproblem.php?pid5741 【題目大意】 一個01相間的串,以0開頭,給出的序列每個數字表示連續的0的個數或者1的個數,現在有m個詢問,求0的個數為a且1的個數為b的串是否存在。 【題解】 我們發現…

集成學習之參數調整策略

1 Random Forest和Gradient Tree Boosting參數詳解 在sklearn.ensemble庫中,我們可以找到Random Forest分類和回歸的實現:RandomForestClassifier和RandomForestRegression,Gradient Tree Boosting分類和回歸的實現:GradientBoost…

python中tkinter的使用-下

00表格數據 import tkinter from tkinter import ttkwin tkinter.Tk() win.title("Liuwang") win.geometry("400x40020020")#表格 tree ttk.Treeview(win) tree.pack() #列 tree["columns"] ("姓名","年齡","身高&…

計算機科學和建筑設計結合,智能化建筑中計算機科學與技術的應用

4494 科技創新 建筑工程技術與設計2018年5月上【摘要】隨著我國經濟的發展,計算機科學技術已經逐漸應用到各個領域。將計算機科學與建筑相結合,為建筑業的發展提供了契機。本文介紹了計算機科學技術在智能化建筑中的應用,以期其為加快我國智能…

符號

符號:; 多個命令的分隔符/ 根或者路徑的分隔符> 或1>標準輸出重定向(數據流朝著箭頭的方向流動),覆蓋原來的文件>>或1>>追加重定向(數據流朝著箭頭的方向流動),再原來的文件…

Random Forest算法中的參數詳解

本篇不是介紹RF的,關于RF網上有很多通俗易懂的解釋 西瓜書與統計學習方法等很多教材中的解釋也都足夠 本篇僅針對如何使用sklearn中的RandomForestClassifier作記錄 一、代碼怎么寫 [python] view plaincopy print?class sklearn.ensemble.RandomForestClassifier(…

python中自動化辦公 【筆記】

00讀取csv文件 import csv def readCsv(path):infolist []with open (path,"r") as f:allFileInfo csv.reader(f)print(allFileInfo)for row in allFileInfo:infolist.append(row)return infolistpath r"D:\xiazaipan\第1章 Python語言基礎\15、自動化辦公與…

Python爬蟲:一些常用的爬蟲技巧總結

1、基本抓取網頁 get方法 import urllib2 url "http://www.baidu.com" respons urllib2.urlopen(url) print response.read() post方法 import urllib import urllib2url "http://abcde.com" form {name:abc,password:1234} form_data urllib.urlenco…

微型計算機選用要點,微型計算機原理以及應用考試_new要點分析.doc

微型計算機原理以及應用第一章:1.微機的主要的特點是:(1)體積小、重量輕;(2)價格低廉;(3)可靠性高、結構靈活(4)應用面廣2.微型機的分類:按微處理器規模分類:單片機 、個人計算機、 …

到底什么是API經濟

編者按:這是一篇兩年前的文章,作者為原CA TECH的中國區技術總監。他在文章中闡述的問題,今天讀來依舊讓人振聾發聵。但遺憾的是,國人在API成為一種服務的概念上似乎還停留在遙遠的PC時代,說白了還都只是一些低端的數據…

解決Linux下vi或vim操作Found a swap file by the name

在linux下用vi或vim打開 文件時 E325: ATTENTION Found a swap file by the name ".1.py.swp" owned by: liu dated: Sat Apr 20 17:37:19 2019 file name: ~liu/1.py modified: YES user name: liu host name: localhos…

給未來的自己一封信計算機,給未來的自己的一封信范文(精選5篇)

給未來的自己的一封信范文(精選5篇)在日常生活或是工作學習中,大家總免不了要接觸或使用書信吧,書信一般包括稱呼、問候語、正文、祝語、署名、日期六個部分。你知道書信怎樣寫才規范嗎?下面是小編為大家收集的給未來的自己的一封信范文(精選…

matlab神經網絡函數

1.設計函數 solvein 設計線性網絡; solverb 設計徑向基網絡; solverbe 設計精確的徑向基網絡; solvehop 設計Hopfield網絡。 2.傳遞函數 hardlim 硬限幅傳遞函數; hardl…

GBDT算法簡介

在網上看到一篇GBDT介紹非常好的文章,GBDT大概是非常好用又非常好用的算法之一了吧(哈哈 兩個好的意思不一樣) GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一種迭代的決策樹算法,該算…

DevExpress Chart空間Y軸歸一化(線性歸一化函數)

數據的標準化(normalization)是將數據按比例縮放,使之落入一個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除數據的單位限制,將其轉化為無量綱的純數值,便于不同單位或量級的指標能夠進行比較…

Linux samba的配置和使用

推薦局域網內使用 不推薦遠程服務器 一、安裝Samba服務 yum -y install samba # 查看yum源中Samba版本 yum list | grep samba # 查看samba的安裝情況 rpm -qa | grep samba Samba服務器安裝完之后, 會生成配置文件目錄/etc/samba, /etc/samba/smb.conf是samba的核心配置文件.…

23期PHP基礎班第四天

轉載于:https://www.cnblogs.com/lihang666/p/6078982.html