Data Preprocessing
離散資料和連續資料
離散資料和連續資料是統計學中常用的兩種資料類型,它們之間的主要區別在於值的型態和可取的值範圍。
離散資料:
投擲一枚骰子,可能出現的點數是1、2、3、4、5、6,這些點數是離散的,因為骰子不會出現1.5或3.7等中間值。
一個班級裡學生的人數,例如30人、31人、32人等,這些數字是離散的,因為學生的人數不會是31.5或32.7等小數。
連續資料:
一個人的身高,可以是任何實數值,例如160厘米、165.5厘米、172.3厘米等,這些數字是連續的,因為身高可以是任意一個數值,包括小數。
某城市每小時的溫度變化,例如20°C、21.5°C、22.8°C等,這些溫度是連續的,因為溫度可以是任何實數值。
簡而言之,離散資料的值是有限且不連續的,而連續資料的值則是無限且可以是任意的實數值。
資料切割 Data Splitting
資料切割(Data Splitting)是機器學習中常用的一個步驟,主要是將原始數據集切割成訓練集(training set)、驗證集(validation set)和測試集(testing set),以便用於模型訓練、調優和評估。
訓練集(Training set):
訓練集是用來訓練機器學習模型的數據子集。
它包含了模型用來學習特徵與目標之間關係的資料。
訓練集的目的是讓模型通過學習訓練數據的特徵與目標之間的關係,從而擬合出一個能夠泛化到新數據的模型。
如同在學校學習,依據學習目標,尋找學習重點。
驗證集(Validation set):
驗證集是用來調整模型超參數(如學習率、正則化參數等)和評估模型性能的數據子集。
它獨立於訓練集,通常用於在訓練過程中評估模型的泛化能力和避免過擬合。
驗證集的目的是通過調整模型的超參數來選擇最佳的模型,以提高模型的性能。
如同模擬考,通過考試了解學程成果,並修正學習方向。
測試集(Testing set):
測試集是用來最終評估模型性能的數據子集。
它獨立於訓練集和驗證集,用於評估模型在未見過的新數據上的預測能力。
測試集的目的是模擬模型在現實應用中遇到新數據時的表現,從而確定模型的泛化能力和實際效果。
如同升學大考,驗證實際結果。
總的來說,訓練集用於訓練模型,驗證集用於調整模型的超參數和評估模型的性能,而測試集用於最終評估模型在未見過的新數據上的預測能力。這樣的數據切割方式有助於確保模型訓練和評估的準確性和穩定性。
特徵縮放 - 標準化和正規化
特徵縮放是在機器學習和數據分析中常用的一個步驟,目的是將特徵值進行轉換,使其在一個特定的範圍內,以便更好地進行模型訓練或數據分析。
標準化(Standardization):
標準化是將特徵值按照均值為0,標準差為1的方式進行轉換。
步驟:對於每個特徵,將該特徵的每個值減去該特徵的均值,然後除以該特徵的標準差。
目的:使特徵值的分佈接近標準常態分佈,有助於模型訓練過程中的收斂速度和準確性。
正規化(Normalization):
正規化是將特徵值縮放到一個特定的範圍內,通常是[0, 1]或[-1, 1]。
步驟:對於每個特徵,將該特徵的每個值減去該特徵的最小值,然後除以該特徵的最大值和最小值的差。
目的:使特徵值的範圍統一,避免某些特徵值對模型訓練產生過大的影響,提高模型的穩定性和泛化能力。
總的來說,標準化是將特徵值轉換成均值為0,標準差為1的標準分佈,而正規化則是將特徵值縮放到一個特定的範圍內,使其具有一致的尺度。這兩種方法都有助於提高模型的性能和準確性。
特徵編碼 Feature Encoding
特徵編碼(Feature encoding)是在機器學習和數據分析中常用的一個步驟,主要是將原始的類別型特徵轉換成數值型特徵,以便機器學習模型能夠更好地理解和處理這些特徵。特徵編碼的目的是將非數值型的資料轉換成數值型,從而可以應用於機器學習算法中。
以下是幾種常用的特徵編碼方法:
標籤編碼(Label Encoding):
將每個類別型特徵的不同類別映射為不同的整數值。
例如,將類別型特徵"男"和"女"分別編碼為0和1。
獨熱編碼(One-Hot Encoding):
將每個類別型特徵的不同類別轉換成二元的獨立特徵。
例如,將類別型特徵"紅色"、"藍色"和"綠色"轉換為三個新的二元特徵,分別是"紅色(1 0 0)"、"藍色(0 1 0)"和"綠色(0 0 1)"。
頻率編碼(Frequency Encoding):
將每個類別型特徵的不同類別映射為該類別在數據集中出現的頻率。
例如,如果類別型特徵"蘋果"在整個數據集中出現了50次,則將"蘋果"編碼為50。
目標編碼(Target Encoding):
將每個類別型特徵的不同類別映射為該類別對應的目標值(通常是平均目標值或概率)。
例如,如果要預測類別型特徵"地區"的銷售量,則可以將每個地區對應的銷售量作為該地區的目標編碼。
特徵編碼的選擇取決於數據的特性、機器學習模型的需求以及對模型性能的影響。正確的特徵編碼方法可以提高模型的準確性和泛化能力。