1. 程式人生 > >Python----數據預處理

Python----數據預處理

fit das sin missing 隨機 stand plot 行數 逗號

  1. 導入標準庫
    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
  2. 導入數據集
    dataset = pd.read_csv(data (1).csv)  # read_csv:讀取csv文件
    #創建一個包含所有自變量的矩陣,及因變量的向量
    #iloc表示選取數據集的某行某列;逗號之前的表示行,之後的表示列;冒號表示選取全部,沒有冒號,則表示選取第幾列;values表示選取數據集裏的數據。
    X = dataset.iloc[:, :-1].values # 選取數據,不選取最後一列。
    y = dataset.iloc[:, 3].values # 選取數據,選取每行的第3列數據
  3. 缺失數據
    from sklearn.preprocessing import Imputer #進行數據挖掘及數據分析的標準庫,Imputer缺失數據的處理
    #Imputer中的參數:missing_values 缺失數據,定義怎樣辨認確實數據,默認值:nan ;strategy 策略,補缺值方式 : mean-平均值 , median-中值 , most_frequent-出現次數最多的數 ; axis =0取列 =1取行 
    imputer = Imputer(missing_values = 
    NaN, strategy = mean, axis = 0) imputer = imputer.fit(X[:, 1:3])#擬合fit X[:, 1:3] = imputer.transform(X[:, 1:3])
  4. 分類數據
    from sklearn.preprocessing import LabelEncoder,OneHotEncoder
    labelencoder_X=LabelEncoder()
    X[:,0]=labelencoder_X.fit_transform(X[:,0])
    onehotencoder=OneHotEncoder(categorical_features=[0])
    X
    =onehotencoder.fit_transform(X).toarray() #因為Purchased是因變量,Python裏面的函數可以將其識別為分類數據,所以只需要LabelEncoder轉換為分類數字 labelencoder_y=LabelEncoder() y=labelencoder_y.fit_transform(y)
  5. 將數據集分為訓練集和測試集
    from sklearn.model_selection import train_test_split
    X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)
    #X_train(訓練集的字變量),X_test(測試集的字變量),y_train(訓練集的因變量),y_test(訓練集的因變量)
    #訓練集所占的比重0.2~0.25,某些情況也可分配1/3的數據給訓練集;train_size訓練集所占的比重
    #random_state決定隨機數生成的方式,隨機的將數據分配給訓練集和測試集;random_state相同時會得到相同的訓練集和測試集
  6. 特征縮放
    #特征縮放(兩種方式:一:Standardisation(標準化);二:Normalisation(正常化))
    from sklearn.preprocessing import StandardScaler
    sc_X=StandardScaler()
    X_train=sc_X.fit_transform(X_train)#擬合,對X_train進行縮放
    X_test=sc_X.transform(X_test)#sc_X已經被擬合好了,所以對X_test進行縮放時,直接轉換X_test
  7. 數據預處理模板
    (1)導入標準庫
    (2)導入數據集
    (3)缺失和分類很少遇到
    (4)將數據集分割為訓練集和測試集
    (5)特征縮放,大部分情況下不需要,但是某些情況需要特征縮放

Python----數據預處理