반응형
츄르사려고 코딩하는 코집사입니다.
In [55]:
#라이브러리 불러오기
import pandas as pd
import os
import numpy as np
#폰트 깨짐 방지 라이브러리
from matplotlib import font_manager, rc
#Train, Test split
from sklearn.model_selection import train_test_split
#DecisionTree 라이브러리
from sklearn.tree import DecisionTreeClassifier
#랜덤포레스트 라이브러리
from sklearn.ensemble import RandomForestClassifier
#SVM 라이브러리
from sklearn.svm import SVC
#KNN 라이브러리
from sklearn.neighbors import KNeighborsClassifier
#AdaBoost 라이브러리
from sklearn.ensemble import AdaBoostClassifier
#시각화 라이브러리
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
In [56]:
#plot 한글 깨짐
plt.rc('font', family='Malgun Gothic')
#막대그래프 한글 깨짐
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
In [57]:
최종데이터 = pd.read_csv('C:/Users/User/Desktop/바탕화면/AI data/AI_철새도래지_최종데이터.csv', encoding='euc-kr')
In [58]:
#데이터프레임 더미화
최종데이터 = pd.get_dummies(최종데이터)
In [59]:
최종데이터
Out[59]:
In [60]:
최종데이터.columns
Out[60]:
In [61]:
#반응변수
최종데이터_Target = 최종데이터['발생여부']
#설명변수 -> stepwise로 변수 선별
최종데이터_Data = 최종데이터[['평균기온','평균풍속','축종_닭','평균상대습도','철새도래지거리']]
In [62]:
#Train, Test Split
#Train : Test = 0.8 : 0.2
X_train, X_test, Y_train, Y_test = train_test_split(최종데이터_Data, 최종데이터_Target, test_size = 0.2, random_state = 10, shuffle = True)
In [63]:
#실제값
실제값 = list(Y_test)
In [64]:
#Random Forest 모델링
RF = RandomForestClassifier()
RF.fit(X_train, Y_train)
print("Test Set Score : {:.2f}".format(RF.score(X_test, Y_test)))
RF_Prediction = RF.predict(X_test)
RF_Score = RF.score(X_test, Y_test)
In [65]:
#Random Forest 실제값/예측값 그래프
fig = plt.figure( figsize = (12, 4))
chart = fig.add_subplot(1,1,1)
chart.plot(실제값[:200], marker='o', color='blue', label='실제값')
chart.plot(RF_Prediction[:200], marker='^', color='red', label='예측값')
chart.set_title('Random Forest 예측 결과', size=30)
plt.xlabel('횟수', size=20)
plt.ylabel('발생여부', size=20)
plt.legend(loc = 'best')
Out[65]:
In [66]:
#SVM 모델링
SVM = SVC(kernel = 'rbf', C=8, gamma=0.1)
SVM.fit(X_train, Y_train)
print("Test Set Score : {:.2f}".format(SVM.score(X_test, Y_test)))
SVM_Prediction = SVM.predict(X_test)
SVM_Score = SVM.score(X_test, Y_test)
In [67]:
#SVM 실제값/예측값 그래프
fig = plt.figure( figsize = (12, 4))
chart = fig.add_subplot(1,1,1)
chart.plot(실제값[:200], marker='o', color='blue', label='실제값')
chart.plot(SVM_Prediction[:200], marker='^', color='red', label='예측값')
chart.set_title('SVM 예측 결과', size=30)
plt.xlabel('횟수', size=20)
plt.ylabel('발생여부', size=20)
plt.legend(loc = 'best')
Out[67]:
In [68]:
#KNN 모델링
KNN = KNeighborsClassifier(n_neighbors = 3)
KNN.fit(X_train, Y_train)
print("Test Set Score : {:.2f}".format(KNN.score(X_test, Y_test)))
KNN_Prediction = KNN.predict(X_test)
KNN_Score = KNN.score(X_test, Y_test)
In [69]:
#KNN 실제값/예측값 그래프
fig = plt.figure( figsize = (12, 4))
chart = fig.add_subplot(1,1,1)
chart.plot(실제값[:200], marker='o', color='blue', label='실제값')
chart.plot(KNN_Prediction[:200], marker='^', color='red', label='예측값')
chart.set_title('KNN 예측 결과', size=30)
plt.xlabel('횟수', size=20)
plt.ylabel('발생여부', size=20)
plt.legend(loc = 'best')
Out[69]:
In [70]:
#AdaBoost 모델링
AdaBoost = AdaBoostClassifier()
AdaBoost.fit(X_train, Y_train)
print("Test Set Score : {:.2f}".format(AdaBoost.score(X_test, Y_test)))
AdaBoost_Prediction = AdaBoost.predict(X_test)
AdaBoost_Score = AdaBoost.score(X_test, Y_test)
In [71]:
#AdaBoost 실제값/예측값 그래프
fig = plt.figure( figsize = (12, 4))
chart = fig.add_subplot(1,1,1)
chart.plot(실제값[:200], marker='o', color='blue', label='실제값')
chart.plot(AdaBoost_Prediction[:200], marker='^', color='red', label='예측값')
chart.set_title('AdaBoost 예측 결과', size=30)
plt.xlabel('횟수', size=20)
plt.ylabel('발생여부', size=20)
plt.legend(loc = 'best')
Out[71]:
In [72]:
#DecisionTree 모델링
DecisionTree = DecisionTreeClassifier(random_state=200)
DecisionTree.fit(X_train, Y_train)
print("Test Set Score : {:.2f}".format(DecisionTree.score(X_test, Y_test)))
DecisionTree_Prediction = DecisionTree.predict(X_test)
DecisionTree_Score = DecisionTree.score(X_test, Y_test)
In [73]:
fig = plt.figure( figsize = (12, 4))
chart = fig.add_subplot(1,1,1)
chart.plot(실제값[:200], marker='o', color='blue', label='실제값')
chart.plot(DecisionTree_Prediction[:200], marker='^', color='red', label='예측값')
chart.set_title('Decision Tree 예측 결과', size=30)
plt.xlabel('횟수', size=20)
plt.ylabel('발생여부', size=20)
plt.legend(loc = 'best')
Out[73]:
In [84]:
Model_Name = ['Random Forest','SVM','KNN','AdaBoost','Decision Tree']
Model_Score = [RF_Score, SVM_Score, KNN_Score, AdaBoost_Score, DecisionTree_Score]
plt.figure(figsize = (15,10))
plt.title("머신러닝 모델 정확도", size = 50)
plt.xlabel("모델 이름", size = 35)
plt.ylabel("정확도", size = 35)
plt.xticks(size = 20)
plt.yticks(size = 20)
sns.barplot(Model_Name, Model_Score)
#plt.bar(Model_Name, Model_Score) residuals.describe()
Out[84]:
In [ ]:
반응형
'빅데이터 분석 > AI 조류인플루엔자 예측' 카테고리의 다른 글
고병원성 조류인플루엔자 발생 데이터를 활용한 AI 발생 원인 분석 (0) | 2020.12.31 |
---|---|
빅데이터 분석 AI 조류 인플루엔자 데이터 분석 모델링 - (5) AdaBoost (0) | 2020.12.17 |
빅데이터 분석 AI 조류 인플루엔자 데이터 분석 모델링 - (4) KNN (0) | 2020.12.17 |
빅데이터 분석 AI 조류 인플루엔자 데이터 분석 모델링 - (3) SVM (0) | 2020.12.17 |
빅데이터 분석 AI 조류 인플루엔자 데이터 분석 모델링 - (2) Random Forest (0) | 2020.12.17 |
빅데이터 분석 AI 조류 인플루엔자 데이터 분석 모델링 - (1) Decision Tree (0) | 2020.12.16 |
빅데이터 분석 AI 조류 인플루엔자 데이터 EDA - (3) (0) | 2020.12.16 |
빅데이터 분석 AI 조류 인플루엔자 데이터 샘플링 - (2) (2) | 2020.12.14 |
최근댓글