본문 바로가기

Python/MachineLearning17

Time Series Data forecasting Prophet install : pip install prophet 페이스북(현 메타)에서 만든 라이브러리 주로 일별, 월별, 연별 등 시간과 관련하여 예측 하는것으로 많이 쓰인다 from prophet import Prophet avocado_prophet_df = df[['Date', 'AveragePrice']] avocado_prophet_df avocado_prophet_df.columns=['ds','y'] avocado_prophet_df ds 컬럼은 일반적으로 날짜나 시간 정보(date 또는 timestamp)를 의미하고 y 컬럼은 종속 변수(target 또는 label)를 나타내는 경우가 많다 그 이전에 프로펫(Prophet) 라이브러리와 같은 타임시리즈 예측 라이브러리에서 일반적으로 사용되는 명명 규.. 2024. 4. 19.
Hierarchical Clustering - 개념 하이어라키컬 클러스터링은 기본적으로 K-means와 유사하다 이러한 데이터가 있을때 한 그룹 한그룹씩 묶어 나가면서 마지막에 하나의 그룹이 될때까지 그룹화를 한다 클러스터로 묶는 기준은 어떤 점에 중점을 두느냐에 따라 다르다 Dendrogram 그래서 이 방법을 덴드로그램으로 표현하는데 위 그림처럼 한 그룹이 지어질때마다 그 거리를 y축으로 표현하여 묶어주다가 한 그룹으로 묶어진 뒤에 사람이 멀어지는 거리를 보고 몇개의 그룹으로 나눌것인지 판단하는 시스템이다 아래에있는 묶음들은 거리가 가까워서 짧지만 마지막에 묶이는 2그룹은 거리가 멀기때문에 길게 나타난다 보통 그 곳을 잘라 두 그룹으로 나타낼 수 있겠다 import scipy.cluster.hierarchy as sch sch.dendrogram( s.. 2024. 4. 16.
K-Means Clustering - 개념 + WCSS supervised는 y가 있었지만 unsupervised는 y가 없다 Clustering은 그룹화가 목적에 있다  왼쪽같은 데이터들이 있을때 K-Means를 통해3개의 그룹으로 나눌 수 있다 그리고 새로운 데이터가 들어왔을때근접한 곳의 데이터로 들어가는것도 당연히 가능하겠다  그렇다면 어떻게 그룹이 나누어질까  우선 K-Means의 뜻부터 알고 가자K는 상수 라는 뜻을 가지며 몇개의 그룹으로 나눌지에 대한 숫자이다Means는 알다싶이 평균을 구하는것이고 그렇다면 몇개의 그룹으로 나누고 싶은지 입력하여그룹마다의 평균을 구하여 각각의 그룹이 만들어지는것인데 그림을 보며 알아보자        좌측의 그림처럼 데이터가 있을때 K에 2라는 숫자를 입력했을때 우측 그림처럼 랜덤한 위치에 두개의 점이 찍히며    .. 2024. 4. 15.
Decision Tree 의사결정 트리 - 개념 데이터가 이렇게 존재 한다고 할때 빨강과 초록을 지정하려고 하려면 어떻게 해야할까    세로축인 X2가 60보다작은지 큰지 로 쪼갠뒤 크다면 가로축인 X1이 50보다 작은지 큰지 로 쪼개 작다면 초록색으로 좌측상단의 초록색 그룹을 지정하고    다음은 X2가 60보다 작은 선택지에서의X1이 70보다 큰지 작은지로 쪼갠뒤 큰쪽에서  X2가 큰지 작은지로 다시 쪼갠뒤X2가 큰쪽을 초록색으로 그룹지어준다  이런식으로 예 아니오 라는 질문을 통해 나무가지처럼 뻗어 나가는 형식을 통해 각각의 답을 찾아나아가는 방식이 의사결정 트리 이다  고로, 여러 가지 질문의 여러가지 yes,no 같은 답을 찾을수 있는 방법이다      역시 다른 방법들과 마찬가지로 데이터 전 처리 부분은 동일하며 사이킷런의 .tree 모듈을.. 2024. 4. 15.
Support Vector Machine - 개념 어떤 선을 기준으로 나눠야 할까      가장 근접하고 있는 데이터를 기준으로 같은 길이를 갖는 직교 하는 선으로 하자  그렇다면 서포트 벡터 머신은 다른 알고리즘과 비교해서 어떤 점이 특별할까     사과와 오렌지를 감별하는 알고리즘이라고 할 때일반적인, 정상적인 사과와 오렌지 같은 경우경계하는 선에서 멀리에 있을것이다 즉, 이게 사과인가? 이게 오렌지인가? 싶은 애매하게 생긴 것들이클래시파이어 근처에 있게 되며 이를 판단하는데에 SVM이 최고라고 판단된다 from sklearn.svm import SVC SVM을 사용하기 위해 sklearn의svm 모듈을 사용하여SVC를 임포트한다SVC는 클래시파이어고SVR은 리그레션이다  이후는 다른 것과 비슷하다  classfier = SVC()classfier... 2024. 4. 15.
K - Nearest Neighbor - 개념 좌측의 그림처럼 그룹된 데이터들이 존재할때우측의 그림처럼 새로운 데이터가 저 위치에 나타났을때 어떤 그룹으로 가는게 맞을까 일단 KNN이 무슨 뜻인가 K 는 상수 즉 몇개인지 숫자를 의미한다Nearest Neighbors 는 가장 가까이 이웃한것을 의미한다  그러므로 가장 가까이에 이웃한 그룹이 어느쪽에 있는지가 관건이다    K 라는 상수를 5라고 지정하면 가장 가까이에 근접한 5개의 데이터를 찾아더 많이 가까운 데이터쪽으로 합쳐지는것을 뜻한다물론 짝수라면 2:2, 3:3, 4:4등 결과가 안나올수 있으니 무조건 홀수로 한다     from sklearn.neighbors import KNeighborsClassifierclassifier = KNeighborsClassifier(n_neighbors .. 2024. 4. 15.