機器學習(一):用sklearn進行資料預處理:缺失值處理、資料標準化、歸一化
在我們平時進行資料資料探勘建模時,一般首先得對資料進行預處理,其中就包括資料缺失值、異常值處理、資料的標準化、歸一化等等。
下面主要介紹如何對一個數據檔案進行資料的缺失值處理、標準化和歸一化
MID_SP | MID_AC | MID_R25 | MID_COND | LITHO1 |
55.195 | 395.7 | 3.65 | 253.883 | 0.238 |
62.514 | 403.406 | 6.633 | NAN | 0.051 |
69.307 | 410.574 | 3.656 | 303.685 | 0.332 |
NAN | 406.873 | 4.874 | 159.814 | 0.197 |
65.529 | 404.019 | NAN | 234.114 | 0.331 |
63.564 | 396.497 | 4.901 | 146.675 | 0.217 |
61.142 | 401.276 | 8.883 | 73.528 | 0 |
61.075 | 386.493 | 7.884 | 147.242 | NAN |
60.044 | 400.443 | 5.207 | 140.7292 | 0.084 |
效果如下:from sklearn。preprocessing import Imputer import numpy as np #匯入要進行缺失值處理的資料檔案,資料檔案上面有展示 data = np.genfromtxt('input.csv', skip_header=True, delimiter=',') imp = Imputer(missing_values='NAN', strategy='mean', axis=0) #上面'NAN'表示無效值在資料檔案中的標識是'NAN',strategy='mean'表示用全域性平均值代替無效值,axis=0表示對列進行處理 imp.fit(data) #訓練一個缺失值處理模型 outfile = imp.transform(data) #儲存到本地 np.savetxt('outfile.csv', outfile, delimiter=',')
MID_SP | MID_AC | MID_R25 | MID_COND | LITHO1 |
55.195 | 395.7 | 3.65 | 253.883 | 0.238 |
62.514 | 403.406 | 6.633 | 182.4588 | 0.051 |
69.307 | 410.574 | 3.656 | 303.685 | 0.332 |
62.29625 | 406.873 | 4.874 | 159.814 | 0.197 |
65.529 | 404.019 | 5.711 | 234.114 | 0.331 |
63.564 | 396.497 | 4.901 | 146.675 | 0.217 |
61.142 | 401.276 | 8.883 | 73.528 | 0 |
61.075 | 386.493 | 7.884 | 147.242 | 0.18125 |
60.044 | 400.443 | 5.207 | 140.7292 | 0.084 |
接下來進行資料標準化,公式為:(x-x_mean)/ x_std 計算時對每個屬性/每列分別進行
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 27 23:13:09 2017
@author: wq
"""
from sklearn import preprocessing
import numpy as np
data = np.genfromtxt('input.csv', skip_header=True, delimiter=',')
#對一個數據集進行Z標準化,每一行表示一個樣本,每一列表示一個特徵引數
zdata = preprocessing.scale(data)
np.savetxt('z_core_out.txt', zdata, delimiter=',')
效果如下:
MID_SP | MID_AC | MID_R25 | MID_COND | LITHO1 |
-1.94817 | -0.73419 | -1.21929 | 1.083537 | 0.515267 |
0.059738 | 0.423558 | 0.545455 | -5.1E-10 | -1.18262 |
1.923342 | 1.500474 | -1.21574 | 1.839055 | 1.368749 |
0 | 0.944438 | -0.49517 | -0.34353 | 0.143004 |
0.886878 | 0.515655 | 0 | 0.783633 | 1.35967 |
0.347797 | -0.61445 | -0.4792 | -0.54286 | 0.324596 |
-0.31666 | 0.103548 | 1.876553 | -1.65253 | -1.64568 |
-0.33504 | -2.11744 | 1.285546 | -0.53425 | -2.5E-16 |
-0.61789 | -0.0216 | -0.29817 | -0.63306 | -0.88299 |
#對一個數據集進行歸一化,即資料縮至0-1之間,每一行表示一個樣本,每一列表示一個特徵引數
min_max_scale = preprocessing.MinMaxScaler()
min_max_data = min_max_scale.fit_transform(data)
np.savetxt('min_max_out1.csv', min_max_data, delimiter=',')
效果如下:
MID_SP | MID_AC | MID_R25 | MID_COND | LITHO1 |
0 | 0.382335 | 0 | 0.783617 | 0.716867 |
0.518637 | 0.702338 | 0.570036 | 0.473289 | 0.153614 |
1 | 1 | 0.001147 | 1 | 1 |
0.503206 | 0.84631 | 0.2339 | 0.374901 | 0.593373 |
0.732285 | 0.727794 | 0.393847 | 0.697724 | 0.996988 |
0.593041 | 0.415431 | 0.23906 | 0.317813 | 0.653614 |
0.421414 | 0.613886 | 1 | 0 | 0 |
0.416667 | 0 | 0.809096 | 0.320277 | 0.545934 |
0.343608 | 0.579295 | 0.297535 | 0.29198 | 0.253012 |
相關推薦
機器學習(一):用sklearn進行資料預處理:缺失值處理、資料標準化、歸一化
在我們平時進行資料資料探勘建模時,一般首先得對資料進行預處理,其中就包括資料缺失值、異常值處理、資料的標準化、歸一化等等。 下面主要介紹如何對一個數據檔案進行資料的缺失值處理、標準化和歸一化 MID_SP MID_AC MID_R25 MID_COND LITHO1 55.
前置機器學習(四):一文掌握Pandas用法
> Pandas提供快速,靈活和富於表現力的**資料結構**,是強大的**資料分析**Python庫。 本文收錄於[機器學習前置教程系列](https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzUxMjU4NjI4MQ=
Andrew Ng機器學習(零):什麽是機器學習
中學 修正 style tar 輸入 color 情況 html 知識 1.什麽是機器學習? 自動化:讓計算機處理繁瑣和重復的工作。 編程:設計一種算法,適用於解決特定的問題。 機器學習:可以解決更廣泛的而不是特定的問題。類比於人類從經驗中學習這種活動,從已有的數據中發現自
Java虛擬機器學習(1):體系結構 記憶體模型
JVM記憶體區域模型 1.方法區 也稱”永久代” 、“非堆”, 它用於儲存虛擬機器載入的類資訊、常量、靜態變數、是各個執行緒共享的記憶體區域。預設最小值為16MB,最大值為64MB,可以通過-XX:PermSize 和 -XX:MaxPermSize 引數限制方法區的大小。
Python教程:進擊機器學習(五)--Scipy
Python教程:進擊機器學習(五)--Scipy 2017年08月05日 21:22:32 Whytin-Vicky 閱讀數:39876 Scipy簡介 檔案輸入和輸出scipyio 線性代數操作scipylinalg 快速傅立
演算法工程師修仙之路:吳恩達機器學習(九)
吳恩達機器學習筆記及作業程式碼實現中文版 神經網路引數的反向傳播演算法 代價函式 假設神經網路的訓練樣本有 m
演算法工程師修仙之路:吳恩達機器學習(八)
吳恩達機器學習筆記及作業程式碼實現中文版 第六章 神經網路學習 特徵和直觀理解 從本質上講,神經網路能夠通過學習得出其自身的一系列特徵。 神經網路中,單層神經元( 無中間層)的計算可用來表示邏輯運算,比如邏輯與(AND)、邏輯或(OR)。 邏輯
演算法工程師修仙之路:吳恩達機器學習(七)
吳恩達機器學習筆記及作業程式碼實現中文版 第六章 神經網路學習 非線性假設 無論是線性迴歸還是邏輯迴歸都有這樣一個缺點:當特徵太多時,計算的負荷會非常大。 使用非線性的多項式項,能夠幫助我們建立更好的分類模型。假設我們有非常多的特徵,例如大於 100 個
演算法工程師修仙之路:吳恩達機器學習(六)
吳恩達機器學習筆記及作業程式碼實現中文版 第五章 正則化 過擬合問題 線性迴歸和邏輯迴歸能夠有效地解決許多問題,但是當將它們應用到某些特定的機器學習應用時,會遇到過擬合(over-fitting)的問題,可能會導致它們效果很差。 正則化(regulari
演算法工程師修仙之路:吳恩達機器學習(五)
吳恩達機器學習筆記及作業程式碼實現中文版 第四章 Logistic迴歸 簡化代價函式與梯度下降 邏輯迴歸的代價函式: C
演算法工程師修仙之路:吳恩達機器學習(四)
吳恩達機器學習筆記及作業程式碼實現中文版 第四章 Logistic迴歸 分類 在分類問題中,要預測的變數y是離散的值,邏輯迴歸 (Logistic Regression) 演算法是目前最流行使用最廣泛的一種學習演算法。 在分類問題中,我們嘗試預測的是結果
演算法工程師修仙之路:吳恩達機器學習(三)
吳恩達機器學習筆記及作業程式碼實現中文版 第三章 多變數線性迴歸 多維特徵 現在我們對房價模型增加更多的特徵,例如房間數樓層等,構成一個含有多個變數的模型,模型中的特徵為
演算法工程師修仙之路:吳恩達機器學習(二)
吳恩達機器學習筆記及作業程式碼實現中文版 第二章 單變數線性迴歸 模型描述 我們使用一個監督學習演算法的例子:預測住房價格。 我們要使用一個數據集,資料集包含俄勒岡州波特蘭市的住房價格。 在這裡,我要根據不同房屋尺寸所售出的價格,畫出我的資
機器學習與深度學習系列連載: 第一部分 機器學習(五) 生成概率模型(Generative Model)
生成概率模型(Generative Model) 1.概率分佈 我們還是從分類問題說起: 當我們把問題問題看做是一個迴歸問題, 分類是class 1 的時候結果是1 分類為class 2的時候結果是-1; 測試的時候,結果接近1的是class1
機器學習與深度學習系列連載: 第一部分 機器學習(九)支援向量機2(Support Vector Machine)
另一種視角定義SVM:hinge Loss +kennel trick SVM 可以理解為就是hingle Loss和kernel 的組合 1. hinge Loss 還是讓我們回到二分類的問題,為了方便起見,我們y=1 看做是一類,y=-1 看做是另一類
機器學習與深度學習系列連載: 第一部分 機器學習(十三)半監督學習(semi-supervised learning)
在實際資料收集的過程中,帶標籤的資料遠遠少於未帶標籤的資料。 我們據需要用帶label 和不帶label的資料一起進行學習,我們稱作半監督學習。 Transductive learning:沒有標籤的資料是測試資料 Inductive learning:沒有標
機器學習(二):logistic迴歸
基礎知識: logistic迴歸其實是一個分類問題,可以定義如下:c為2時是一個兩類分類問題. 當分佈為伯努利分佈時: logistic迴歸和線性迴歸類似,不同的條件概率是不同的,方程如下: 其中:sigmoid函式定義如下: 使用logist
機器學習(二):機器學習中的幾個基本概念
前言 對於《統計學習方法》中遇到的一些問題,以及機器學習中的一些自己沒有理解透徹的問題,希望通過梳理總結能夠有更深入的理解。 在上一章最開始我們已經概括了統計學習方法的三要素,即模型、策略、演算法,這裡就不再詳述了。 本文討論總結了如下幾個概念:損失函式與風險
Python教程:進擊機器學習(四)--Matplotlib
介紹 Matplotlib是Python庫中最經常用來繪製圖的,它可以快速的視覺化你的資料,並且匯出不同的格式。用Matplotlib繪製的圖可以達到出版書籍和論文的質量要求。我們開始探索在處理一些常見的資料時應用Matplotlib。 pyplo
演算法工程師修仙之路:吳恩達機器學習(十三)
吳恩達機器學習筆記及作業程式碼實現中文版 第十章 支援向量機 優化目標 在監督學習中,許多學習演算法的效能都非常類似,因此,重要的不是你該選擇使用學習演算法 A 還是學習演算法 B,而更重要的是,所建立的大量資料在應用這些演算法時,表現情況通常依賴於你的水平。比如你