機器學習-初級入門(數據預處理)

一、數據預處理
數據(Data.csv)

  Country   Age   Salary Purchased
   France  44.0  72000.0        No
    Spain  27.0  48000.0       Yes
  Germany  30.0  54000.0        No
    Spain  38.0  61000.0        No
  Germany  40.0      NaN       Yes
   France  35.0  58000.0       Yes
    Spain   NaN  52000.0        No
   France  48.0  79000.0       Yes
  Germany  50.0  83000.0        No
   France  37.0  67000.0       Yes
  1. 缺失數據處理

    dataset = pd.read_csv("Data.csv")
    X = dataset.iloc[:, :-1].values  # 自變量
    Y = dataset.iloc[:, 3].values  # 因變量
    
    # 處理缺失值, 將某列的平均值作爲彌補(strategy="mean": 取平均值彌補缺失值,axis=0: 對應數據列)
    imputer = Imputer(missing_values='NaN', strategy="mean", axis=0)
    imputer = imputer.fit(X[:, 1:3])  # 擬合所有行,1~3取不到第三列
    X[:, 1:3] = imputer.transform(X[:, 1:3])  # 轉化爲處理後的缺失值
    
  2. 分類數據

    對國家進行分類(虛擬編碼)
    France Spain Germany
     0      0      1         Germany   
     0      1      0         Spain
     1      0      0         France
    
    label_encoder_X = LabelEncoder()
    X[:, 0] = label_encoder_X.fit_transform(X[:, 0])
    one_hot_encoder = OneHotEncoder(categorical_features=[0])  # categorical_features: 對應列序號
    X = one_hot_encoder.fit_transform(X).toarray()
    # 同上對Purchased分類
    label_encoder_Y = LabelEncoder()
    Y = label_encoder_X.fit_transform(Y)
    
  3. 劃分數據集, 訓練數據集, 測試訓練集(比重一般不超過0.4)

    x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=0)
    
  4. 特徵縮放(利用歐式距離判斷,爲了讓多個自變量變化程度縮小)

    標準化(StandardDeviation: 標準方差)
    x(stand) = x-mean(x) / StandardDeviation(x)
    
    正常化
    x(norm) = x-min(x) / max(x)-min(x)
    
    sc_x = StandardScaler()
    x_train = sc_x.fit_transform(x_train)  # 對自變量進行特徵縮放(標準化)
    x_test = sc_x.transform(x_test)  # 上一步sc_X已經被擬合好了
    # 對因變量不需要縮放
    

二、總結

數據預處理步驟:導入標準庫->導入數據集->缺失數據處理(可能不需要)->分類數據(可能不需要)->將數據分成訓練集和測試集->特徵縮放(可能不需要)
發佈了153 篇原創文章 · 獲贊 13 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章