카테고리 없음

기초 프로젝트_DAY3_데이터 시각화

iron-min 2025. 10. 15. 21:08

1. 프로젝트 목표 수정

전처리와 함께 기초 데이터를 시각화 한것을 보고 추가적인 목표를 설정했습니다.

 

  • 연비와 탄소배출량간의 관계 확인 
  • 차종별 탄소배출 분석
    • 차량 실린더와 연비 관계 분석
    • 차 엔진사이즈와 연비 관계 분석
    • 연료, 차종별 탄소 배출량 저감률 분석
  • 탄소배출량 분석한것을 파생변수로 변화시켜서 비교
    • 실린더 수, 차 엔진사이즈, 차종변경 중 파생변수가 큰 것을 탄소배출에 효과적인 방안으로 봄.
    • 파생변수 = 연비/내부요인들
  • 각 요인의 파생변수 임계치 파악
    • 탄소배출 저감을 위한 최종적 모델 선정.
    • 탄소배출량 저감에 효과적인 모델 10개, 비효과적인 모델 10개 선정 및 소개
      • 탄소배출량 저감에 기여한 기업 선정
  • COMB가 낮은 차종만 선택하게 되는 오류 해결
    • 차량을 소형,중형,대형으로 나눠서 분류
    • 연료 (5종류) X 차종(3종류) = 15개 항목으로 분류
  • 목표
    • 환경부 공무원 컨설팅.
    • 차종별 탄소배출 저감 차종과 엔진, 실린더 수 조정 등을 분석해서 기업에 대해 탄소배출 감축 전략을 컨설팅 한다.
      • 조합별 차량의 탄소배출량을 줄이기 위해서는 엔진 크기는 ~까지, 실린더수는 ~까지 가 좋음.
    • 차량 연비와 배출량 사이의 관계를 검증하고 이를 바탕으로 친환경 전략을 제안
      • 연비가 ~만큼 좋아졌을경우 탄소배출량이 ~만큼 줄어드니 연비를 이렇게 좋게해라.
    • 탄소배출량 저감에 기여한 우수기업 선출

 

2. 정규화 진행

우선 

  • 차량 실린더와 연비 관계 분석
  • 차 엔진사이즈와 연비 관계 분석

위 두개의 관계에 대한 상호 비교를 위해 두 관계에 대해 정규화를 진행했습니다.

# 엔진 사이즈, 실린더 수 정규화 컬럼 추가
df['ENGINZE_NORM'] = (df['ENGINE SIZE'] - df['ENGINE SIZE'].min()) / (df['ENGINE SIZE'].max() - df['ENGINE SIZE'].min())
df['CYL_NORM'] = (df['CYLINDERS'] - df['CYLINDERS'].min()) / (df['CYLINDERS'].max() - df['CYLINDERS'].min())

 

3. 임무 분담 및 시각화 진행

여기서 데이터를 분석하기 위한 처리를 각 3부분으로 나누어 데이터를 시각화 하였는데요

저는 '차 엔진사이즈와 연비 관계 분석' 을 맡아서 코딩을 진행했습니다.

 

# 가솔린차량 & 소형만 보기
df_fuel_X = df[df['FUEL'] == 'X']
df_fuel_X_SMALL = df_fuel_X[df_fuel_X['SIZE CLASS']=='SMALL']

plt.figure(figsize=(12, 8))

# 1. regplot으로 관계 시각화
sns.regplot(
    data=df_fuel_X_SMALL,
    x='ENGINZE_NORM',
    y='COMB (L/100 km)',
    scatter_kws={'alpha':0.6, 's': 50}, # 점 투명도와 크기 조정
    line_kws={'color': 'red'},           # 회귀선 색상 조정
    order=2  # order=2를 추가하여 2차 곡선 적용
)

# 2. 제목 및 축 레이블 추가
plt.title('가솔린/소형차량: 엔진 크기(정규화)와 복합 연비 관계', fontsize=18, fontweight='bold')
plt.xlabel('엔진 크기 (Min-Max 정규화 값)', fontsize=14)
plt.ylabel('복합 연비 (L/100km)', fontsize=14)

# 3. 가독성 향상 요소 추가
plt.grid(True, linestyle=':', alpha=0.7) # 격자선 추가
plt.tick_params(labelsize=12)            # 축 눈금 글자 크기 조정

plt.show()

 

이런식으로 간단하게 코딩을 하고 차종 3종류 , 연료 5종류로 총 15개의 그래프를 도출해봤습니다.