事前數據處理

喺機械學習同數據探勘等領域上係攞到數據之後要做嘅第一個步驟。喺搜集數據嘅過程之後，個研究者手上會有一個數據庫，個數據庫嘅數據包含咗每一個個案喺每個變數上嘅數值。喺現實世界當中，搜集數據過程都係唔完全受控嘅，所以搜集到嘅數據幾乎梗會出啲錯，例如係某幾個個案喺某個變數上嘅數值唔見咗或者有啲擺明冇可能嘅數值，等等。呢啲噉嘅數據直接攞去分析嘅話好多時會搞到個程式出錯，所以做機械學習嘅人喺開始俾個程式做學習之前往往會做啲事前處理先。

舉個例說明，假想有個金融學方面嘅學者想用機械學習教個電腦程式預測股價，佢可以去一啲網上嘅金融數據庫嗰度攞某一柞股票喺某一段時間之間嘅價格作業 
事前數據處理大致上涉及以下嘅工作：
清走啲好明顯係出咗錯嘅數據；
睇吓個數據庫，諗吓使唔使做一啲整體性嘅編輯；
將啲數據簡化；
諗吓好唔好將啲數據嘅格式改變，等柞數據易睇啲。
... 等等。

例子碼 
以下係一段用 Python 程式語言寫嘅源碼，用途在於將啲數據重新縮放成 0 至 1 之間嘅數值。噉樣做係因為，有某啲機械學習演算法需要數據係 0 至 1 之間嘅數先至行得到：

Python code to Rescale data (between 0 and 1) 
import pandas 
import scipy 
import numpy 
from sklearn.preprocessing import MinMaxScaler 
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data" # 指定一個網址
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] # 指定每個變數嘅名
dataframe = pandas.read_csv(url, names=names) # 由網址嗰度攞數據
array = dataframe.values # 將數據擺入去屬於個程式一個 array 嗰度

X = array[:,0:8] # X 呢個 array 包含咗用嚟做預測嘅變數
Y = array[:,8] # Y 呢個 array 包含咗要預測嘅變數

將 X 入面嘅數字重新縮放
scaler = MinMaxScaler(feature_range=(0, 1))
rescaledX = scaler.fit_transform(X) 

將做完縮放嘅嗰柞數據 show 出嚟睇
numpy.set_printoptions(precision=3) 
print(rescaledX[0:5,:])

機械學習
數據探勘
大數據
數據科學

攷

拎 
Online Data Processing Compendium.
Data preprocessing in predictive data mining. Knowledge Eng. Review 34: e1 (2019).

數據