Machine Learning
Google Colab - 드라이브 연결하기(마운트)
Google Colab - Drive 마운트 구글코랩에서는 구글드라이브를 마운트해서 드라이브에 있는 파일들을 가져올 수 있다. 그 방법을 알아보자. 1. 박스친 부분을 클릭한다. 2. 그러면 자동으로 이런 셀이 생기는데 이 코드를 실행한다. 3. 구글드라이브에 연결을 선택하고 구글 로그인을 한다. 4. 허용하면 마운트 완료 5. 드라이브 폴더가 생겼다. 구글드라이브에 있는 파일들을 확인할 수 있다. 파이썬에서 디렉토리 경로 이동하는 방법 import os os.chdir('/content/drive/MyDrive/Colab Notebooks/ml_plus/data') pd.read_csv('Churn_Modelling.csv')
Back propagation(오차 역전파)
Back propagation 출력층에서 제시한 값이 실제 원하는 값에 가까워지도록 학습하기 위해 사용하는 기법 동일 입력층에 대해 원하는 값이 출력되도록 개개의 가중치를 조정하는 방법으로 사용 출력층에서 입력층까지 오차를 전달하여 가중치를 수정해나가는 알고리즘 오차를 구하여 오차가 최소가 될 때까지 가중치의 값을 변경 오차 : 데이터에 존재하는 목표 값 - 심층 신경망이 계산한 값
Gradient Descent(경사하강법), Optimizer 종류
인공신경망에서 학습을 통해 가중치 W의 값을 구하는 것이 목표다. 오차를 구한다 - 학습 계산을 위해, 가중치 초기값은 랜덤 설정한다. 오차가 최소가 된다는 의미는? - 정확도가 높다, 학습이 잘 되었다, 예측이나 분류가 잘 된다. 오차가 최소가 될 때 까지 가중치 값을 구한다. - 입력 데이터를 계속 넣어서 가중치를 업데이트 해 나간다. 경사하강법 함수의 기울기를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를때까지 반복 오차/손실 함수(error/loss function)를 이용하여 기울기의 크기를 줄임 학습률(Learning rate) 아래 그림에서 보다시피 학습률이 너무 낮으면 학습이 오래 걸리고 학습률이 너무 높으면 이상한 방향으로 튀어 나가 최소값을 못 찾는다. 다양한 옵티마이저
인공신경망(ANN) 기초
1. 인공 신경망 (Artificial Neural Network, ANN) 생물학의 신경망(동물의 중추신경계 중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜 문제 해결 능력을 가지는 모델 2. 인공 신경망의 활성 함수 (Activation Function) 인공 신경망에서 입력을 변환하는 함수 대표적으로 ReLU, 시그모이드 함수 등 3. ANN Layers 인풋 > 결과 > 인풋 > 결과 ... 를 통해, 최종 출력까지 간다. (forward propagation) 각 노드 연결을 나타내는 숫자(가중치 w) 값을 구하는 것이 핵심 여러 개의 은닉층으로 이 층이 깊어진 것이 심층신경망(Deep Neu..
머신러닝 - Linear Regression 으로 수치 예측
linear regression 을 이용해 수치예측하는 방법을 알아보겠다. import pandas as pd import numpy as np import matplotlib.pyplot as plt df = pd.read_csv('../data/auto-mpg.csv') 컬럼정보 mpg : 연비 cyl : 실린더 갯수 displ : 배기량 hp : 마력 weight : 무게 accel : 60mph 까지 걸리는 시간 yr : 연식 origin : origin of car (1. American, 2. European, 3. Japanese) # 1. 데이터 파악 df.head() df.info() df.describe() # 2. nan 확인 df.isna().sum() name 컬럼을 제외한 나머지..
데이터 전처리 - 결측값 처리, 피처 스케일링, train_test_split
NaN 처리 import pandas as pd # 결측값 확인 df.isna().sum() >>> Country 0 Age 1 Salary 1 Purchased 0 dtype: int64 # 1. 삭제 전략 df.dropna() # 2. 채우는 전략 df.fillna(df.mean(numeric_only=True)) Feature Scaling 하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할 때 편중된다. 따라서 값의 범위를 맞춰줘야 정확히 트레이닝 된다. 주로 표준화와 정규화를 사용한다. from sklearn.preprocessing import StandardScaler, MinMaxScaler 1. 표준화(Standardization) 값의 범위를 평균이 0, 분..
데이터 전처리 - Categorical Encoding
카테고리컬 인코딩 컴퓨터는 문자를 인식하지 못하기 때문에, 컴퓨터가 이해할 수 있도록 카테고리컬 데이터를 숫자로 바꿔주는 작업. 카테고리컬 인코딩에는 크게 2가지가 있다. Label Encoding : 0부터 넘버링, 카테고리컬 데이터가 3개 이상일 경우 학습 성능이 떨어진다. One-Hot Encoding : 카테고리컬 데이터를 0과 1의 숫자로 변환, 3개 이상의 카테고리컬 데이터일 경우 사용한다. 1. 레이블 인코딩(Label Encoding) import pandas as pd from sklearn.preprocessing import LabelEncoder encoder = LabelEncoder() X['Country'] = encoder.fit_transform( X['Country'] )..