https://www.kaggle.com/code/dansbecker/how-models-work
How Models Work
Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources
www.kaggle.com
위의 글을 보고 참고하여 작성하였습니다.
머신러닝 모델의 작동 방식과 사용 방법에 대한 개요를 살펴보겠습니다.
다음과 같은 시나리오를 생각해 볼 수 있습니다.
당신의 사촌이 부동산 투기로 수백만 달러를 벌었고, 데이터 과학에 대한 당신의 관심을 알아본 후 비즈니스 파트너가 되자고 제안했습니다.
그는 자금을 제공하고 당신은 다양한 주택의 가치를 예측하는 모델을 만들기로 했습니다.
당신이 사촌에게 과거에 부동산 가격을 어떻게 예측했는지 물었을 때, 그는 단순히 직관에 의존한다고 했습니다.
그러나 더 많은 질문을 통해 그는 과거에 본 주택 가격 패턴을 식별하고, 이를 기반으로 새로운 주택의 가치를 예측해 왔다는 것을 알게 되었습니다.
- 머신러닝도 이와 유사하게 작동합니다.
머신러닝 모델은 과거 데이터를 기반으로 학습하고, 이를 통해 새로운 데이터의 예측을 수행합니다.
의사결정나무 모델
의사결정나무는 이해하기 쉽고, 데이터 과학 분야에서 널리 사용되는 모델 중 하나입니다.
더 정확한 예측을 제공하는 복잡한 모델들도 있지만, 의사결정나무는 그 자체로 강력하며, 다른 고급 모델의 기본 구성 요소로 사용되기도 합니다.
의사결정나무는 데이터를 분할하여 의사결정을 내리는 구조로, 각 분기점에서 특정 조건에 따라 데이터를 나눕니다.
1. 주택의 면적은 100제곱미터 이상인가?
예 : 다음질문으로 이동
아니요 : 주택 가치가 낮음
2. 주택의 위치는 도심인가?
예 : 주택 가치가 높음
아니요 : 다음 질문으로 이동
3. 주택의 건설 연도는 2000년 이후인가요?
예 : 다음 질문으로 이동
아니요 : 주택 가치가 낮음
이와 같은 방식으로 의사결정나무는 데이터를 분할하고, 최종적으로 주택 가치를 예측하는 데 도움을 줍니다.
주택을 두 가지 범주로 나누고 각 범주의 평균 가격을 사용하여 예측하는 방법은 간단하지만 효과적인 접근법입니다.
데이터를 이용해 주택을 두 그룹으로 나누는 기준을 정하고, 각 그룹의 평균 가격을 계산한 후, 새로운 주택이 어느 그룹에 속하는지 판단하여 그 그룹의 평균 가격을 예측하는 방식입니다.
데이터를 통해 패턴을 찾아내고 이를 기반으로 모델을 구축하는 과정을 모델 피팅 또는 학습이라고 합니다.
이 과정에서 사용되는 데이터를 훈련 데이터라고 합니다.
1. 그룹 나누기 : 주택을 두 그룹으로 나눌 기준을 정합니다. 예를 들어, 주택의 면적을 기준으로 나눌 수 있습니다.
2. 평균 가격 계산 : 각 그룹의 평균 가격을 계산합니다.
3. 예측 : 새로운 주택의 특징을 기준으로 어느 그룹에 속하는지 판단하고, 그 그룹의 평균 가격을 예측합니다.
import pandas as pd
# 예제 데이터 준비
data = {
'면적': [120, 80, 95, 130, 60],
'가격': [500, 300, 400, 550, 250]
}
df = pd.DataFrame(data)
# 그룹 나누기 기준 설정 (예: 면적 100을 기준으로 나누기)
group_1 = df[df['면적'] >= 100]
group_2 = df[df['면적'] < 100]
# 각 그룹의 평균 가격 계산
mean_price_group_1 = group_1['가격'].mean()
mean_price_group_2 = group_2['가격'].mean()
# 새로운 주택의 예측 (예: 면적 105)
new_house_area = 105
if new_house_area >= 100:
predicted_price = mean_price_group_1
else:
predicted_price = mean_price_group_2
print("예측된 주택 가격:", predicted_price)
첫 번째 결정 트리(1st Decision Tree)는 침실 수를 기준으로 주택을 분류합니다.
침실 수가 많을수록 주택 가격이 높아지는 경향을 반영합니다.
반면에 침실 수 외의 다른 요소들은(예 : 욕실 수, 부지 크기, 위치 등)을 고려하지 않습니다.
단일 기준만으로 주택 가격을 예측하기 때문에 예측의 정확도가 떨어질 수 있습니다.
두 번째 결정 트리(2nd Decision Tree)는 더 많은 요소를 고려하기 때문에 예측의 정확도가 높을 가능성이 있습니다.
예를 들어, 침실 수와 부지 크기를 같이 고려할 수 있어서 예측의 정확도가 더 높아질 수 있습니다.
위 과정을 반복하여 트리의 리프(leaf)에 도달합니다.
리프는 더 이상 도달하지 않는 트리의 끝 지점으로, 해당 노드에 속한 데이터 포인트들의 평균값 혹은 다수결로 예측 값을 제공합니다.
의사결정 트리의 분할과 리프의 값은 훈련 데이터에 따라 결정됩니다.
예측 모델을 만들기 전에 충분한 양질의 데이터를 수집하고, 그 데이터를 통해 트리를 학습시키는 것이 중요합니다.
또한 트리가 너무 깊어지면 훈련 데이터에 과적합될 수 있습니다.
이를 방지하기 위해 트리의 최대 깊이를 제한하거나, 최소 데이터 양을 등을 설정해야 합니다.
'머신러닝(Machine leanring)' 카테고리의 다른 글
(6) 머신러닝(Machine learning)이란? - Random Forests [Hellfer] (0) | 2024.07.21 |
---|---|
(5) 머신러닝(Machine learning)이란? - Underfitting and Overfitting [Hellfer] (4) | 2024.07.20 |
(4) 머신러닝(Machine learning)이란? - Model Validation [Hellfer] (0) | 2024.07.19 |
(3) 머신러닝(Machine learning)이란? - Your First Machine Learning Model [Hellfer] (0) | 2024.07.18 |
(2) 머신러닝(Machine learning)이란? - Basic Data Exploration [Hellfer] (0) | 2024.07.17 |
원-핫 인코딩(One Hot Encoding)이란? - [Hellfer] (0) | 2024.07.05 |