import pandas as pd 해당 자료는 전북대학교 최규빈 교수님 2023학년도 2학기 빅데이터분석특강 자료임
2. 제출방법
- 제출: Submit Predictions
- 결과확인: Leaderboard
3. 결과확인
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
tr=pd.read_csv("/kaggle/input/titanic/train.csv")
tst=pd.read_csv("/kaggle/input/titanic/test.csv")
# 예비학습 – accuracy의 계산
df = pd.DataFrame({'Surv':[1,0,1,1,0],'Sex':['f','m','f','m','m']})- Surv 열의 선택
df.Surv0    1
1    0
2    1
3    1
4    0
Name: Surv, dtype: int64
- Sex 열의 선택
df.Sex0    f
1    m
2    f
3    m
4    m
Name: Sex, dtype: object
- Sex == f이면 생존(1), 그렇지 않으면 사망(0)이라고 예측
(df.Sex == 'f')*10    1
1    0
2    1
3    0
4    0
Name: Sex, dtype: int64
- 결과를 정리하면 아래와 같음
pd.DataFrame({'real': df.Surv, 'estimate': (df.Sex == 'f')*1})| 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.Surv == (df.Sex == 'f')*1).sum()/5 # 방법10.8
(df.Surv == (df.Sex == 'f')*1).mean() # 방법20.8
#
- 실제자료의 accuracy를 구해보자.
tr = pd.read_csv('~/Desktop/titanic/train.csv')(tr.Survived == (tr.Sex == 'female')).mean()0.7867564534231201
tr[tr.Sex == 'female'].Survived.mean()0.7420382165605095
4. 개념
- 캐글대회는 시험과 비슷하다.
- 캐글대회를 여는 사람은 보통 (1) 모의고사문제+답 (training set) (2) 실제시험문제 (test set)를 준다.[1]
 - (1)의 자료에서는 문제(X,독립변수,설명변수)와 답(y,종속변수,반응변수)이 함께 주어진다.
 - (2)의 자료에서는 문제(X,독립변수,설명변수)만 주어진다.
 - 우리는 (1)을 이용하여 문제(X,독립변수,설명변수)와 답(y,종속변수,반응변수)사이의 관계를 찾아내는 훈련을 한다.
 - 그리고 그 훈련이 잘 되었는지를 평가하기 위해서 (2)를 풀어보고 그 결과를 제출한다.
 
- 타이타닉의 training set
[1] 물론 모든 대회가 이런건 아님, 시험도 수능같은 시험만 있는게 아닌 실기같은것도 있잖아요?
tr.iloc[0]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: 죽었습니다.
tr.iloc[1]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
tst = pd.read_csv('~/Desktop/titanic/test.csv')tst.iloc[0]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점 정도는 맞던데? 이 사람도 남자니까 죽었다고 하자) 죽었다고 예측하겠습니다.