回帰(Regression)

6895 ワード

分類と回帰の違い


ぶんかつ

  • カテゴリの個数で区分する、そのうち1つの離散変数
  • を選択しなければならない.

    回帰

  • 連続変数
  • は、データをどのカテゴリに分類するかではなく、予測の特定の数値を学習するために使用される.

    AIは体格だけで体重を推定できますか?


    ニューラルネットワーク構造

  • 入力層の大きさは7<バスト、袖長、身長、ウエスト、脚高、頭囲、足長>
  • である.
  • の一般光源を介して体重値を0から1の間の数字に変換するためにsigmoid関数をアクティブ化関数として適用した.
  • 層数タイプサイズ活性化関数1層FNN 7無2層FN 256 RELU 3層FN 256 RELU 4層FN 256 RELU 5層FN 256 RELU 6層FNN 1 sigmoid

    深さ学習モデル符号化

    """
    Author : Byunghyun Ban
    
    from tensorflow import keras
    import data_reader
    
    # 몇 에포크 만큼 학습을 시킬 것인지 결정합니다.
    EPOCHS = 50  # 예제 기본값은 50입니다.
    
    # 데이터를 읽어옵니다.
    dr = data_reader.DataReader()
    
    # 인공신경망을 제작합니다.
    model = keras.Sequential([
        keras.layers.Dense(7),
        keras.layers.Dense(256, activation="relu"),
        keras.layers.Dense(256, activation="relu"),
        keras.layers.Dense(256, activation="relu"),
        keras.layers.Dense(256, activation="relu"),
        keras.layers.Dense(1, activation='sigmoid')
    ])
    
    # 인공신경망을 컴파일합니다.
    # 인공지능이 예측한 값을 실제 값을 뺀 수치를 오차(error)라고 한다.
    # mse는 mean squared error의 약자이며 mae는 오차의 절댓값들을 구해 평균을 구한 값이다.
    # mse는 인공지능이 예측한 대량의 결과물을 손쉽게 하나의 점수로 수량화할 수 있다는 장점이 있다.
    # 분류 문제에는 크로스 엔트로피를 회귀 문제에서는 mse를 대부분 사용한다.
    model.compile(optimizer="adam", loss="mse", metrics=['mae'])
    
    # 인공신경망을 학습시킵니다.
    print("\n\n************ TRAINING START ************ ")
    early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
    history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
                        validation_data=(dr.test_X, dr.test_Y),
                        callbacks=[early_stop])
    
    # 학습 결과를 그래프로 출력합니다.
    data_reader.draw_graph(model(dr.test_X), dr.test_Y, history)