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

[5주차 과제 제출] 2팀 장준오 #70

Open
wants to merge 5 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
26 changes: 26 additions & 0 deletions week1/1주차_장준오.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
**인공지능이란?**
사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템

>Ex1) 강인공지능 : 사람과 비슷한 인공지능

>Ex2) 약인공지능 : 사람의 일을 보조하는 인공지능

**인공지능의 학습**
>1. 머신러닝 : 자동으로 데이터에서 규칙 학습하는 알고리즘 연구 분야

>2. 딥러닝 : 머신러닝 알고리즘 중 심층신경망을 기반으로 한 방법

##데이터 시각화
1. 라이브러리 : matplotlib.pyplot을 사용.
2. 내장 함수 : scatter() 산점도를 그리는 함수, xtable() x축의 변수를 설정하는 함수, ytable() y축의 변수를 설정하는 함수, show() 그래프를 출력하는 함수.

##알고리즘
1. 라이브러리 : sklearn.neighobrs 중에서 KNeighborsClassifier를 사용.
2. 설명 : 근접한 데이터를 보고 다수를 차지하는 것을 정답으로 사용하는 머신러닝.
3. 사용법 : KNeighborsClassifier(n_neighobrs=a) 근접한 a개의 데이터를 바탕으로 판단함.

##머신러닝 구현하기
1. 데이터 : 지도 학습 기준, 훈련 데이터와 테스트 데이터가 필요하며 데이터에 샘플이 올바르게 섞여 있지 않을 경우 샘플링 편향이 발생할 수 있다. *데이터는 사이킷런의 train_test_split을 이용하여 비율에 맞게 훈련과 테스트 데이터로 나눌 수 있다.*
2. 사용 함수 : fit()을 이용하여 훈련 데이터를 학습 시키고 score를 통해 정확도를 출력하며 predict()를 이용해 테스트 데이터를 판별한다.(이진 분류의 경우)
3. 시각화 : 산점도를 보면 x와 y의 범위가 다름을 알 수 있다. 따라서 데이터 전처리를 통해 특성값을 일정하게 맞춰주어야한다.

28 changes: 28 additions & 0 deletions week2/2주차_장준오.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

## ▷ 알고리즘 회귀
* * *
### ▶ 회귀란?
> 두 변수 사이의 상관관계를 분석하는 방법을 말한다.
### ▶ k-최근접 이웃 회귀
> 예측하려는 샘플에 가장 가까운 샘플 k개를 선택한 뒤 샘플들의 클래스를 확인하여 다수의 클래스를 새로운 샘플의 클래스로 예측하는 회귀 알고리즘이다.
### ▶ 결정계수
> 분류의 경우 정확도로 성능을 나타내었지만 회귀는 값을 정확하게 맞출 수 없는 구조이기 때문에 결정 계수라는 것을 사용합니다.

> 결정계수는 R^2 = 1 - { (타깃 - 예측)^2의 합 / (타깃 - 평균)^2의 합 }으로 계산합니다. 즉, 1에 가까울수록 예측이 타겟에 가깝다고 해석할 수 있습니다.
### ▶ 과대적합과 과소적합
> 1. 과대적합 : 훈련 세트 점수는 매우 좋으나 테스트 세트의 점수가 매우 나쁜 경우를 말한다. 다르게 해석하면 훈련 세트에만 잘 맞게 학습되어 테스트 세트에서 모델이 원하는 대로 작동하지 못하게 된 것이다.

> 2. 과소적합: 훈련 세트보다 테스트 세트의 점수가 높거나 또는 훈련 세트, 테스트 세트 모두 점수가 낮게 나오는 경우를 말한다. 다르게 해석하면 모델이 단순하거나 훈련 세트가 너무 적어 훈련이 잘 이루어지지 않았다는 것이다.
* * *
### ▶ 선형 회귀
> 선형 회귀는 데이터들을 바탕으로 최적의 직선을 찾아 직선으로 예측하는 것을 말한다. 사이킷 런에서 선형 회귀를 하는 방법은 최소제곱법이다. 직선과 데이터들의 거리의 제곱의 합이 최소가 되는 직선을 최적의 직선으로 선택하는 방법이다.
### ▶ 다항 회귀
> 다항 회귀란 말 그대로 독립변수가 2개 이상인 선형 회귀를 말한다.
### ▶ 다중 회귀
> 다중 회귀는 특성이 2개 이상인 선형 회귀를 말한다.

> #### ※ 특성 공학이란?
>> 기존의 특성을 이용해 새로운 특성을 뽑아내는 작업을 말한다.

> #### ※ 규제란?
>> 모델이 훈련할 때 과대적합이 일어나지 않도록 하는 것이다. 선형 회귀 모델의 예로 가중치를 작게 만드는 일이다.
33 changes: 33 additions & 0 deletions week3/3주차_장준오.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

