피마 인디언 당뇨병 예측 데이터 - 피마 인디언을 대상으로 당뇨병 발병 여부를 예측 1. 환경 및 데이터 준비 - pandas와 seaborn 라이브러리가 설치되어 있지 않다면 '!pip install 라이브러리'로 먼저 설치 # 필요한 라이브러리 호출 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns read_csv() : csv 파일을 불러오는 함수 : pandas에 존재 # 피마 인디언 당뇨병 데이터셋을 불러옴 df = pd.read_csv('./data/pima-indians-diabetes3.csv') 2. 데이터 조사 - 판다스(pandas) 활용 판다스(pandas) : 넘파이의 기능을 포함하면서도 다양한 포맷..
- Comment.jsx import React from "react"; const styles = { wrapper: { margin: 8, padding: 8, display: "flex", flexDirection: "row", border: "1px solid grey", borderRadius: 16, }, imageContainer: {}, image: { width: 50, height: 50, borderRadius: 25, }, contentContainer: { marginLeft: 8, display: "flex", flexDirection: "column", justifyContent: "center", }, nameText: { color: "black", fontSize: 16,..
- Clock.jsx import React from "react"; function Clock(props) { return ( 안녕, 리액트! 현재 시간: {new Date().toLocaleTimeString()} ); } export default Clock; - index.js import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; import Clock from './chapter_04/Clock'; const root = ReactDOM.createRoot(d..
JSX - JavaScript + XML/HTML - XML/HTML 코드를 JavaScript로 변환하는 역할 React.createElement() : React Element 객체 생성 : JSX 코드를 createElement() 코드를 사용하도록 변환 React.createElement( type, [props], [...children] ) // JSX 사용 Hello, {name} // JSX 사용 안함 React.createElement('div', null, 'Hello, ${name}') JSX 장점 코드 간결성 가독성 향상 - 버그 발견 쉬움 Injection Attacks 방어 - 보안성 증가 JSX 사용법 - XML/HTML을 사용하다가 자바스크립트를 사용하고 싶으면 {중괄호} 이..
1. 환경 및 데이터 준비 # 텐서플로 라이브러리 안에 있는 케라스 API에서 필요한 함수들 호출 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # 데이터를 다루는 데 필요한 라이브러리 호출 import numpy as np # 준비된 수술 환자 데이터를 불러옴 Data_set = np.loadtxt("./data/ThoraricSurgery3.csv", delimiter=",") X = Data_set[:,0:16] # 환자의 진찰 기록을 X로 지정 y = Data_set[:,16] # 수술 1년 후 사망/생존 여부를 y로 지정 2. 구조 결정 - 딥러닝의 구조를 짜고 층 설정 model =..
기울기 소실(vanishing gradient) 문제 - 문제 : 은닉층이 늘어나면서 출력층에서 시작된 가중치 업데이트가 처음 층까지 전달되지 않음 - 원인 : 활성화 함수로 사용된 시그모이드 함수 미분 값의 최대치가 0.25이므로 계속 곱하다보면 0에 가까워진다는 것 - 해결책 : 활성화 함수로 시그모이드가 아닌 다른 함수 탐색 활성화 함수 - 딥러닝에서는 activation이라는 객체에 이름을 넣어 사용 하이퍼볼릭 탄젠트(hyperbolic tangent) : 시그모이드 함수의 범위를 -1에서 1로 확장 : but, 1보다 작은 값 존재하므로 여전히 기울기 소실 문제 존재 렐루(ReLU) : x가 0보다 작을 때는 모든 값을 0으로 처리하고, 0보다 큰 값은 x를 그대로 사용 : x가 0보다 크기만 ..
오차 역전파(back propagation) - 가중치와 바이어스를 조정하기 위해 사용하는 알고리즘 - 예측 출력과 실제 출력 사이의 오차를 계산한 다음, 이 오차를 계층별로 역방향으로 전파하여 가중치를 적절히 조정 ※ 경사 하강법은 단일 퍼셉트론에서만 가능 구동 방식 1. 임의의 초기 가중치를 준 뒤 결과 계산 2. 계산 결과와 우리가 원하는 값 사이의 오차 계산 3. 경사 하강법을 이용해 바로 앞 가중치를 오차가 작아지는 방향으로 업데이트 4. 1~3 과정을 더이상 오차가 줄어들지 않을 때까지 반복 '모두의 딥러닝 개정 3판'의 내용과 https://github.com/taehojo/deeplearning의 코드 참고