Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8주차 과제 제출] 2팀 김한결 #92

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions week1/3팀_김한결.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 나의 첫 머신러닝
## 인공지능과 머신러닝, 딥러닝
인공지능 : 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스탬을 만드는 기술
머신러닝 : 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야
딥러닝 : 머신러닝 알고리즘 중에 인공 신경망을 기반으로 한 방법들을 통칭
## 코랩과 주피터 노트북
코랩 : 구글 계정이 있으면 누구나 사용할 수 있는 웹 브라우저 기반의 파이썬 코드 실행 환경
노트북 : 코드, 코드 실행 겨로가, 문서 모두 저장 가능
구글 드라이브 : 구글이 제공하는 클라우드 파일 저장 서비스
텍스트 셀에는 마크다운 사용 가능
## 마켓과 머신러닝
특성 : 데이터를 표현하는 하나의 성질
훈련 : 머신러닝 알고리즘이 데이터에서 규칙을 찾는 과정
k-최근접 이웃 알고리즘 : 가장 간단한 머신러닝 알고리즘. 전체 데이터를 메모리에 가지고 있는다.
모델 : 알고리즘이 구현된 객체
정확도 : 정확히 맞힌 개수/전체 데이터 개수
1. matplotlib
- scatter() : 산점도 그리기
2. scikit-learn
- KNeighborsClassifier() : k-최근접 이웃 분류 모델을 만드는 사이킷런 클래스
- fit() : 사이킷런 모델 훈련
- predict() : 모델 훈련 및 예측
- score() : 훈련된 사이킷런 모델의 성능 측정
# 데이터 다루기
## 훈련 세트와 테스트 세트
지도 학습 : 입력과 타깃을 전달하여 모델을 훈련한 다음 새로운 데이터를 예측하는 데 활용
비지도 학습 : 타깃 데이터 X. 입력 데이터에서 어떤 특징을 찾는 데 주로 활용
1. numpy
- seed() : 난수를 생성하기 위한 정수 초깃값 지정
- arrange() : 일정한 간격의 정수 또는 실수 배열 만들기
- shuffle() : 주어진 배열 랜덤하게 섞기
## 데이터 전처리
데이터 전처리 : 머신러닝 모델에 훈련 데이터를 주입하기 전에 가공하는 단계
표준점수 : 훈련 세트의 스케일을 바꾸는 대표적인 방법 중 하나
브로드캐스팅 : 크기가 다른 넘파이 배열에서 자동으로 사칙 연산을 모든 행이나 열로 확장하여 수행하는 기능
1. scikit-learn
- train_test_split() : 훈련 데이터를 훈련 세트와 테스트 세트로 나눔
- kneighbors() : k-최근접 이웃 객체의 메서드
38 changes: 38 additions & 0 deletions week2/3팀_김한결.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# 회귀 알고리즘과 모델 규제

## k-최근접 이웃 회귀

회귀 : 임의의 수치를 예측하는 문제. 타깃값도 임의의 수치가 된다.
k-최근접 이웃 회귀 : k-최근접 이웃 알고리즘을 이용하여 회귀 문제를 해결. 가장 가까운 이웃 샘플을 찾고 이 샘플들의 타깃값을 평균하여 예측으로 삼음.
결정계수(R^2) : 대표적인 회귀 문제의 성능 측정 도구. 1에 가까울수록 좋고, 0에 가깝다면 성능이 나쁜 모델.
과대적합 : 모델의 훈련 세트 성능이 테스트 세트 성능보다 훨씬 높을 때
과소적합 : 훈련 세트와 테스트 세트 성능이 모두 동일하게 낮거나 테스트 세트 성능이 오히려 더 높을 때

1. scikit-learn

- KNeighborsRegressor : k-최근접 이웃 회귀 모델을 만드는 사이킷런 클래스. n_neighbors 매개변수로 이웃의 개수를 지정(기본값 5).
- mean_absolute_error() : 회귀 모델의 평균 절댓값 오차 계산. 첫 번째 매개변수는 타깃, 두 번째 매개변수는 예측값 전달. 타깃과 예측을 뺀 값을 제곱한 다음 전체 샘플에 대해 평균한 값을 반환

2. numpy

