1 λΆ„ μ†Œμš”

연ꡬ싀 PHM μ½”λ“œ 정리

λ³Έ λ°μ΄ν„°λŠ” μ—°κ΅¬μ‹€μ—μ„œ μ‚¬μš©ν•œ λ°μ΄ν„°λ‘œ, 데이터λ₯Ό λΆ„μ„ν•˜κ³ , λ¨Έμ‹ λŸ¬λ‹μ„ μ μš©ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•œλ‹€. μ‹€μ§ˆμ μœΌλ‘œ λ°μ΄ν„°λŠ” μ˜¬λ¦¬μ§€ μ•Šμ„ μ˜ˆμ •μ΄μ§€λ§Œ λŒ€κ·œλͺ¨ 데이터λ₯Ό μ–΄λ–»κ²Œ μ²˜λ¦¬ν•˜κ³ , λ¨Έμ‹ λŸ¬λ‹μ„ μ μš©ν•˜λŠ”μ§€μ— λŒ€ν•œ μ½”λ“œλ₯Ό 올릴 μ˜ˆμ •μ΄λ‹€.
λ˜ν•œ 데이터와 μ½”λ“œμ— μ €μž‘κΆŒμ€ 미리 연ꡬλ₯Ό λ°œν‘œν•œ λ…Όλ¬Έμžμ—κ²Œ μžˆμŒμ„ λͺ…μ‹œν•œλ‹€.(논문은 아직 심사쀑에 있음.)

🚨 λŒ€μš©λŸ‰ 파일 μ²˜λ¦¬κ°€ Colabμ—μ„œ μ•ˆλœλ‹€λŠ” 것을 κΉ¨λ‹«κ³ .. λ‘œμ»¬μ—μ„œ λŒλ Έλ‹€. 파이썬으둜!

데이터 μ „μ²˜λ¦¬, 데이터 ν•©μΉ˜κΈ° (Data Preprocessing, Data Merging)


데이터 μ „μ²˜λ¦¬λŠ” 파일 λͺ… μ•ˆμ— μ–΄λ–€ ν˜•νƒœμΈμ§€ λ‹€ λͺ¨μ•„놨을 텐데, 이λ₯Ό ν•œ 개의 λ°μ΄ν„°λ‘œ ν•©μΉ˜λŠ” 과정이닀.
λ¨Όμ € 비지도 ν•™μŠ΅, PCAλ₯Ό 써보기 μœ„ν•΄μ„œ 데이터λ₯Ό ν•©μ³λ³΄μž.

import pandas as pd
import os
from sklearn.decomposition import PCA

# λͺ¨λ“  데이터λ₯Ό μ €μž₯ν•  빈 λ°μ΄ν„°ν”„λ ˆμž„ 생성
df_all = pd.DataFrame()

# μ—‘μ…€ 파일 읽기
df_info = pd.read_excel('/Volumes/{μ—΄μ—λŒ€ν•œμ •λ³΄νŒŒμΌ}.xlsx')

# λͺ¨λ“  csv νŒŒμΌμ— λŒ€ν•΄ 반볡
for filename in os.listdir('/Volumes/Data'):
    if filename.endswith('.csv'):
        # CSV 파일 읽기
        df_data = pd.read_csv(f'/Volumes/Data/{filename}', header=None)

        # 첫 행에 μ—‘μ…€ 파일의 데이터 μΆ”κ°€
        df_data.columns = df_info.columns.tolist()
        # ν•„μš” μ—†λŠ” μ—΄ μ‚­μ œ
        df_data = df_data.drop(['ν•„μš”μ—†λŠ” 속성 μ‚­μ œ'], axis=1)
        # "Time Data"κ°€ λ“€μ–΄κ°„ μ—΄ 제거
        time_columns = [col for col in df_data.columns if 'Time Data' in col]
        df_data = df_data.drop(columns=time_columns)
        
        # 데이터 좜λ ₯
        print(df_data.head(3))

        # df_dataλ₯Ό df_all에 뢙이기
        df_all = pd.concat([df_all, df_data])

# 데이터 좜λ ₯
# PCAλ₯Ό μ μš©ν•˜μ—¬ 차원 μΆ•μ†Œ, 99%의 뢄산을 μœ μ§€ν•˜λ„λ‘ 함 = 99%의 정보λ₯Ό μœ μ§€ν•˜λ„λ‘ 함
# whiten=True둜 μ„€μ •ν•˜μ—¬ 데이터λ₯Ό μ •κ·œν™”(Normalization)함
pca = PCA(n_components=0.99, whiten=True)
df_all_pca = pca.fit_transform(df_all)

# PCA 결과의 μ„€λͺ…λ ₯ 좜λ ₯
explained_variance_ratio = pca.explained_variance_ratio_
print("PCA 결과의 μ„€λͺ…λ ₯:")
print(explained_variance_ratio)

비지도 ν•™μŠ΅μ„ μœ„ν•΄ PCAλ₯Ό μ μš©ν•˜μ˜€λ‹€.

PCA 결과의 μ„€λͺ…λ ₯:
[0.78608101 0.09318127 0.0513852  0.03209065 0.01289721 0.00484044
 0.00421308 0.0034297  0.00244788] 

데이터 μ‹œκ°ν™” (Data Visualization)


데이터 μ‹œκ°ν™”κ°€ 먼저인 것을 κΉ¨λ‹¬μ•˜λ‹€. μ‹œκ°ν™”κ°€ μ•ˆλœ 데이터λ₯Ό 가지고 돌릴 λ•Œ μ™œ 이런 데이터가 높은 뢄산을 κ°€μ§€λŠ”μ§€.. μ•„λ‹ˆλ©΄ μ™œ μ•ˆλ‚˜μ˜€λŠ”μ§€, μ„€λͺ…ν•  수 κ°€ μ—†μ—ˆλ‹€. κ·Έλž˜μ„œ λ¨Όμ € 데이터 μ‹œκ°ν™”λ₯Ό ν•˜λ €κ³  ν•œλ‹€.
16GB λ˜λŠ” 데이터λ₯Ό μ‹œκ°ν™”λ₯Ό ν•˜λŠ” 것은 말도 μ•ˆλ˜κΈ° λ•Œλ¬Έμ— 이것을 μ–΄λ–»κ²Œ ν•˜λ©΄ μ€„μΌκΉŒ?, μ–΄λ–»κ²Œ ν•˜λ©΄ 효율적으둜 μ‹œκ°„μ„ μ“Έ 수 μžˆμ„κΉŒ?
λ‚˜μ˜ μ˜κ²¬μ€ μ‹œκ°ν™”μ˜€λ‹€.

μ–΄λ–€ μ„€λͺ…λ ₯듀이 이 뢄산듀이 λ‚˜μ˜€λŠ”μ§€ 3차원, 2μ°¨μ›μœΌλ‘œ ν•œλ²ˆ 뽑아봀닀. μ—¬κΈ°μ„œ 문제점..