1 of 17

머신러닝 기반 데이터분석

주제명: 해군함정 가스터빈 추력기 유지보수 데이터 분석

작성자: 동준상 (naebon1@gmail.com) / 작성일시: 2021.11.29

2021 KIDET AI Master

2 of 17

  1. 서론: 분석 프로젝트 개요
  • 해군 함정용 가스터빈 엔진 시뮬레이터 생성 데이터 (CODLAG 타입 추력 발전기)�Data have been generated from a sophisticated simulator of a Gas Turbines (GT), mounted on a Frigatecharacterized by a COmbined Diesel eLectric And Gas (CODLAG) propulsion plant type.�
  • 추력 시스템 성능 파라미터
  • - Ship speed (linear function of the lever position lp).
  • - Compressor degradation coefficient kMc.
  • - Turbine degradation coefficient kMt.

3 of 17

2. 본론: 분석 데이터 개요 (16개의 속성)

  • 1 - Lever position (lp) [ ]
  • 2 - Ship speed (v) [knots]
  • 3 - Gas Turbine shaft torque (GTT) [kN m]
  • 4 - Gas Turbine rate of revolutions (GTn) [rpm]
  • 5 - Gas Generator rate of revolutions (GGn) [rpm]
  • 6 - Starboard Propeller Torque (Ts) [kN]
  • 7 - Port Propeller Torque (Tp) [kN]
  • 8 - HP Turbine exit temperature (T48) [C]
  • 9 - GT Compressor inlet air temperature (T1) [C]
  • 10 - GT Compressor outlet air temperature (T2) [C]
  • 11 - HP Turbine exit pressure (P48) [bar]
  • 12 - GT Compressor inlet air pressure (P1) [bar]
  • 13 - GT Compressor outlet air pressure (P2) [bar]
  • 14 - Gas Turbine exhaust gas pressure (Pexh) [bar]
  • 15 - Turbine Injecton Control (TIC) [%]
  • 16 - Fuel flow (mf) [kg/s]
  • 17 - GT Compressor decay state coefficient.
  • 18 - GT Turbine decay state coefficient.

4 of 17

data

5 of 17

엑셀에서 ‘텍스트 나누기’하여 CSV로 저장

6 of 17

엑셀에서 ‘텍스트 나누기’하여 CSV로 저장

7 of 17

엑셀에서 ‘텍스트 나누기’하여 CSV로 저장

8 of 17

data.describe()

9 of 17

데이터 시각화: sns.heatmap()

minimal_data = data.drop([

'Lever position (lp) [ ]',

'GT Compressor inlet air temp (T1) [C]',

'GT Compressor inlet air pressure (P1) [bar]',

'GT Compressor decay coef [kMc]',

'GT Turbine decay coef [kMt]'],

axis=1)

sns.heatmap(minimal_data.corr(),annot=True, fmt=".2f", cmap="YlGnBu")

10 of 17

데이터 시각화: sns.pairplot()

11 of 17

2. 본론: 분석 모델 개요

1) 다항회귀모델 / PolynomialRegression

2) 의사결정수 회귀모델 / DecisionTreeRegressor

3) 랜덤포레스트 회귀모델 / RandomForestRegressor

12 of 17

1) 다항회귀모델 / PolynomialRegression

poly = PolynomialFeatures (degree = 3)

X_poly = poly.fit_transform(X_final)

poly_lr = LinearRegression().fit(X_train,y_train)

y_train_pred = poly_lr.predict(X_train)

y_test_pred = poly_lr.predict(X_test)

#print score

print('poly train score %.3f, poly test score: %.3f' % (

poly_lr.score(X_train,y_train),

poly_lr.score(X_test, y_test)))

모델 학습 성능 점수

poly train score 1.000

poly test score: 1.000

13 of 17

2) 의사결정수 회귀모델 / DecisionTreeRegressor

dt = DecisionTreeRegressor(random_state=0)

dt = dt.fit(X_train,y_train.values.ravel())

y_train_pred = dt.predict(X_train)

y_test_pred = dt.predict(X_test)

#print score

print('dt train score %.3f, dt test score: %.3f' % (

dt.score(X_train,y_train),

dt.score(X_test, y_test)))

모델 학습 성능 점수

poly train score 1.000

poly test score: 1.000

14 of 17

3) 랜덤포레스트 회귀모델 / RandomForestRegressor

forest = RandomForestRegressor(n_estimators = 100,

criterion = 'squared_error',

random_state = 1,

n_jobs = -1)

forest.fit(X_train,y_train.values.ravel())

y_train_pred = forest.predict(X_train)

y_test_pred = forest.predict(X_test)

#print score

print(forest.score(X_train,y_train),

forest.score(X_test, y_test)))

모델 학습 성능 점수

poly train score 1.000

poly test score: 1.000

15 of 17

3. 결론: 분석 인사이트

  • 금번 프로젝트는 해군함정의 가스터빈 발전기 시뮬레이터 생성 데이터 인스턴스 11,934건이 지닌 16개의 하위 속성을 분석하여 가스터빈 컴프레서 및 터빈의 열화 상태의 상관계수와의 관계를 검증하기 위한 것이다.
  • 데이터 분석 결과, 현실에서 발생한 데이터가 아닌, 시뮬레이터로 생성된 데이터의 속성에 따라 누락값이 전혀 없고, 거의 대부분의 데이터 타입이 실수형으로 통일돼 있어서 데이터전처리 등 과정을 거치지 않아 편리한 점도 있었으나, 데이터간의 특이한 관계나 특정 데이터의 이상점 등은 발견되지 않았으며, 데이터가 내포한 인사이트 또한 명시적으로 드러나지 않았다.
  • 추후, 데이터세트를 3~4개의 여러 쌍으로 나눠서 세부적인 공통점과 차이점, 그리고 관련성을 발견하고자 하며, 이를 위해 데이터 인덱싱, 그리고 좀 더 다양한 시각화 방법을 적용해야 하겠다.

16 of 17

5. 참조: 소스 코드 및 코랩 링크

17 of 17

머신러닝 포트폴리오

주제명: 해군함정 가스터빈 추력기 유지보수 데이터 분석

작성자: 동준상 (naebon1@gmail.com) / 작성일시: 2021.11.29

2021 KIDET AI Master