| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SQL
- pandas
- INSERT
- 등차수열
- Machine Learning
- MacOS
- barh
- 기계학습
- 통계학
- 파이썬
- 리스트
- 자료구조
- pandas 메소드
- numpy
- maplotlib
- matplotlib
- 스터디노트
- tree.fit
- Folium
- Slicing
- 재귀함수
- 문제풀이
- pandas filter
- 조합
- plt
- 머신러닝
- 순열
- DataFrame
- python
- 등비수열
Archives
- Today
- Total
코딩하는 타코야끼
[ML] 2-2강_머신러닝을 이용한 예측 본문
728x90
반응형
1. ML을 이용한 예측
📍 문제 정의
- 내가 발견한 Iris 꽃받침(Sepal)의 길이(length)와 폭(width)이 각각 5cm, 3.5cm이고 꽃의 꽃잎(Petal)의 길이와 폭은 각각 1.4cm, 0.25cm이 이었다. 이 꽃는 Iris의 무슨 종일까?

🌓 규칙기반으로 찾아보기
- 꽃받침(Sepal)의 길이(length): 5cm, 폭(width): 3.5cm
- 꽃잎(Petal) 의 길이(length): 1.4cm, 폭(width): 0.25cm
df[(df['sepal length (cm)'] == 5) & (df['sepal width (cm)'] == 3.5)] # 규칙기반 알고리즘

📍 머신러닝 적용
🌓 머신러닝으로 우리가 하려는 것
- 프로그래머가 직접 규칙(패턴)을 만드는 대신 컴퓨터가 데이터를 학습하여 규칙을 자동으로 만들도록 하는 것.

🌓 결정 트리(Decision Tree) 알고리즘을 이용한 분류
- 결정 트리 알고리즘 개요
- 독립 변수의 조건에 따라 종속 변수를 분리
- 결정 트리는 스무고개 느낌이다. // 제일 중요한 것 부터 질문 한다.
- 질문하고 나면 그 다음으로 중요한 질문을 한다. 그 이유는 최대한 알맞게 분류하기 위해서다.

📍 결정트리 모델을 이용해 머신러닝 구현
🌓 구현 순서
- import 모델
- 모델 생성
- 모델 학습시키기
- 예측
🌓 1. import 모델
from sklearn.tree import DecisionTreeClassifier
🌓 2. 모델생성
- DecisionTreeClassifier()
# 모델 객체 생성
tree = DecisionTreeClassifier(random_state = 0) # random_state = 0 : random value의 seed 값 설정.
🌓 3. 모델 학습 시키기
- tree.fit()
- 우리가 가진 데이터셋에 맞는 n을 찾는 작업.
- 학습을 통해서 찾아여 하는 n => Parameter 라고 한다.
- 입력데이터(Features): X, 출력데이터(Label) : y
- tree(iris.data, iris.target)
X = iris.data
Y = iris.target
tree.fit(X, Y)

🌓 4. 예측
- 내가 본 iris 꽃의 꽃잎/꽃받침의 길이, 너비를 재서 종류를 예측한다.
- 꽃받침(Sepal)의 길이(length): 5cm, 폭(width): 3.5cm 꽃잎(Petal) 의 길이(length): 1.4cm, 폭(width): 0.25cm
- 4-1. 우리가 추론 할 데이터셋 배열 구현
- np.array([ ])
- ( 2, 4 )는 ( 내가 추론할 데이터의 개수, 그 데이터 원소 개수 )를 의미한다.
import numpy as np
new_X = np.array([[5.0, 3.5, 1.4, 0.25],[3.2, 1.5, 6.4, 3.25]])
new_X.shape # 우리가 추론할 데이터셋. (데이터개수, 데이터 shape)
- 4-2. 추론을 추출
- tree.predict()
# 추론할 꽃의 정보(Feature들)을 넣어 모델의 predict()메소드를 호출, 추론 결과 클래스를 반환
pred_X = tree.predict(new_X)
print(pred_X) # label의 class가 반환
print(iris.target_names[pred_X]) # class 이름이 뭔지 찾는 과정
>>>
[0 2]
['setosa' 'virginica']
- 4-3. 확률을 추출
- tree.predict_proba() : 모델이 추론한 class 별 확률을 반환.
- [1. 0. 0.] => class 0일 확률: 1.0(100%) // class 1일 확률: 0.0 // class 2일 확률: 0.0
proba_X = tree.predict_proba(new_X)
print(proba_X)
>>>
[[1. 0. 0.]
[0. 0. 1.]]
반응형
'[T.I.L] : Today I Learned > Machine Learning' 카테고리의 다른 글
| [ML] 2-3강_모델 추론 (0) | 2023.05.28 |
|---|---|
| [ML] 2-1강_머신러닝 분석 - Iris 분석 (0) | 2023.05.28 |
| [ML] 1강_머신러닝 개요 (0) | 2023.05.28 |