Notice
Recent Posts
Recent Comments
Link
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ALLYES

[2022 청년친화형 기업 ESG지원 사업 - 1] 본문

ESG

[2022 청년친화형 기업 ESG지원 사업 - 1]

Allyes_99 2022. 9. 5. 18:02

일시 : 2022.09.05

시간 : 14 : 00 ~ 18 :00


  • BigData TitanicExcel
    • 액셀을 사용하여 데이터 분석 - 캐글경진대회
  • 타이타닉
    • 실제 유람선의 이름 - 타이타닉호
    • 영화의 전반적인 내용 - 배가 빙산에 부딪혀 침몰하는 와중에서 벌어지는 로맨스를 풀어내는 내용
  • 실제 타이타닉에 탑승했던 사람들의 정보를 가지고 데이터분석
    • 위 정보를 가지고 생존여부의 자료가 없는 사람들의 생존을 예측
  • Google - 타이타닉호
    • RMS 타이타닉(영어: RMS Titanic)은 영국 화이트 스타 라인이 운영한 북대서양 횡단 여객선이다.
    • 타이타닉의 침몰로 1,514명이 사망하였다.
    • 승객 대다수는 영국과 스칸다나비아 반도 등에서 새로운 삶을 찾아 미국으로 가는 이민자들이었다.
    • 출항 당시 승선 인원은 2,223명이었다.

그림1


  • kaggle 접속


  • kaggle - 세계적인 "데이터 예측 분석 경연 대회" 


  • kaggle - titanic 검색
  • Machine Learning from Disaster 클릭


  • csv 파일 3개 다운 - titanic.zip


  • 컬럼
    • PassengerId - 승객 고유 번호
    • Survived - 생존여부 (1과 0으로 표기)
    • Pclass - 티켓 등급(1,2,3으로 표기)
    • Name - 이름 
    • Sex - 성별
    • Age - 나이
    • SibSp - 형제/자매/배우자(같이 탑승한 승객)
    • Parch - 부모/자녀(같이 탑승한 승객)
    • Ticket - 티켓 넘버
    • Fare - 요금
    • Cabin - 객실 번호
    • Embarked - 출항지(3곳 - 위 그림1 참고)

  • train / test 파일에서 중복되는 데이터가 없음 => 생존여부 정보의 유무 차이
  • 생존 여부를 예측하여 kaggle에 업로드

  • 데이터분석
    • 액셀 - 피벗테이블 생성


  • survived - 열, 값
  • sex - 행
  • 각 필드값 설정 - 합계 -> 개수




  • 달라진 결과 값


  • 피벗테이블 클릭 >> 피벗 테이블 분석 - 피벗 차트
  • 성별 생존여부

 


  • 티켓 클래스 생존여부

 


  • 티켓 클래스/성별 생존여부


  • 나이 생존여부
  • Age >> 범주형 데이터로 변경
  • 그룹 - 그룹화(시작 : 0)


  • 전체 결과 테이블 및 차트


  • 데이터 예측
    • test 파일 - survived 셀 추가
    • 새로운 시트 추가 - 아래 +버튼 클릭
    • 조건 - 남자 : 사망(0), 여자 : 생존(1) 
    • 함수 생성 방법 : 셀 클릭 - f(x) - if 변경 

  • 조건 설정


  • 다른 셀에도 함수를 적용 하고 싶다면( 함수 드래그 및 더블클릭)
  • IF 사용법
    • if(조건식, true 였을때 실행, false였을때 실행)
    • =IF(B2>=90, "A",IF(B2>=80,"B",IF(B2>=70,"C","F"))) 
    • =IF(E2="male",0,1) 


함수를 제외하고 값만 붙여넣기 하고싶을 때 - 붙여놓기 옵션(123)클릭


  • 캐글 업로드
    • submit predictions
    • 파일 업로드
    • make submission

 


  • and 함수 
    • =IF(and(E2="male",F2>=70),0,1)
  • or 함수
    • =IF(or(E2="male",F2>=70),0,1)

  • 실습
    • 첫번째 설정 조건 : 티켓 클래스/성별/나이 생존여부
    • =IF(OR(E2="male",F2>=70,C2=3),0,1)


  • 기존 실습 : 0.76555
  • 첫번째 실습 : 0.77272 
  • 아주 조금 정확률이 올라감
  • =IF(OR(E2="male",F2>=70,C2=3),0,1)


조건 : 여자/아이 만 태운다. 주로 티켓 클래스 3은 주로 사망, 15달러 이하면 사망률이 높다

  • Fare=J2
  • =IF(OR(E2="male",F2>=70,C2=3,J2<15),0,1)
  • 정확률 낮아짐


  • J2<30으로 해봄
  • 더욱 확률이 떨어짐 => 요금으로 하는 것은 아닌듯


  • parch = 0, fare <30 이하 등의 조건은 확률이 더 낮아짐
  • 최종적으로 첫실습이 제일 조건이 높게 나옴
  • 분반 중 높은 확률로 나온 조건
    • =IF(OR(AND(E2="female", C2<3, G2 < 4), AND(E2="female", C2=3, G2<4, F2 <= 20), AND(E2="male", C2 < 3, AND(F2 > 0, F2 <= 10), G2 < 4), AND(E2="female", C2=3, G2 < 4, AND(F2>60,F2<=70))), 1, 0)
      • 각 조건 나열
        • AND(E2="female", C2<3, G2 < 4) 
          • 성별/티켓/SibSp
        • AND(E2="female", C2=3, G2<4, F2 <= 20)
          • 성별/티켓/SibSp/나이
        • AND(E2="male", C2 < 3, AND(F2 > 0, F2 <= 10), G2 < 4)
          • 성별/티켓/나이/Sibsp
        • AND(E2="female", C2=3, G2 < 4, AND(F2>60,F2<=70))
          • 성별/티켓/Sibsp/나이

조건을 너무 train만 맞추다 보면 test에 정확도가 낮아질 수 있다.

후에 과적합 등 배울 예정