목록전체 글 (413)
오답노트

미니프로젝트 1차 에이블 스쿨이 시작하고 나서 첫 번째 미니프로젝트다. 총 4일로 진행되는데 개인적으로 주어진 과제를 먼저 해결하고 팀원들 끼리 모여 과제의 결과에 대해 토의하여 결과를 ppt 로 만들어 제출한다. 그리고 마지막에는 위 과정을 하루에 모두 한다. 에이블 스쿨에서 교육을 위해 클라우드 서비스를 만들었는데, 이번에 처음 서비스를 하느라, 수강생들이 동시에 접속하니 서버가 견뎌내지 못했다. GPU를 할당 받아서 쓸 수 있으면 좋겠다고 생각했는데, 많이 아쉬웠다. 더 개선해서 접근성이 용이하고 많은 트래픽에도 견뎌낼 수 있는 서비스로 제공 받을 수 있으면 좋겠다. 분반 분들과는 매일 팀즈에서 얼굴을 봤지만 대화를 할 수 있는 기회가 있어서 좋았다. 서로 소통도 하고 시시콜콜한 수다도 떨면서 과제..

데이터 분석 및 의미 찾기 Python 라이브러리를 강의하셨던 강사님께서 강의를 해주셨다. 계획하신대로 주기적으로 AI 트랙에서 강의를 하신다고, 강사님 자체적으로 정체성을 AI트랙의 담임선생님이라고 하셨는데, 아주 찰떡인 비유라고 생각했다. 비록 비대면이지만 학생들의 아주 수준 높은 질문부터 기초적인 질문까지 모두 대답해주신다. 데이터 분석은 pandas와 matplotlib를 적극적으로 활용하여 데이터를 시각화하거나 새로운 데이터프레임을 만들어 데이터를 분석하는데 더 용이하게 하고, 더 나아가 비즈니스 관점으로 데이터를 볼 수 있는 방법에 관한 내용이였다. 하지만 어떤 라이브러리던 그러겠지만 함수가 너무 많아서 원하는 기능을 사용하고 싶어도 그에 대한 함수가 잘 떠오르지 않는다. 역시 정답은 여러번 ..
전처리 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import scipy.stats as stats import statsmodels.api as sm from statsmodels.graphics.tsaplots import plot_acf, plot_pacf from sklearn.metrics import * # 검증 함수 def residual_diag(residuals, lags = 20) : print('* 정규성 검정(> 0.05) : ', round(stats.shapiro(residuals)[1],5)) print('* 정상성 검정(< 0.05) : ', round(..

전통적 시계열 모델링 y데이터의 이전 시점 데이터들로 부터 흐름의 패턴을 추출하여 예측한다. (feature는 사용하지 않음) AR (Auto Regressive) target을 자기자신으로 하고 이전 시점의 데이터를 feature로 갖는 모델이다. AR의 hyper parameter는 p로 얼마나 과거의 데이터를 볼 것인지 나타낸다. (차수) y가 정상(Stationary)데이터야 한다. MA (Moving Average) target을 자기자신으로 하고 해당 시점과 그 과거의 예측 오차들을 feature로 갖는 모델이다. MA의 hyper parameter는 q로 얼마나 과거의 데이터를 볼 것인지 나타낸다. (차수) y가 정상(Stationary)데이터야 한다. ARIMA AR 과 MA 모델을 결합하..
시계열 데이터 시간의 흐름에 따른 패턴 분석 흐름을 어떻게 정리할지에 따라 모델링 방식이 달라진다. 전통적인 시계열 데이터 분석 target 데이터만으로 예측하는 것을 의미한다. ML 기반 시계열 데이터 분석 전통적인 시계열 분석은 target 뿐만 아니라 feature 데이터도 사용하여 데이터의 특정 시점과 예측 대상 시점과의 관계로부터 패턴을 추출하여 예측 시점이므로 데이터는 1차원이다. DL 기반 시계열 분석 데이터의 특정 구간과 예측 대상 시점과의 관계로 부터 패턴을 추출하여 예측한다. 구간이므로 데이터는 2차원이다. 사전확인 오류 특정 시점에서 알 수 없는 데이터를 분석 단위로 묶어서 분석 및 예측하는 오류 feature들의 시점과 Target의 시점은 달라야한다. NaN 조치 이전 값 또는 이..

