기계 학습 노트 01 - 데이터 예비 처리

8544 단어 기계 학습
요약: 본 고 는 주로 기계 학습 의 기초 내용 인 데이터 예비 처 리 를 소개 한다.연구 알고리즘 을 배우 기 전에 우 리 는 데 이 터 를 처리 하 는 능력 이 필요 하 다.주요 지식 은 데이터 전처리 절차 소개, 간단 한 코드 인 스 턴 스, 출력 결과 전시, 상세 한 코드 주석 등 내용 을 포함한다.
목차
  • 1. 데이터 전처리 절차 소개
  • 2. 코드 인 스 턴 스
  • 2.1 데이터 파일
  • 2.2 전체 코드
  • 2.3 결과 전시
  • 3. 관련 주석
  • 4. 전문 총화
  • 1. 데이터 전처리 절차 소개
    필요 한 라 이브 러 리 가 져 오기 - > 데이터 세트 가 져 오기 - > 데이터 손실 처리 - > 분류 데이터 분석 - > 데이터 세트 분할 - > 특징 크기 조정
    2. 코드 인 스 턴 스
    2.1 데이터 파일
    여 기 는 Data. csv 파일 의 모든 내용 입 니 다.
    Country,Age,Salary,Purchased
    France,44,72000,No
    Spain,27,48000,Yes
    Germany,30,54000,No
    Spain,38,61000,No
    Germany,40,,Yes
    France,35,58000,Yes
    Spain,,52000,No
    France,48,79000,Yes
    Germany,50,83000,No
    France,37,67000,Yes
    

    2.2 전체 코드
    #   
    import numpy as np
    import pandas as pd
    
    from sklearn.impute import SimpleImputer
    from sklearn import preprocessing
    from sklearn.preprocessing import OneHotEncoder,StandardScaler
    from sklearn.model_selection import train_test_split
    
    #     
    def getData():
        dataset = pd.read_csv('Data.csv')
        X = dataset.iloc[:,:-1].values#      ,(       purchased)
        Y = dataset.iloc[:,3].values#    
        return X,Y
    
    #            
    def proMissingData(X):
        imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')
        imp_mean = imp_mean.fit(X[:,1:3])
        X[:,1:3] = imp_mean.transform(X[:,1:3])
    
    #                
    def parseData(X,Y):
        le_x = preprocessing.LabelEncoder()
        #  X    ,  3      ,        
        X[:,0] = le_x.fit_transform(X[:,0])
        oe = OneHotEncoder(categorical_features=[0])
        X = oe.fit_transform(X).toarray()
        #  Y      (NO:0;Yes:1)
        le_y = preprocessing.LabelEncoder()
        Y = le_y.fit_transform(Y)
        return X,Y
    
    #             
    def divide(X,Y):
        X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2,random_state = 0)
        return X_train,X_test,Y_train,Y_test
    
    #    
    def standardScale(X_train, X_test):
        sc_X = StandardScaler()
        X_train = sc_X.fit_transform(X_train)
        X_test = sc_X.transform(X_test)
        return X_train,X_test
    
    if __name__ == '__main__':
        X,Y = getData()
        print("1.     :")
        print("X")
        print(X)
        print("Y")
        print(Y)
        print("=============================================================================")
        proMissingData(X)
        print("2.       :")
        print("X")
        print(X)
        print("Y")
        print(Y)
        print("=============================================================================")
        X,Y = parseData(X, Y)
        print("3.         :")
        print("X")
        print(X)
        print("Y")
        print(Y)
        print("=============================================================================")
        X_train, X_test, Y_train, Y_test = divide(X,Y)
        print("4.              :")
        print("X_train=================================")
        print(X_train)
        print("X_test=================================")
        print(X_test)
        print("Y_train=================================")
        print(Y_train)
        print("Y_test=================================")
        print(Y_test)
        print("=============================================================================")
        X_train,X_test = standardScale(X_train, X_test)
        print("5.     :")
        print("X_train=====================================")
        print(X_train)
        print("X_test=====================================")
        print(X_test)
    

    2.3 결과 전시
    출력 결 과 는 다음 그림 과 같 습 니 다.
    1.     :
    X
    [['France' 44.0 72000.0]
     ['Spain' 27.0 48000.0]
     ['Germany' 30.0 54000.0]
     ['Spain' 38.0 61000.0]
     ['Germany' 40.0 nan]
     ['France' 35.0 58000.0]
     ['Spain' nan 52000.0]
     ['France' 48.0 79000.0]
     ['Germany' 50.0 83000.0]
     ['France' 37.0 67000.0]]
    Y
    ['No' 'Yes' 'No' 'No' 'Yes' 'Yes' 'No' 'Yes' 'No' 'Yes']
    =============================================================================
    2.       :
    X
    [['France' 44.0 72000.0]
     ['Spain' 27.0 48000.0]
     ['Germany' 30.0 54000.0]
     ['Spain' 38.0 61000.0]
     ['Germany' 40.0 63777.77777777778]
     ['France' 35.0 58000.0]
     ['Spain' 38.77777777777778 52000.0]
     ['France' 48.0 79000.0]
     ['Germany' 50.0 83000.0]
     ['France' 37.0 67000.0]]
    Y
    ['No' 'Yes' 'No' 'No' 'Yes' 'Yes' 'No' 'Yes' 'No' 'Yes']
    =============================================================================
    3.         :
    X
    [[1.00000000e+00 0.00000000e+00 0.00000000e+00 4.40000000e+01
      7.20000000e+04]
     [0.00000000e+00 0.00000000e+00 1.00000000e+00 2.70000000e+01
      4.80000000e+04]
     [0.00000000e+00 1.00000000e+00 0.00000000e+00 3.00000000e+01
      5.40000000e+04]
     [0.00000000e+00 0.00000000e+00 1.00000000e+00 3.80000000e+01
      6.10000000e+04]
     [0.00000000e+00 1.00000000e+00 0.00000000e+00 4.00000000e+01
      6.37777778e+04]
     [1.00000000e+00 0.00000000e+00 0.00000000e+00 3.50000000e+01
      5.80000000e+04]
     [0.00000000e+00 0.00000000e+00 1.00000000e+00 3.87777778e+01
      5.20000000e+04]
     [1.00000000e+00 0.00000000e+00 0.00000000e+00 4.80000000e+01
      7.90000000e+04]
     [0.00000000e+00 1.00000000e+00 0.00000000e+00 5.00000000e+01
      8.30000000e+04]
     [1.00000000e+00 0.00000000e+00 0.00000000e+00 3.70000000e+01
      6.70000000e+04]]
    Y
    [0 1 0 0 1 1 0 1 0 1]
    =============================================================================
    4.              :
    X_train=================================
    [[0.00000000e+00 1.00000000e+00 0.00000000e+00 4.00000000e+01
      6.37777778e+04]
     [1.00000000e+00 0.00000000e+00 0.00000000e+00 3.70000000e+01
      6.70000000e+04]
     [0.00000000e+00 0.00000000e+00 1.00000000e+00 2.70000000e+01
      4.80000000e+04]
     [0.00000000e+00 0.00000000e+00 1.00000000e+00 3.87777778e+01
      5.20000000e+04]
     [1.00000000e+00 0.00000000e+00 0.00000000e+00 4.80000000e+01
      7.90000000e+04]
     [0.00000000e+00 0.00000000e+00 1.00000000e+00 3.80000000e+01
      6.10000000e+04]
     [1.00000000e+00 0.00000000e+00 0.00000000e+00 4.40000000e+01
      7.20000000e+04]
     [1.00000000e+00 0.00000000e+00 0.00000000e+00 3.50000000e+01
      5.80000000e+04]]
    X_test=================================
    [[0.0e+00 1.0e+00 0.0e+00 3.0e+01 5.4e+04]
     [0.0e+00 1.0e+00 0.0e+00 5.0e+01 8.3e+04]]
    Y_train=================================
    [1 1 1 0 1 0 0 1]
    Y_test=================================
    [0 0]
    =============================================================================
    5.     :
    X_train=====================================
    [[-1.          2.64575131 -0.77459667  0.26306757  0.12381479]
     [ 1.         -0.37796447 -0.77459667 -0.25350148  0.46175632]
     [-1.         -0.37796447  1.29099445 -1.97539832 -1.53093341]
     [-1.         -0.37796447  1.29099445  0.05261351 -1.11141978]
     [ 1.         -0.37796447 -0.77459667  1.64058505  1.7202972 ]
     [-1.         -0.37796447  1.29099445 -0.0813118  -0.16751412]
     [ 1.         -0.37796447 -0.77459667  0.95182631  0.98614835]
     [ 1.         -0.37796447 -0.77459667 -0.59788085 -0.48214934]]
    X_test=====================================
    [[-1.          2.64575131 -0.77459667 -1.45882927 -0.90166297]
     [-1.          2.64575131 -0.77459667  1.98496442  2.13981082]]
    
    

    3. 관련 주석
    관련 지식 포인트 설명:
    """ 
               ,       。                 ,             。
           one-hot-encode    。
          :
    pandas.get_dummies():    ,    ,    ;
    sklearn.preprocessing.OneHotEncoder():        ,    。
    
    categorical_features           
          bool    
       OneHotEncoder(categorical_features = [0,2])     [True, False, True]
       0、2      
     ps:         ,  0、2      ,             “1”   
         
    """
    
    """
    Q1:                 ?
                   ,       。                 ,             。
               one-hot-encode    。
         X    ,  3      ,        
         Y      (NO:0;Yes:1)
        
    Q2:train_test_split        ?
            :
        train_data:          
        train_target:         
        test_size:    ,              
        random_state:       
        cross_validatio     
    """
    

    4. 전문 총화
    문장 은 비교적 간단 해서 주로 자신의 학습 과정 을 기록 하 는 데 쓰 인 다.코드 가 실 행 될 때 경고 가 있 을 수 있 지만 코드 의 운행 에 영향 을 주지 않 습 니 다.
    참고 자료: 위 챗 공식 번호: 기계 학습 알고리즘 과 python 실천
    이전 글 추천: 신경 망 - python 으로 이 또는 연산 을 실현 하여 신경 망 과 깊이 있 는 학습 노트 (1) 갓 입문 한 소 백 에 적합 합 니 다.

    좋은 웹페이지 즐겨찾기