Keras에서 단일 회귀 분석 구현

1. 소개



(주의 저자는 이 분야를 쭉 전문화하고 있는 것은 아니기 때문에, 설명의 부족이나 잘못도 있을지도 모릅니다.)
이 기사는 단일 회귀 분석을 Keras에서 구현하는 해설을 혼란시킵니다. Jupyter Notebook을 GitHub에 게시하므로 환경만 있으면 바로 시도할 수 있습니다.
또, 단회귀 분석에 대해서는 Udemy의【키카가쿠류】인공지능·기계학습 탈블랙 박스 강좌-초급편-을 참고로 하고 있습니다. 자세한 해설을 보고 싶은 분은 수강을 추천합니다.
【키카가쿠류】인공지능·기계학습 탈블랙박스 강좌-초급편-
htps //w w. 우데 my. 코 m/코 r세/키카가쿠_bぁck보 x_1/ぇあ rn/ぇc 얽힘/8258758

노트북은 이쪽
SimpleRegressionAnalysis_2.ipynb를 실행합니다. 실행 환경 등은 노트북의 머리에 기재되어 있습니다.
htps : // 기주 b. 코 m / 모리이 tkys / Shimp

2. 단회귀 분석 잡해설



단회귀 분석의 설명으로 알기 쉽게 다음과 같이 정리하고 있습니다.
"1개의 목적 변수를 1개의 설명 변수로 예측하는 것으로, 그 2변량 사이의 관계성을 Y=aX+b라는 1차 방정식의 형태로 나타냅니다. a(기울기)와 b(Y절편)을 알면 , X(신장)에서 Y(체중)를 예측할 수 있다”
htps //w w. All rt2005. 이. jp / k w wd d / s 들 s cs _ 아나 ly s / mu l chi ゔ ri da _ a na ly s / s g

또, 이 페이지에서는 상세하게 설명하고 있습니다.
회귀 분석(단회귀 분석)을 알기 쉽게 철저 해설!
htps : // 우데 my. 베네세. 이. jp/아이/레g 레시온-아나 lys s. HTML

이번에 하는 것을 그림으로 하면 이하입니다.


3. 단회귀 분석 Keras



Keras라는 신경망용 라이브러리를 이용하여 단회귀 분석을 합니다. 파이썬으로 작성되었으며 Tensorflow 등에서 실행할 수 있습니다.
이번은 단회귀 분석이므로,
모델 만들기:
model=Sequential()
model.add()
(주의 활성화는 하지 않는다)
모델 초기화
model.init()
모델 학습 시작
model.fit()
모델 추측
model.prediction()
같은 흐름이됩니다. 코드는 이 부분입니다.

SimpleRegressionAnalysis.ipynb
# Build model
model = Sequential()
model.add(Dense(1, input_shape=(s, ), use_bias=False))
opt = keras.optimizers.Adam(lr=0.04, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0003)
model.compile(optimizer=opt,
      loss='mean_squared_error',
      metrics=['mae'])

# Start training
history = model.fit(x_normalized, y_normalized, epochs=50, batch_size=20, verbose=1)

다음과 같은 간단한 형태입니다.


따라서 model.summary()의 결과도 파라미터가 하나입니다.


만약 중회귀 분석이 되면 다음과 같은 느낌이 됩니다.


학습의 결과, 손실치는 이하와 같이 추이해, 곧바로 피팅한 것 같습니다.
가로축에는 에포크 수가 있습니다.


4. 실제로 Jupyter Notebook 실행



계산에서 모델링, 평가 함수를 설정하고 최소화하여 a를 구한 결과의 모델과 Keras에서 모델을 구한 결과는 다음과 같습니다.


녹색으로 플롯한 점은 주택가격 데이터세트의 RM의 98~108번째를 이번 작성한 단회귀 분석 모델에 입력하여 추측시킨 결과입니다. 직선의 모델이므로, 직선상에서 추측되고 있는 것을 알 수 있습니다. 덧붙여서 Keras를 사용할 때 데이터를 0에서 1의 범위로 하고 있습니다만, 보통으로 입력하면 학습할 수 없기 때문에, 주의(이 노트북의 방법으로는 학습할 수 없습니다). 따라서 a의 값도 겉보기는 식으로 계산했을 때와 크게 다릅니다만, 데이터에는 둘 다 마찬가지로 피팅하고 있는 것은 아닐까요.



초심을 잊지 않기 위해 pandas에서의 데이터 읽기를 for 루프로 다시 작성한 것을 SimpleRegressionAnalysis_3.ipynb에 올렸습니다. 기계 학습을 시작한지 ​​얼마 안되어 여기가 무엇하고 있는지 모르는 사람은 참고까지.

SimpleRegressionAnalysis_3.ipynb
with open('boston.csv') as f:
    reader = csv.reader(f)
    for row in reader:
        x_orig.append(row[6])
        y_orig.append(row[14])

이런 느낌입니다. 기사는 업데이트할 수 있습니다.

참고
htps // tp t b. rg/
htps // tp t b. rg/3.2.1/아피/_아s_겐/마 tpぉtぃb. pyp t. bpぉt. HTML
htps // 팬더 s. py였다. 오 rg / 팬더 s-도 cs / s 타 b ぇ / 레후 렌세 / f 라메. HTML
ぇtps://s しきぇあrん. 오 rg/s타 bぇ/
ぇtps://s しきぇあrん. 오 rg/s타 bぇ/모즈ぇs/게네라테 d/skぇ아 rn. 달래 ts. 아아 d_보s 톤. HTML#sk ぇ아 rn. 달래 ts. 오 d_ 보s 톤
h tps : // 세아보 rn. py였다. rg/
htps : // 케라 s. rs ぢ오. 이 m/아 r치 cぇs/개별 l_바시 c_레 g 뻬시오. HTML
htps //w w. 꺄gぇ. 이 m / xgd bit g data / 케라 s
htps : // 기주 b. 코 m / 카츠 히로 모리 / 마치 네 ぇ 아닌 g _ mp s
htps //w w. 우데 my. 코 m/코 r세/키카가쿠_bぁck보 x_1/ぇあ rn/ぇc 얽힘/8258758

좋은 웹페이지 즐겨찾기