DBSCAN k-means 에서는 k 값을 알아야만 제대로 데이터들을 분리할 수 있었다. 하지만 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)은 k값을 몰라도 데이터를 분류해 낼 수 있다. DBSCAN 절차 (출처 : http://primo.ai/index.php?title=Density-Based_Spatial_Clustering_of_Applications_with_Noise_%28DBSCAN%29) 임의의 한 점으로 부터 시작 반경 범위내에 최소 포인트 수가 존재하는지 확인 존재한다면 포인트들을 중심으로 다시 원을 그려 최소 포인트 수 확인 2~3 반복 존재하지 않으면 군집에 포함되지 않은 점으로 이동하면 1~4 반복 어느 ..

웹 크롤링 강의는 전반적으로 만족스러웠다. 강사님께서는 웹크롤링뿐만 아니라 파이썬에 대한 팁들도 조금씩 주시고, 친절하긴 하지만 조금 사무적인 분으로 인식하고 있었는데, 잠깐씩 쿨다운으로 조금의 유머를 선보이곤 하셨다. 덕분에 좋은 환기가 되었고 수업에 집중도도 올라갔다고 생각한다. AI에 대해 관심을 막 가지기 시작했을 때는 어떻게 웹에 있는 자료들, 특히 이미지나 문구같은 것들을 학습시킬 수 있는지 의문이였다. Python에 다 라이브러리로 제공하고 있었고 조금의 웹 지식이 있으니 금방 이해가 됐다. 그러나 배운 것을 토대로 다른 웹페이지에 크롤링을 실습하려고 하니 뜻대로 잘 되진 않았다. 배울 때와 실습을 다르다는 걸 다시 한번 느끼는 때였다. 데이터 처리 강사님께서는 원격으로 수업을 진행하다보니 ..

k-means (출처 : https://stanford.edu/~cpiech/cs221/handouts/kmeans.html ) k-means는 데이터를 좌표평면에 위치시킨 후 임의의 위치에 k개 점을 찍는다. 그리고 각 데이터들은 k개의 점들중에 가장 가까운 점에게 군집된다. 그 후 k 개의 점은 군집된 데이터들의 중심 위치로 재위치 시킨다. 그리고 다시 데이터들이 k개의 점들중 가장 가까운 점에게 군집되는 과정을 중심 위치의 변화가 거의 없을 때까지 반복한다. 위 과정이 걸리는 시간은 매우 빠르지만 k는 모델링을 할 때 우리가 정해줘야한다. (비지도인데 지도를 해야한다니..) k 값 선정 방법 Inertia value를 통해서 k 값을 유추해 볼수있다. Inertia value는 군집화가 된 후, 각..
Gradient Boost Gradient Boost는 Boosting 기법에서 모델을 Dicision Tree를 사용하는 알고리즘이다. xgboost Gradient Boost를 모델링할 수 있는 라이브러리이다. 간단하게 불러오는 방법과 hyper parameter를 알아보자 from xgboost import XGBClassifier model = XGBClassifier(n_estimators = 5,max_depth=3,learning_rate = 0.3) pred = model.predict(x_val) print(classification_report(y_val, pred)) ''' precision recall f1-score support 0 0.71 0.72 0.72 769 1 0.70 ..

Boosting 부스팅은 여러 모델을 결합해서 오차를 줄이는 모델을 구성하는 방식이다. 모델의 개수에 따라 성능과 예측 결과가 달라진다. (출처 : https://towardsdatascience.com/boosting-algorithms-explained-d38f56ef3f30) 위 사진은 부스팅의 원리를 설명하고 있다. 우선 모델1은 train 데이터를 받아 학습한다. 그리고 실제값과 예측값의 차이를 모델2의 실제값으로 사용한다. 모델2는 train 데이터를 받아 학습하고, 모델1에서 나온 결과와 예측값의 차이를 모델3의 실제값으로 사용한다. 이 과정을 계속 반복하여 모델들의 예측값을 모두 더한 값을 최종 예측값으로 한다. 모델의 개수는 Hyper Parameter로 지정할 수 있고, 모델의 개수가 ..