본문 바로가기

복습용 기술공부

230308 데이터 분석 연습, 클러스트 군집

경고 비표시 하는 방법

# 경고 (worning) 비표시
import warning
warnings.filterwarnins('ignore')

data 저장 할때 ,

카테고리 데이터는 새로 csv 파일 하나 만들어서 각 카테고리에 해당하는 값이 무엇인지 만들어두기

-> 이것을 merge로 합쳐주기

# 데이터 가공
_join = pd.merge(A, B, on='how_column', how='left') #merge 시 꼭 how 체크해보기

 

pd.to_datetime -> 시간 type 변환

df.dt.strftime('%Y %m ...     ') #시간을 잘라서 연 월 등으로 사용, 안의 Y, m 은 파이썬의 포매팅을 따름

df.dt.weekday  # 요일로 변경 6이 일요일 0이 월요일

df.where(조건, 조건아닐 때)

 

대푯값 설정시 무엇으로 할지 (mean, median, max, min ...) 잘 생각하기

 

groupby 연산 시 agg로 연산

A.groupby('column1').agg(['mean', 'median', 'max', 'min'])['column2'] #groupby 연산시 agg로 연산

 

시간을 계산해주는 함수 사용시

from dateutil.relativedelta import relativedelta # 시간을 계산해주는 함수 

relativedelta(시간이 있는 데이터1, 시간이 있는 데이터2)

>>relativedelta(years=+3, months=+11, days=+29)

이를 가져오려면

relativedelta(시간이 있는 데이터1, 시간이 있는 데이터2).years
relativedelta(시간이 있는 데이터1, 시간이 있는 데이터2).months
relativedelta(시간이 있는 데이터1, 시간이 있는 데이터2).days

>>+3, +11, +29

 

클러스터 군집을 이용해 그룹핑 작업 하는 방법

1. 데이터 정리 

fit_transform 할 data를 metrix로 df 형태로 정리하기 (ex, 평균, 중앙, 최대, count 등...)

2. sklearn.cluster 이용, 

-import 종류는 많지만 KMeans로 예를 들어보면

  1) 알고리즘 불러와서 fit해주기

from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler #cluster는 순서 안섞고 해야함!
sc = StandardScaler()
clustering_sc = sc.fit_transform(clustering)

  2) label 화

kmeans = KMeans(n_clusters=4, random_state=1) # 몇 개를 분석할지(n_clusters)를 정하는 parameter
clusters = kmeans.fit(clustering_sc)
clustering['cluster'] = clusters.labels_

※ 주의 : cluster는 순서가 섞이면 안됨

 

3.cluster 데이터 결과 분석

-> clustering.groupby('cluster').mean() 등 사용

 

4.분석 결과 시각화

-다차원에서는 시각화시 차원 축소를 해야함

 

차원 축소 방법

# 차원 축소란 비지도 학습 중의 하나, 정보를 되도록 잃지 않게 하면서 새로운 축을 만듬.
# 중요한 것은 순서를 흩으러트리지 않는 것!
from sklearn.decomposition import PCA
X = customer_clustering_sc
pca = PCA(n_components=2)
pca.fit(X)
x_pca = pca.transform(X)
pca_df = pd.DataFrame(x_pca)

 

matplotlib.pyplot 이용해 scatter 찍어보기

import matplotlib.pyplot as plt
for i in clustering['cluster'].unique():
    tmp = pca_df.loc[pca_df['cluster']==i]
    plt.scatter(tmp[0],tmp[1])

군집 결과를 토대로 새로운 데이터를 만들기 -> 새로운 결과 해석하기

 

5. 미래 데이터 예측

- 미래 데이터 예측 모델 이용

'복습용 기술공부' 카테고리의 다른 글

230310 딥러닝 개념  (1) 2023.03.10
230309 머신 러닝 _ 업무처럼 연습해보기  (0) 2023.03.09
230307 이진 분류  (0) 2023.03.07
23.03.03 공부 복습  (0) 2023.03.03
23.03.02 공부 복습  (0) 2023.03.02