목록Home (103)
짜리몽땅 매거진

KNN 알고리즘과 K-means 클러스터링과 같은 머신러닝의 기초적인 모델들은 모두 거리기반 측정을 바탕으로 시작한다. KNN 알고리즘의 경우 가까운 속성에 따라 분류한다고 했는데 '가깝다'는 것에는 기준이 필요하다. 나중에 KNN 알고리즘에 대해 자세히 다루겠지만, KNN 알고리즘은 거리기반 분류분석 모델로 거리를 기반으로 분류하는 알고리즘이며 따라서 상대적으로 거리가 더 짧은 이웃이 더 가까운 이웃으로 취급된다. 즉, KNN 알고리즘은 어떤 새로운 데이터로부터 거리가 가까운 K개의 다른 데이터의 레이블(속성)을 참고하여 K개의 데이터 중 가장 빈도 수가 높게 나온 데이터의 레이블로 분류하는 알고리즘이다. K-means 알고리즘에서 K는 묶을 군집의 개수를 의미하고 means는 평균을 의미한다. 단어 ..

Kmeans알고리즘은 머신러닝 비지도학습에 속하는 K-means 알고리즘은 쉽게 말해 데이터를 K개의 군집(Cluster)으로 묶는(Clusting) 알고리즘이다. 군집이란 쉽게 말해서 비슷한 특성을 지닌 데이터들을 모아놓은 그룹(Group)이다. 마찬가지로 군집화는 군집으로 묶는다는 의미로 해석할 수 있다. Kmeans알고리즘은 KNN알고리즘과 구분하는 것이 중요한데, 분류와 군집화의 차이점에 대해 간단히 살펴보자.분류분류는 지도학습 방법에 속하여 정답이 주어졌을 때 정답을 기반으로 데이터를 나누는 방법을 의미한다. 따라서 머신러닝에서 모델을 학습시킬 때 모델이 제대로 분류하는지를 평가하기 위해 정답을 제거하고 모델이 예측한 레이블과 실제 레이블을 비교하여 모델의 성능을 판단한다.군집화반면, 군집화는 ..

Feature Selection이란 모델링을 진행하기 전 전처리단에서 유의미한 변수들만 선택함으로써 모델의 성능을 개선하고 과적합 방지 등의 효과를 얻기 위해 사용하는 방법을 말한다. 여러 Feature Selection 기법들을 실습 코드와 함께 살펴보자. 1. Filter Method통계 기법을 사용하여 상관관계가 높은 변수나 성능이 높은 변수를 추출하는 방법 (1) VarianceThreshold분산이 낮은 데이터는 도움이 안된다고 판단하여 제거하는 방법으로 titanic 샘플 데이터를 활용해 실습을 진행했다.from sklearn.feature_selection import VarianceThreshold#피처 정리X=titanic.drop(['survived','alive','who','adul..

제주도의 등하교 버스 혼잡 문제를 개선하고자 정류장별 데이터를 활용해 혼잡한 정류장 예측 모델링을 진행하고 혼잡 지표가 가장 높은 정류장을 선별해 새로운 등하교 버스 노선을 추천해보자.0. 데이터 수집 및 전처리 위와 같이 데이터를 수집했고, 종속변수는 정류장별 혼잡지표(=정류장별 인근 10대 거주인구수 / 정류장별 버스 개수)로 새로운 파생변수를 생성하였다. 1. 지역 특성 파악을 위한 군집 분석제주도 버스 정류장 지역의 특성을 파악하기 위하여, 군집화 분석을 진행하였다. 앞서 전처리한 데이터에서 정류장 아이디 기준 평균을 산출하였다. 그리고, 데이터를 정류장, 인구, 학교 세 가지 특성으로 나누어, K-means 알고리즘을 활용해 클러스터링을 3회 진행하였다. 1. ‘정류장’ 특성 군집화1) 스케일링..

'제주도 신재생 에너지 활용을 통한 전력 비용 절감 및 탄소 배출 감소 분석'을 주제로 날짜별 기상데이터, 태양광 발전량 데이터, 풍력 발전량 데이터, 제주 평균 전력 사용량 데이터 등을 수집해 시계열 분석을 진행하였다. 본격적인 분석에 들어가기 앞서 종속변수인 풍력 발전량과 태양열 발전량과 깊은 상관관계가 있는 독립변수만 선정하여 모델링할 최종 데이터셋에 포함하고자 했는데, 이때 상관분석을 진행하였다. 상관분석 방법은 여러가지가 있는데, 1. pandas를 사용한 상관분석pandas 라이브러리의 corr 메서드를 사용하면 데이터프레임의 상관계수를 쉽게 계산할 수 있다.df = pd.DataFrame(data)# 상관계수 계산correlation_matrix = df.corr()print(correla..

지난번 Feature Selection 기법 중 Model-agnostic Explanation Method이자 XAI(Explainable AI)에 해당하는 SHAP과 LIME에 대해 다룬 적 있었다. 오늘은 Catboost 모델을 활용해 금산인삼축제 성패를 예측한 LIME Value 데이터를 태블로 상에서 '생키 차트'로 시각화해보자. 생키 차트는 각 단계별 값의 변화를 한 눈에 표현하기 위한 목적으로 사용한다. 특히, 전체 값이 어떤 곳으로 흘러가는지 혹은 어떤 단계에서 얼마나 많은 값이 이동하는지도 한눈에 파악할 수 있는 효과적인 시각화이다. 태블로에서는 생키 차트를 표현하는 방법을 표현 방식으로 제공하고 있지 않기 때문에 이를 표현하기 위해서는 몇 가지 과정이 필요하다.0. 데이터 준비 및 연결..

금산인삼축제와 금산천벚꽃축제에 대한 전반적인 여론과 인식을 파악하고자 해당 축제명을 네이버에 검색했을 때 뜨는 뉴스기사 리스트를 크롤링한 후 크롤링한 기사의 제목을 네이버 CLOVA Sentiment API를 활용해 감성분석해보자. 먼저 네이버 뉴스기사를 크롤링해보자.1. 라이브러리 호출import pandas as pdimport numpy as npimport timeimport refrom bs4 import BeautifulSoupfrom datetime import datetimefrom tqdm import tqdmimport requestspath = "/Users/your name/Desktop/" 2. 검색 키워드 및 개수 설정# 필요한 키워드 입력search_content = input..

연도별 구인인원, 구직건수, 취업건수를 태블로에서 Radial Bar 차트로 시각화해보자. 0. 데이터 불러오기데이터를 태블로에 연결하고, 해당 시트를 다시 유니온으로 결합한다. 1. 계산된 필드 만들기(1) Path Order :원래 데이터는 0, 추가된 데이터는 1 로 합니다. 그리고 측정값에서 차원으로 변환한다.IIF([테이블 이름]="구인구직 동향", 0, 1) (2) Radial Field: [Trip Duration] 2. 매개변수 만들기(1) Radial Inner (2) Radial Outer3. 계산된 필드 (또) 만들기(1) Radial Angle(INDEX()-1)*(1/WINDOW_COUNT(COUNT([Radial Field])))*2*PI() (2) Radial Normalize..