## ▷ 다양한 분류 알고리즘
* * *
### ▶ 로지스틱 회귀
> 이름은 회귀이지만 분류 모델입니다.
> ex) z = a × (Weight) + b × (Length) + c × (Diagonal) + d × (Height) + e × (Width) + f, a, b, c, d, e는 가중치이며 다중 회귀를 위한 선형 방정식과 동일합니다. 여기서 z의 값은 무관하나 확률이 되려면 0~1 또는 0~100%가 되어야합니다. 이를 도와주는 것이 시그모이드 함수입니다.
> #### ▶ 시그모이드 함수
> > 시그모이드 함수는 다음과 같이 계산합니다. φ = 1/ 1+ e^(−z) 이 함수는 z값이 양의 무한대에 가까울수록 1에, 음의 무한대에 가까울수록 0에 수렴하게 됩니다. 아쉽게도 이중분류만 가능한 시그모이드 함수 다중 분류는 어떻게 함수를 이용할까요?
> #### ▶ 소프트맥스 함수
> > 소프트맥스 함수는 여러 개의 선 형 방정식의 출력값을 0~1 사이로 압축하고 전체 합이 1이 되도록 만드는 함수를 말합니다.
### ▶ 확률적 경사 하강법
> 하나의 샘플을 훈련 세트에서 랜덤하게 골라 가장 가파른 길을 찾는 방법을 말합니다.
> #### ▶ 에포크
> > 훈련 세트를 한 번 모두 사용하는 과정을 말합니다.
> 다시 돌아가서 훈련 세트가 너무 많다면 에포크가 너무 커질 수 있습니다. 이럴 땐 하나의 샘플이 아닌 여러 개의 샘플을 이용하는 것이 좋습니다.
> #### ▶ 미니 배치 경사 하강법
> > 여러 개의 샘플을 이용하여 경사 하강법을 수행하는 방법입니다.
> #### ▶ 배치 경사 하강법
> > 모든 샘플을 이용하여 경사 하강법을 수행하는 방법입니다.
### ▶ 손실함수
> 어떤 문제에서 머신러닝 알고리즘이 얼마나 엉터리인지를 측정하는 기준입니다.
> #### ▶ 로지스틱 손실 함수
> > 양성 클래스(타깃 = 1)일 때 손실을 -log(예측 확률)로 계산하고 음성 클래스(타깃 = 0)일 때 손실은 -log(1-예측 확률)로 계산하는 함수입니다.
> > 다른 이름으로는 이진 크로스엔트로피 손실 함수라고도 합니다.
> > 이름 처럼 다중 분류에서는 크로스엔트로피 손실 함수를 사용할 수 있습니다.

> 결정계수는 R^2 = 1 - { (타깃 - 예측)^2의 합 / (타깃 - 평균)^2의 합 }으로 계산합니다. 즉, 1에 가까울수록 예측이 타겟에 가깝다고 해석할 수 있습니다.
### ▶ 에포크 과대적합과 과소적합
> 에포크 횟수가 너무 적으면 과소적합, 많으면 과대적합이 일어날 수 있습니다. 이런 일을 방지하고자 모델을 조기 종료합니다.
> #### ▶ 조기 종료
> > 훈련 세트 점수는 에포크가 진행될수록 꾸준히 증가하지만 테스트 세트 점수는 어느 순간 감소하기 시작합니다. 바로 이 지점 이 모델이 과대적합되기 시작하는 곳입니다. 따라서 이렇게 과대적합이 시작하기 전에 훈련을 멈추는 것을 말합니다.


32 changes: 32 additions & 0 deletions week5/5주차_장준오.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

## ▷ 비지도 학습
* * *
### ▶ 비지도 학습
> 타깃이 없을 때 주로 사용하는 머신러닝 알고리즘이다.
> #### ▶ 군집
> > 비슷한 샘플끼리 그룹으로 모으는 작업을 말한다.
> #### ▶ 클러스터
> > 군집 알고리즘에서 만든 그룹을 칭한다.
### ▶ k-평균 알고리즘
> 작동방식은 다음과 같습니다.
> > 1 무작위로 k개의 클러스터 중심을 정합니다.
> >
> > 2 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정합니다.
> >
> > 3 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경합니다.
> >
> > 4 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복합니다.
> #### ▶ 최적의 k 찾기
> > ##### ▶ 엘보우
> > > 적절한 클러스터 개수를 찾기 위한 대표적인 방법 중 하나이다.
> > ##### ▶ 이너셔
> > > 클러스터 중심과 클러스터에 속한 샘플 사이의 거리의 제곱 합을 말한다.
> > >
> > > 이너셔는 클러스터에 속한 샘플이 얼마나 가깝게 모여 있는지를 나타내는 값으로 생각할 수 있습니다.
> >
> > > 엘보우 방법은 클러스터 개수를 늘려가면서 이너셔의 변화를 관찰하여 최적의 클러스터 개수를 찾는 방법입니다. 클러스터 개수를 증가시키면서 이너셔를 그래프로 그리면 감소하는 속도가 꺾이는 지점이 있는데 이 지점부터는 클러스터 개수를 늘려도 크게 개선되지 않습니다. 즉 이너셔가 크게 줄어들지 않습니다. 이 지점이 마치 팔꿈치 모양이어서 엘보우 방법이라 부릅니다.
### ▶ 주성분 분석
> #### ▶ 차원
> > 데이터가 가진 속성을 특성이라 부르며 이런 특성을 차원이라고도 부릅니다.
>
> 주성분 분석은 대표적인 차원 축소 알고리즘으로 간단히 PCA라고도 합니다. 주성분 분석은 데이터에 있는 분산이 큰 방향을 찾는 것입니다. 그리고 이렇게 찾아준 방향을 벡터로 표시하며 이 벡터를 주성분이라고 부릅니다.