왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • PYTHON
  • alibi-detection
  • unsupervised
  • alibidetect
  • OpenCV
  • UnboundLocalError
  • encoding='utf-8'
  • 영상처리역사
  • TensorFlow
  • get_long_description
  • labelme UnocodeDecodeError
  • imageprocessing
  • maskimage
  • 기상탐사
  • 딥러닝
  • 의료이미징
  • 비지도학습
  • 컴퓨터비전
  • labelme
  • 영상처리
  • matplotlib
  • 영상기술
  • numpy
  • ComputerVision
  • pytorch
  • yolov8
  • tune()
  • PIL
  • pip install labelme
  • ckpt_file

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

머신러닝 : Decision Tree
인공지능/머신러닝

머신러닝 : Decision Tree

2022. 12. 2. 17:29
728x90

계속하여 이것인지 저것인지 결정한다.

Decision Tree

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

csv 파일을 읽어옵니다.

X=df.iloc[:,[2,3]]
y=df['Purchased']
## X,y 분리

from sklearn.preprocessing import MinMaxScaler
scaler_X = MinMaxScaler()
X=scaler_X.fit_transform(X)
## 피처 스케일링 과정

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=1)
## traing / test 셋으로 분리

from sklearn.tree import DecisionTreeClassifier
classifier=DecisionTreeClassifier(random_state=1)
classifier.fit(X_train,y_train)
y_pred=classifier.predict(X_test)
## 모델링 과정

from sklearn.metrics import confusion_matrix,accuracy_score
cm=confusion_matrix(y_test,y_pred)
accuracy_score(y_test,y_pred)
## 검증 과정

 

from matplotlib.colors import ListedColormap
X_set, y_set = X_test, y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
                     np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.figure(figsize=[10,7])
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
             alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
    plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
                c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Classifier (Test set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()

Decision Tree의 성능을 개선한 모델 Random Forest

# Random Forest
from sklearn.ensemble import RandomForestClassifier
classifier2=RandomForestClassifier(n_estimators=100)
classifier2.fit(X_train,y_train)

## 검증 과정
y_pred2=classifier2.predict(X_test)
confusion_matrix(y_test,y_pred2)
accuracy_score(y_test,y_pred2)

 

Decision Tree 예제 풀이

# 나이가 35살이고, 연봉은 45000달러다. 이 사람은 물건을 살것인가 말것인가를 예측해보겠습니다.

new_data=np.array([35,45000]).reshape(1,2)
## np의 array함수를 이용해 배열을 만들어주고 이를 2차원 데이터로 reshape으로
## 1행 2열로 만들어주고 변수로 저장합니다.

new_data=scaler_X.transform(new_data)
## 위 작업에서 만든 scaler는 이제 fit이 필요 없기때문에 변환하라는 transform만 해주고
## 이를 다시 변수로 저장합니다.

classifier2.predict(new_data)
## 위에서 만든 예측하는 인공지능에 변수 new_data를 넣어줍니다.

예측 결과 0 즉 구매를 하지 않을 것이라고 예측

 

 

'인공지능 > 머신러닝' 카테고리의 다른 글

머신러닝 : Hierarchical Clustering과 Dendrogram  (0) 2022.12.05
머신러닝 : K-Means Clustering  (0) 2022.12.05
머신러닝 : BREAST CANCER CLASSIFICATION 예제풀이  (0) 2022.12.02
머신러닝 : Support Vector Machine SVM  (0) 2022.12.02
머신 러닝 : KNN알고리즘 (K-Nearest Neighbor)  (0) 2022.12.02
    '인공지능/머신러닝' 카테고리의 다른 글
    • 머신러닝 : Hierarchical Clustering과 Dendrogram
    • 머신러닝 : K-Means Clustering
    • 머신러닝 : BREAST CANCER CLASSIFICATION 예제풀이
    • 머신러닝 : Support Vector Machine SVM
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바