PHM ์ฝ๋
์ฐ๊ตฌ์ค 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์ฐจ์์ผ๋ก ํ๋ฒ ๋ฝ์๋ดค๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ์ ..