機器學習——特徵縮放

前言:大多數模型都是直接給出公式,其實本身私下有推導,涉及好多本身不懂的數學知識,會一點點補充的

機器學習專欄html

  1. 機器學習——線性迴歸(預測)
  2. 機器學習——邏輯迴歸(分類)
  3. 機器學習——特徵縮放
  4. 機器學習——正則化

特徵縮放

一、特徵縮放做用

面對特徵數量較多的時候,保證這些特徵具備相近的尺度(無量綱化),能夠使梯度降低法更快的收斂。這兩張圖表明數據是否均一化的最優解尋解過程(左邊是未歸一化的),
從這兩張圖能夠看出,數據歸一化後,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解
在這裏插入圖片描述python

二、特徵縮放的四種方式

  1. Min-Max Normalization(min-max標準化)
    x = x m i n ( x ) m a x ( x ) m i n ( x ) x^*=\frac{x-min(x)}{max(x)-min(x)}
  2. Mean normalization(mean歸一化)
    x = x m e a n ( x ) m a x ( x ) m i n ( x ) x^*=\frac{x-mean(x)}{max(x)-min(x)}
  3. Standarddization(z-score標準化)
    x = x x ˉ σ x^*=\frac{x-\bar {x}}{\sigma}
  4. max標準化
    x = x m a x ( x ) x^*=\frac{x}{max(x)}

三、sklearn實現特徵縮放

# -*- coding: utf-8 -*-
""" Created on Fri Nov 15 16:31:37 2019 @author: 1 """

import pandas as pd
from sklearn import preprocessing 
 
#讀取葡萄酒數據集
data = pd.read_csv("D:\workspace\python\machine learning\data\wine_data.csv",sep=',',header=None,skiprows=1)
x =data.iloc[:,1]
#獲取數據的基本狀況
print('獲取數據的基本狀況:',x.describe())
#咱們不知道z的shape屬性是多少,可是想讓z變成只有一列,行數不知道多少,z.reshape(-1,1)
X_train=x.values.reshape(-1,1)

#min-max標準化
MinMax = preprocessing.MinMaxScaler()
X_MinMax = MinMax.fit_transform(X_train)
print('min-max標準化歸一化後結果:',X_MinMax)

#z-score標準化
X_scaled = preprocessing.scale(X_train)
print("z-score標準化結果:",X_scaled)

#max標準化
X_max_scaler = preprocessing.MaxAbsScaler(X_train)
print("max標準化結果:",X_max_scaler)
相關文章
相關標籤/搜索