반응형
이번에는 공공데이터의 대기오염정보 API를 통해 데이터를 가져오고 이를 통해 머신러닝을 통해 데이터를 분석해 보겠습니다.
공공데이터의 "한국환경공단_에어코리아_대기오염정보"를 통해 API를 연결한 후 데이터를 수집합니다.
url ="http://apis.data.go.kr/B552584/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty"
service_key = "KEYIN SERVICEKEY"
base_date = ["종로구"]
for i in range(len(base_date)):
break;
payload = "?serviceKey=" + service_key + "&"+"returnType=xml&numOfRows=100000&pageNo=1&dataTerm=3MONTH&&ver=1.0&stationName=" + base_date[i]
res = requests.get(url + payload).text
xmlobj = bs4.BeautifulSoup(res, 'lxml-xml')
rows = xmlobj.findAll('item')
print(rows)
# exit()
rowList = []
nameList = []
columnList = []
rowsLen = len(rows)
for i in range(0, rowsLen):
columns = rows[i].find_all()
columnsLen = len(columns)
for j in range(0, columnsLen):
if i == 0:
nameList.append(columns[j].name)
eachColumn = columns[j].text
columnList.append(eachColumn)
rowList.append(columnList)
columnList = []
df = pd.DataFrame(rowList, columns=nameList)
df.to_csv("review_aircondition_joongu.csv", encoding='utf-8-sig')
df.to_csv("review_aircondition_jonro.csv", encoding='utf-8-sig')
이후 수집된 데이터의 정보를 머신러닝에서 이용하기 위해 전처리 작업을 수행합니다. 전처리 작업은 많은 부분 차지하기 때문에 이 섹션에서는 제외합니다. 본인이 분석하려는 내용으로 전처리 진행합니다.
랜덤포레스트를 실행 후 feature Importance를 이용하여 데이터 중요도를 체크합니다.
df = pd.concat([df_joongu, df_jonro])
df = transform_feature(df)
y_air_df = 설정
X_air_df = 설정
X_train, X_test, y_train, y_test = train_test_split(X_air_df, y_air_df, test_size=0.2, random_state=11)
rf_clf = RandomForestClassifier(n_estimators=100, random_state=0, n_jobs=-1)
pred = rf_clf.fit(X_train, y_train).predict(X_test)
print(accuracy_score(y_test, pred))
ftr_importances_values = rf_clf.feature_importances_
ftr_importances = pd.Series(ftr_importances_values)
col_names = df.drop(columns=['pm10Value']).columns
fi_df = pd.DataFrame(ftr_importances_values, index=col_names, columns=["Importance"])
print(fi_df.sort_values("Importance", ascending=False))
반응형
'Lecture ML' 카테고리의 다른 글
머신러닝 강좌 #20] LightGBM에 대한 이해 (0) | 2021.06.14 |
---|---|
머신러닝 강좌 #19] XGBoost (eXtra Boost Machine), Scikit Wrapper Class (0) | 2021.06.11 |
머신러닝 강좌 #18] XGBoost (eXtra Boost Machine) (0) | 2021.06.11 |
머신러닝 강좌 #17] GBM(Gradient Boost Machine) (0) | 2021.06.06 |
머신러닝 강좌 #15] 랜덤 포레스트 (Random Forest) (2) | 2021.06.03 |
머신러닝 강좌 #14] 앙상블 학습(Ensemble Learning)과 보팅(Voting) (0) | 2021.06.02 |
머신러닝 강좌 #13] 결정 트리 실습 - 사용자 행동 인식 [Human Learning Repository] (0) | 2021.05.29 |
머신러닝 강좌 #12] 결정트리(DecisionTree)와 과적합에 대해 (0) | 2021.05.25 |