codestates / codestates/ds-blog
[최근후] 회귀의 종류 (feat.머신러닝)
- Dominant language
- No language data
- Stars
- 2
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
# 머신러닝
사람이 경험을 쌓고 머리가 좋아질때 우리는 그것을 '학습' 이라고한다. 사람은 학습된 지능으로 일을 하는데요, 인간이 하는일을 기계가 하도록 하기위해 기계를 학습시키는것 , 그것이 머신러닝(기계학습)입니다. 무언가를 판단해야할때 너무 많은 기준과 규칙이 있다면, 인간은 학습하고 판단하기를 어려워하고 많은 시간을 필요로하지만, 기계는 그렇지 않다는것에 의미가 있습니다.
## 머신러닝의 종류
1. 지도학습 (Supervised Learning)
2. 비지도학습 (Unsupervised Learning) - 클러스터링을 사용한다는것 정도로만 알고있음..!
지도학습은 정답을 알려주며 학습시키는 것이고 비지도학습은 정답을 알려주지 않은채 학습시키는 것입니다!
### 지도학습은 크게 두가지로 분류됩니다
1. 회귀(Regression)
- 특징(X)들을 바탕으로 정답(y)을 유추해내는 것 (연속적인 값)
예를들어, A동네의 20평 2억, A동네의 30평 3억, B동네의 20평 4억, B동네의 30평 6억 이렇게 학습된 회귀모델은 A동네의 25평과 B동네의 25평 아파트의 값을 각각 약 2.5억과 5억 이라고 예측 할것입니다.
2. 분류(Classification)
- 특징(X)들을 바탕으로 정답(y -> a, b, c)로 유추해내는 것 (class)
예를들어, 어떤 사람에게 고양이사진과 강아지사진을 여러번 보여주고 나중에 새로운 강아지 사진을 보여준다면 그 사람은 강아지라고 대답 할 것입니다.
# 이번주에 배운 회귀를 알아보겠습니다
## 회귀의 종류
### 1. Simple Linear Regression
y(종속변수)와 X(독립변수 1개)의 관계를 예측합니다. 회귀식은 y = b0 + b1x1. 최소제곱합을 최소화시키는 쪽으로 회귀 계수를 구한다.

### 2. Multiple LinearRegression
y(종속변수)와 X(독립변수 2개이상)의 관계를 예측합니다. 회귀식은 y = b0 + b1x1 + b2x2 + b3x3 ...
다음사진은 2개의 독립변수와 종속변수의 관계 그래프입니다. (3차원을 넘어가면 시각화 불가능)

### 3. Ridge Regression
Simple / Multiple Linear Regression 에서 생길수있는 과적합문제를 코스트함수에 패널티텀(람다)을 주어 완화해 줄 수 있습니다.
Simple Linear (아웃라이어에 크게반응)

Ridge (패널티텀을 적용해 과적합문제를 조금 완화시킴)

### 4. Logistic Regression
Simple / Multiple Linear Regression 과는 다르게 y(종속변수)가 2개로 나뉠때 쓰입니다.

### 사이킷런을 사용해 회귀모델을 사용하는 법
1. Scikit-Learn 라이브러리에서 사용할 예측모델 클래스를 Import 합니다 (다른 모델도 가능)
```py
from sklearn.linear_model import LinearRegression
```
2. 예측모델 인스턴스를 만듭니다(instantiation) (다른 모델도 가능)
```py
model = LinearRegression()
```
3. X 특성들의 테이블과, y 타겟 벡터를 만듭니다
```py
features = ['피쳐1', '피쳐2', '피쳐3']
target = ['타겟']
X_train = train[features]
X_train = train[features]
y_train = test[target]
y_test = test[target]
```
4. 모델을 학습합니다(fit the model)
```py
model.fit(X_train, y_train)
```
5. 테스트 데이터를 모델을 통해 예측.
```py
y_pred = model.predict(X_test)
```
6. 평가 (여러 평가지표로)
```py
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test y_pred)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.