- reshape() : 배열의 크기를 바꾸는 메서드. 바꾸고자 하는 배열의 크기를 매개변수로 전달.

## 선형 회귀

선형 회귀 : 특성과 타깃 사이의 관계를 가장 잘 나타내는 선형 방정식 찾기

- 선형 회귀가 찾은 특성과 타깃 사이의 관계는 선형 방정식의 계수 또는 가중치에 저장
모델 파라미터 : 선형 회귀가 찾은 가중치처럼 머신러닝 모델이 특성에서 학습한 파라미터
다항 회귀 : 다항식을 사용하여 특성과 타깃 사이의 관계를 나타냄. 비선형일 수 있지만 여전히 선형 회귀로 표현할 수 있음

1. scikit-learn

- LinearRegression : 사이킷런의 선형 회귀 클래스. coef* 속성에서는 특성에 대한 계수 포함, intercept* 속성에는 절편이 저장.

## 특성 공학과 규제

다중 회귀 : 여러 개의 특성을 사용하는 회귀 모델
특성 공학 : 주어진 특성을 조합하여 새로운 특성을 만드는 일련의 작업 과정
릿지 : 규제가 있는 선형 회귀 모델 중 하나이며 선형 모델의 계수를 작게 만들어 과대적합을 완화
라쏘 : 릿지와 달리 계수 값을 아예 0으로 만들 수 있음
하이퍼파라미터 : 머신러닝 알고리즘이 학습하니 않는 파라미터
48 changes: 48 additions & 0 deletions week8/2팀_김한결.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# 09 텍스트를 위한 인공 신경망

## 09-1 순차 데이터와 순환 신경망

### 순차 데이터

1. **순차 데이터** : 텍스트나 시계열 데이터(일정한 시간 간격으로 기록된 데이터)와 같이 순서에 의미가 있는 데이터

- 이 장에서 사용하는 댓글, 즉 텍스트 데어터는 단어의 순서가 중요하므로 이전에 입력한 데이터를 기억하는 기능이 필요합니다.

1. **피드포워드 신경망** : 입력 데이터의 흐름이 앞으로만 전달되는 신경망

- 이전 장에서 배웠던 완전 연결 신경망과 합성곱 신경망이 모두 피드포워드 신경망에 속합니다.

### 순환 신경망

1. **순환 신경망** : 순차 데이터에 잘 맞는 인공 신경망의 한 종류이며 순차 데이터를 처리하기 위해 고안된 순환층을 1개 이상 사용한 신경망

- 타임스텝 : 샘플을 처리하는 한 단계
- 셀 : 순환 신경망에서 층을 부르는 방법
- 은닉 상태 : 셀의 출력
- 은닉층의 활성화 함수로는 tanh가 많이 사용됩니다.

## 09-2 순환 신경망으로 IMDB 리뷰 분류하기

### IMDB 리뷰 데이터셋

1. **IMDB 리뷰 데이터셋** : 유명한 인터넷 영화 데이터베이스인 imdb.com에서 수집한 리뷰를 감상평에 따라 긍정과 부정으로 분류해 놓은 데이터셋

1. **토큰** : 일반적으로 영어 문장은 모두 소문자로 바꾸고 구둣점을 삭제한 다음 공백을 기준으로 분리하여 매핑하는데 이렇게 분리된 단어

- 특정한 용도로 예약된 정수 : 0(패딩), 1(문장의 시작), 2(어휘 사전에 없는 토큰)

### 순환 신경망

1. **원-핫 인코딩** : 어떤 클래스에 해당하는 원소만 1이고 나머지는 무도 0인 벡터

### 단어 임베딩

1. **단어 임베딩** : 정수로 변환된 토큰을 비교적 작은 크기의 실수 밀집 벡터로 변환

## 09-3 LSTM과 GRU 셀

1. **LSTM** 타임스텝이 긴 데이터를 효과적으로 학습하기 위해 고안된 순환층(입력 게이트, 삭제 게이트, 출력 게이트 역할을 하는 작은 셀 포함)

- 은닉 상태 외에 셀 상태를 출력합니다. 셀 상태는 다음 층으로 전달되지 않으며 현재 셀에서만 순환됩니다.

1. **GRU** : LSTM 셀의 간소화 버전으로 생각할 수 있지만 LSTM 셀에 못지않는 성능을 가짐