import pandas as pd
02wk-03: 타이타닉 / 첫 제출
1. 강의영상
2. Imports
3. 제출방법
-
제출: Submit Predictions
-
결과확인: Leaderboard
4. 결과확인
A. test – 답을 모름, 제출해야 알 수 있음
-
제출결과는 리더보드에서 확인할 수 있음.
B. train – 스스로 풀어보고 채점할 수 있음
-
캐글에서 code \(\to\) New Notebook 클릭
# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python
# For example, here's several helpful packages to load
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
# Input data files are available in the read-only "../input/" directory
# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
for filename in filenames:
print(os.path.join(dirname, filename))
# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All"
# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session
/kaggle/input/titanic/train.csv
/kaggle/input/titanic/test.csv
/kaggle/input/titanic/gender_submission.csv
=pd.read_csv("/kaggle/input/titanic/train.csv")
df_train=pd.read_csv("/kaggle/input/titanic/test.csv") df_test
# !kaggle competitions download -c titanic
# !unzip titanic.zip -d ./titanic
# df_train = pd.read_csv('titanic/train.csv')
# df_test = pd.read_csv('titanic/test.csv')
# !rm titanic.zip
# !rm -rf titanic/
#
예비학습 – accuracy의 계산
= pd.DataFrame({'Surv':[1,0,1,1,0],'Sex':['f','m','f','m','m']}) df
-
Surv 열의 선택
df.Surv
0 1
1 0
2 1
3 1
4 0
Name: Surv, dtype: int64
-
Sex 열의 선택
df.Sex
0 f
1 m
2 f
3 m
4 m
Name: Sex, dtype: object
-
Sex == f
이면 생존(1), 그렇지 않으면 사망(0)이라고 예측
== 'f')*1 (df.Sex
0 1
1 0
2 1
3 0
4 0
Name: Sex, dtype: int64
-
결과를 정리하면 아래와 같음
'real': df.Surv, 'estimate': (df.Sex == 'f')*1}) pd.DataFrame({
real | estimate | |
---|---|---|
0 | 1 | 1 |
1 | 0 | 0 |
2 | 1 | 1 |
3 | 1 | 0 |
4 | 0 | 0 |
-
accuracy를 손으로 계산하면 \(\frac{4}{5}=0.8\).
-
컴퓨터로 accuracy를 계산한다면
== (df.Sex == 'f')*1).sum()/5 # 방법1 (df.Surv
0.8
== (df.Sex == 'f')*1).mean() # 방법2 (df.Surv
0.8
#
-
실제자료의 accuracy를 구해보자.
== (df_train.Sex == 'female')).mean() (df_train.Survived
0.7867564534231201
4. 개념
-
캐글대회는 시험과 비슷하다.
- 캐글대회를 여는 사람은 보통 (1) 모의고사문제+답 (training set) (2) 실제시험문제 (test set)를 준다.1
- (1)의 자료에서는 문제(X,독립변수,설명변수)와 답(y,종속변수,반응변수)이 함께 주어진다.
- (2)의 자료에서는 문제(X,독립변수,설명변수)만 주어진다.
- 우리는 (1)을 이용하여 문제(X,독립변수,설명변수)와 답(y,종속변수,반응변수)사이의 관계를 찾아내는 훈련을 한다.
- 그리고 그 훈련이 잘 되었는지를 평가하기 위해서 (2)를 풀어보고 그 결과를 제출한다.
1 물론 모든 대회가 이런건 아님, 시험도 수능같은 시험만 있는게 아닌 실기같은것도 있잖아요?
-
타이타닉의 training set
0] df_train.iloc[
PassengerId 1
Survived 0
Pclass 3
Name Braund, Mr. Owen Harris
Sex male
Age 22.0
SibSp 1
Parch 0
Ticket A/5 21171
Fare 7.25
Cabin NaN
Embarked S
Name: 0, dtype: object
모의고사문제1: Pclass는 3이에요, 그리고 이름은 ‘Braund, Mr. Owen Harris’ 입니다. 성별은 ‘male’ 입니다. 그리고 …. 입니다. 이 사람은 죽었을까요? 살았을까요?
답1: 죽었습니다.
1] df_train.iloc[
PassengerId 2
Survived 1
Pclass 1
Name Cumings, Mrs. John Bradley (Florence Briggs Th...
Sex female
Age 38.0
SibSp 1
Parch 0
Ticket PC 17599
Fare 71.2833
Cabin C85
Embarked C
Name: 1, dtype: object
모의고사문제2: Pclass는 1이에요, 그리고 이름은 ‘Cumings, Mrs. John Bradley (Florence Briggs Thayer)’ 입니다. 성별은 ‘female’ 입니다. 그리고 …. 입니다. 이 사람은 죽었을까요? 살았을까요?
답2: 살았습니다.
-
타이타닉의 test set
0] df_test.iloc[
PassengerId 892
Pclass 3
Name Kelly, Mr. James
Sex male
Age 34.5
SibSp 0
Parch 0
Ticket 330911
Fare 7.8292
Cabin NaN
Embarked Q
Name: 0, dtype: object
실전문제1: Pclass는 3이에요, 그리고 이름은 ‘Kelly, Mr. James’ 입니다. 성별은 ‘male’ 입니다. 그리고 …. 입니다. 이 사람은 죽었을까요? 살았을까요?
답1: (속마음: 훈련집합에서 대부분 남자는 죽고 여자는 살았다고 푸니까 대충 78점 정도는 맞던데? 이 사람도 남자니까 죽었다고 하자) 죽었다고 예측하겠습니다.