KNN演算法的資料歸一化--Feature Scaling
如圖1所示,假設現在有兩個樣本,分別擁有兩個特徵,如下:
腫瘤的大小(釐米)的 | 發現時間(天) | |
樣本1 | 1 | 200 |
樣本2 | 五 | 100 |
計算兩個樣本之間的尤拉距離:
D = ,這個計算結果很明顯是被時間主導的。
所以,將時間以年為單位,那麼兩個樣本之間的尤拉距離就是:
D = ,這個計算結果又很明顯的是被腫瘤大小主導的。
根據這個問題,我們提出了數值歸一化:將所有的資料對映到同一個尺度。
2,資料歸一化的方式有兩種:
最值歸一化(歸一化),將所有的資料對映到0-1之間。它是最簡單的資料歸一化。求出每個特徵的最大值和最小值,先將資料對映到O-(的的Xmax-Xmin時時)中,再求特徵點X在該範圍長度中所佔的比例。
這種方式適用於有明顯邊界的情況,因為受異常值的影響比較大。
比如有一組特徵表示學生的成績分數,分數是有明顯邊界的,最低0分,最高100分。在影像中,每個畫素點的畫素值也是有明顯邊界的,範圍是-255。這些都適合用最值歸一化處理資料的。像工資的話,就不適用,工資高的歸一化接近1,工資低的歸一化接近0,屬於極端資料了。
均值方差歸一化(標準化):把所有的資料歸一到均值是0,方差是1的分佈中。
這個方式適用於資料分佈沒有明顯的邊界,有可能存在極端資料值。
3,簡單的程式碼介紹。
其一,最值歸一化,隨機生成一個有100個數的矩陣,資料的範圍是0-100。根據公式將資料歸一化。
X = np.random.randint(0,100,size = 100)
array = (x - np.min(x))/(np.max(x) - np.min(x))
對矩陣進行歸一化。定義一個50 * 2的矩陣,每個數字的範圍是0-100,由於歸一化的資料是浮點型,所以要先將矩陣轉換成浮點型。最後根據公式,對每一列的資料進行歸一化。
X = np.random.randint(0,100,(50,2))
X = np.array(X,dtype = float)
X[:,0] = (X[:,0] - np.min(X[:,0]))/(np.max(X[:,0]) - np.min(X[:,0]))
X[:,1] = (X[:,1] - np.min(X[:,1]))/(np.max(X[:,1]) - np.min(X[:,1]))
其二,均值方差歸一化,根據公式,對每一列的資料進行歸一化。
X = np.random.randint(0,100,(50,2))
X = np.array(X,dtype = float)
X[:,0] =(X[:,0] - np.mean(X[:,0])) / np.std(X[:,0])
X[:,1] =(X[:,0] - np.mean(X[:,0])) / np.std(X[:,0])
相關文章
- scikit-learn中KNN演算法資料歸一化的分裝KNN演算法
- 資料歸一化
- 機器學習-資料歸一化方法機器學習
- 手勢識別演算法: 資料濾波演算法、資料分演算法——KNN演算法KNN
- 資料分析與挖掘 - R語言:KNN演算法R語言KNN演算法
- 機器學習演算法-K近鄰(KNN)演算法(三):馬絞痛資料--kNN資料預處理+kNN分類pipeline(程式碼附詳細註釋)機器學習演算法KNN
- KNN演算法KNN演算法
- 資料變換-歸一化與標準化
- 統計資料歸一化與標準化
- 資料探勘——KNN演算法(手寫數字分類)KNN演算法
- 機器學習 第5篇:knn迴歸機器學習KNN
- 資料結構與演算法-kd二叉樹(kNN)資料結構演算法二叉樹KNN
- Sklearn之資料預處理——StandardScaler歸一化
- 機器學習之KNN演算法機器學習KNN演算法
- KNN演算法理解KNN演算法
- KNN演算法實驗KNN演算法
- 機器學習 | 資料歸一化的重要性你瞭解多少?機器學習
- oracle 12c 資料歸檔 即Using In-Database Archiving featureOracleDatabase
- 不同資料集有不同的Scaling law?而你可用一個壓縮演算法來預測它演算法
- KNN演算法——分類部分KNN演算法
- 機器學習筆記(KNN演算法)機器學習筆記KNN演算法
- 機器學習——KNN近鄰演算法機器學習KNN演算法
- educoder 機器學習 --- kNN演算法機器學習KNN演算法
- 演算法金 | 再見!!!KNN演算法KNN
- 演算法(八):圖解KNN演算法演算法圖解KNN
- python機器學習演算法——KNN演算法Python機器學習演算法KNN
- 最基礎的分類演算法(KNN)演算法KNN
- 【資料結構與演算法】歸併排序資料結構演算法排序
- 資料結構與演算法——歸併排序資料結構演算法排序
- 機器學習經典演算法之KNN機器學習演算法KNN
- KNN演算法推理與實現KNN演算法
- Python實現KNN演算法PythonKNN演算法
- 機器學習-K近鄰演算法-KNN機器學習演算法KNN
- Python資料預處理:徹底理解標準化和歸一化Python
- 資料結構與演算法——排序演算法-歸併排序資料結構演算法排序
- 為什麼一些機器學習模型需要對資料進行歸一化?機器學習模型
- 機器學習演算法——kNN(k-近鄰演算法)機器學習演算法KNN
- 關於使用sklearn進行資料預處理 —— 歸一化/標準化/正則化