일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 알고리즘
- 플러터앱개발
- BottomTabNavigation
- Flutter
- 딥러닝
- 화면이동
- OpenWeatherApi
- 하단탭바알림
- 플러터앱개발공부
- 앱개발
- 모두의딥러닝
- 데이터베이스의기본
- 플러터
- 면접을위한CS전공지식노트
- 날짜포맷팅
- Navigation
- RectQuery
- 선언형프로그래밍
- 앱개발공부
- react
- ReactNative
- date-fns
- Flutter공부
- Object~
- 웹해킹
- 명령형프로그래밍
- 정보보호
- 플러터공부
- tabBarBadge
- BottomTabBarNavigator
Archives
- Today
- Total
기록하기
선형회귀, 로지스틱회귀! 본문
3주차 과제! 선형회기, 로지스틱회귀 Tensorflow로 하는 방법 테크 블로그 작성하기
선형회귀란?
알려진 다른 관련 데이터 값을 사용하여 알 수 없는 데이터의 값을 예측하는 데이터 분석 기법
선형회귀 모델 실습
import numpy as np
import matplotlib.pyplot as plt
x = np.array([2, 4, 6, 8])
y = np.array([81, 93, 91, 97])
plt.sccatter(x, y)
plt.show()
a = 0
b = 0
lr = 0.03
epochs = 2001
n = len(x)
for i in range(epochs):
y_pred = a * x + b;
error = y - y_pred
a_diff = (2/n) * sum(-x * (error))
b_diff = (2/n) * sum(-(error))
a = a - lr * a_diff
b = b - lr * b_diff
if i % 100 == 0:
print("eoich=%.f, 기울기=%.04f, 절편=%.04f", %(i, a, b))
y_pred = a * x + b
plt.scatter(x, y)
plt.plot(x, y_pred, 'r')
plt.show()
코드 설명
공부 시간 X와 성적 y의 넘파이 배열 만들기
x = np.array([2, 4, 6, 8])
y = np.array([81, 93, 91, 97])
데이터의 분포를 그래프로 나타내고 기울기 a 값과 절편 b의 값을 초기화 하기
plt.sccatter(x, y)
plt.show()
a = 0
b = 0
학습률 정리하고 몇 번 반복될지 설정 후 x 값이 총 몇 개인지 세기
lr = 0.03
epochs = 2001
n = len(x)
경사 하강법 시작하기
for i in range(epochs): # 에포크 수만큼 반복하기
y_pred = a * x + b; # 예측 값을 구하는 식
error = y - y_pred # 실제 값과 비교한 오차를 errorafh 놓기
a_diff = (2/n) * sum(-x * (error)) # 오차 함수를 a로 편미분한 값
b_diff = (2/n) * sum(-(error)) # 오차 함수를 b로 편미분한 값
a = a - lr * a_diff # 학습률을 곱해 기존의 a값을 업데이트하기
b = b - lr * b_diff # 학습률을 곱해 기존의 b값을 업데이트하기
if i % 100 == 0: # 100번 반복될 때마다 현재의 a값, b값을 출력하기
print("eoich=%.f, 기울기=%.04f, 절편=%.04f", %(i, a, b))
최종 a 값을 기울기, b 값을 y 절편에 대입하여 그래프 그리고, 그래프 출력하기
y_pred = a * x + b
plt.scatter(x, y)
plt.plot(x, y_pred, 'r')
plt.show()
로지스틱회귀란?
이벤트가 발생할 확률을 결정하는 데 사용되는 통계 모델
로지스틱회귀 실습하기
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.model import Sequential
from tensorflow.keras.layers import Dense
x = np.array([2, 4, 6, 8, 10, 12, 14])
y = np.array([0, 0, 0, 1, 1, 1, 1])
model = Sequential()
model.add(Dense(1, input_dim=1, activation='sigmoid'))
# 교차 엔트로피 오차 함수를 이용하기 위해 'binary_crossentropy'로 설정하기
model.complie(optimizer='sgd', loss='binary_crossentropy')
model.fit(x, y, epochs=5000)
# 그래프로 확인하기
plt.scatter(x, y)
plt.plot(x, model.predict(x), 'r')
plt.show()
# 임의의 학습 시간을 집어 넣어 합격 예쌍 확률을 예측해보기
hour = 7
prediction = model.predict([hour])
print("%.f시간을 공부할 경우, 합격 예쌍 확률은 %.01f%%입니다." %(hour, prediction * 100))
'AI 수업' 카테고리의 다른 글
[모두의 딥러닝] 피마 인디언의 당뇨병 예측 실행 (0) | 2023.04.10 |
---|---|
[모두의 딥러닝] 히트맵 그리기 (0) | 2023.04.10 |
뉴런과 퍼셉트론의 차이 (0) | 2023.03.27 |
충격! 그 자체! 인공지능, 머신 러닝, 딥러닝, 텐서플로, 케라스, 실습해보기 (0) | 2023.03.15 |
참지 못한 내용, 충격! 누구나 반드시 봐야 할 AI 역사 & 취업 업계 동향 (0) | 2023.03.06 |