Python Function
2022-07-06
5주차 : Python Function
- 파이썬 함수를 만드는 방법에 대해 알아보십시오.
- 함수를 만드는 방법과 사용하는 방법에 대한 기사를 읽으십시오. source
- python “main” 기능 및 사용 방법에 대한 기사를 읽으십시오.
- 함수 정의: 데이터 로더 함수
- 이전에 데이터 세트를 로드하기 위한 명령을 이미 작성했습니다(예: pd.read_csv …)
- 이제 여러 csv 파일을 로드하고 DataFrame에 저장하는 함수를 정의합니다(예: def data_loader).
- 출력의 기능은 DataFrame입니다.
- 기능 정의: 상태 식별 기능
- 상태 식별을 위한 이전 코드(작업 번호 2)를 함수로 변경하십시오!
- 기능 정의: 운임 유형 식별 기능
- 운임 구분을 위한 이전 코드(작업 4번)를 함수로 변경 !
- 기능 변환: 데이터 메트릭(데이터 표준화)
- “연령”과 “운임”의 값을 표준화(힌트: StandardScaler 기능 사용)
- Feature Transformation: 시퀀스 데이터 복구(Ordinal encoding)
- “상태 및 요금_유형” 열의 값을 서수로 인코딩합니다(힌트: OrdlinalEncoder 사용).
- 결과 표시
- 기능 변환: 원핫(One-hot) 인코딩
- one-hot 인코딩을 사용하여 “sex, pclass, embarked 및 status” 열의 값을 인코딩합니다(힌트: OneHotEncoder 사용).
- 결과 표시
- (선택 사항) 데이터 분할: 데이터를 학습 및 테스트 데이터 세트로 분할
- 훈련 세트와 테스트 세트가 무엇인지 사전에 읽으십시오(예: 기능이 무엇인지, 대상 레이블이 무엇인지)
- 사전 처리된 데이터 세트를 훈련 세트(80%)와 테스트 세트(20%)로 분할합니다(힌트: train_test_split 사용).
과제전. 설치
#!pip install category_encoders
과제전. 라이브러리 불러오기
import pandas as pd
import numpy as np
import sklearn
from category_encoders import OrdinalEncoder
from sklearn.preprocessing import StandardScaler
from category_encoders import OneHotEncoder
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
- 파이썬 함수를 만드는 방법에 대해 알아보십시오.
- 함수를 만드는 방법과 사용하는 방법에 대한 기사를 읽으십시오. source
- python “main” 기능 및 사용 방법에 대한 기사를 읽으십시오.
#def 함수이름(매개변수):
# <수행할 문장>
# ...
# return 결과값
# 다음은 일반 함수의 전형적인 예이다.
#def add(a, b):
# result = a + b
# return result
#>>> a = add(3, 4)
#>>> print(a)
#7
- 함수 정의: 데이터 로더 함수
- 이전에 데이터 세트를 로드하기 위한 명령을 이미 작성했습니다(예: pd.read_csv …)
- 이제 여러 csv 파일을 로드하고 DataFrame에 저장하는 함수를 정의합니다(예: def data_loader).
- 출력의 기능은 DataFrame입니다.
# 데이터 로더 함수 선언
def data_loader():
# a. 데이터 세트 로드
pd_read_csv = pd.read_csv('./Documents/titanic-openml_01.csv')
# b. 데이터 저장
return pd_read_csv
# 데이터 로더 함수 호출
dfs = data_loader()
# c. 출력
pd.DataFrame(dfs)
pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | homedest | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | Allen, Miss. Elisabeth Walton | female | 29 | 0 | 0 | 24160 | 211.3375 | B5 | S | 2 | ? | St Louis, MO |
1 | 1 | 1 | Allison, Master. Hudson Trevor | male | 0.9167 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | 11 | ? | Montreal, PQ / Chesterville, ON |
2 | 1 | 0 | Allison, Miss. Helen Loraine | female | 2 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON |
3 | 1 | 0 | Allison, Mr. Hudson Joshua Creighton | male | 30 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | 135 | Montreal, PQ / Chesterville, ON |
4 | 1 | 0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 25 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
995 | 3 | 0 | Markoff, Mr. Marin | male | 35 | 0 | 0 | 349213 | 7.8958 | ? | C | ? | ? | ? |
996 | 3 | 0 | Markun, Mr. Johann | male | 33 | 0 | 0 | 349257 | 7.8958 | ? | S | ? | ? | ? |
997 | 3 | 1 | Masselmani, Mrs. Fatima | female | ? | 0 | 0 | 2649 | 7.2250 | ? | C | C | ? | ? |
998 | 3 | 0 | Matinoff, Mr. Nicola | male | ? | 0 | 0 | 349255 | 7.8958 | ? | C | ? | ? | ? |
999 | 3 | 1 | McCarthy, Miss. Catherine 'Katie' | female | ? | 0 | 0 | 383123 | 7.7500 | ? | Q | 15 16 | ? | ? |
1000 rows × 14 columns
- 기능 정의: 상태 식별 기능
- 상태 식별을 위한 이전 코드(작업 번호 2)를 함수로 변경하십시오!
# age group
def male_female_child(passenger):
age, sex = passenger
if age < 1:
return 'Infant'
elif (age >= 1) and (age < 13):
return 'Child'
elif (age >= 13) and (age < 18):
return 'Teen'
elif (age >= 18) and (age <= 65):
return 'Adult'
elif age > 65:
return 'Elderly'
else:
return sex
def data_loader_status():
# age가 문자열이라
dfs['age'] = dfs['age'].replace('?', np.nan).astype(float)
# status 컬럼 추가
dfs['status'] = dfs[['age','sex']].apply(male_female_child, axis=1)
data_loader_status()
pd.DataFrame(dfs)
pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | homedest | status | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | Allen, Miss. Elisabeth Walton | female | 29.0000 | 0 | 0 | 24160 | 211.3375 | B5 | S | 2 | ? | St Louis, MO | Adult |
1 | 1 | 1 | Allison, Master. Hudson Trevor | male | 0.9167 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | 11 | ? | Montreal, PQ / Chesterville, ON | Infant |
2 | 1 | 0 | Allison, Miss. Helen Loraine | female | 2.0000 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON | Child |
3 | 1 | 0 | Allison, Mr. Hudson Joshua Creighton | male | 30.0000 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | 135 | Montreal, PQ / Chesterville, ON | Adult |
4 | 1 | 0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 25.0000 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON | Adult |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
995 | 3 | 0 | Markoff, Mr. Marin | male | 35.0000 | 0 | 0 | 349213 | 7.8958 | ? | C | ? | ? | ? | Adult |
996 | 3 | 0 | Markun, Mr. Johann | male | 33.0000 | 0 | 0 | 349257 | 7.8958 | ? | S | ? | ? | ? | Adult |
997 | 3 | 1 | Masselmani, Mrs. Fatima | female | NaN | 0 | 0 | 2649 | 7.2250 | ? | C | C | ? | ? | female |
998 | 3 | 0 | Matinoff, Mr. Nicola | male | NaN | 0 | 0 | 349255 | 7.8958 | ? | C | ? | ? | ? | male |
999 | 3 | 1 | McCarthy, Miss. Catherine 'Katie' | female | NaN | 0 | 0 | 383123 | 7.7500 | ? | Q | 15 16 | ? | ? | female |
1000 rows × 15 columns
- 기능 정의: 운임 유형 식별 기능
- 운임 구분을 위한 이전 코드(작업 4번)를 함수로 변경 !
# fare group
def fare_group(price):
fare = price
if price <= 8:
return 'economy'
elif (price > 8) and (price < 30):
return 'business'
else:
return 'president'
def data_loader_fare():
dfs['fare'] = dfs['fare'].replace('?', np.nan).astype(float)
dfs['fare_type'] = dfs['fare'].apply(fare_group)
data_loader_fare()
dfs
pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | homedest | status | fare_type | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | Allen, Miss. Elisabeth Walton | female | 29.0000 | 0 | 0 | 24160 | 211.3375 | B5 | S | 2 | ? | St Louis, MO | Adult | president |
1 | 1 | 1 | Allison, Master. Hudson Trevor | male | 0.9167 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | 11 | ? | Montreal, PQ / Chesterville, ON | Infant | president |
2 | 1 | 0 | Allison, Miss. Helen Loraine | female | 2.0000 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON | Child | president |
3 | 1 | 0 | Allison, Mr. Hudson Joshua Creighton | male | 30.0000 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | 135 | Montreal, PQ / Chesterville, ON | Adult | president |
4 | 1 | 0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 25.0000 | 1 | 2 | 113781 | 151.5500 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON | Adult | president |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
995 | 3 | 0 | Markoff, Mr. Marin | male | 35.0000 | 0 | 0 | 349213 | 7.8958 | ? | C | ? | ? | ? | Adult | economy |
996 | 3 | 0 | Markun, Mr. Johann | male | 33.0000 | 0 | 0 | 349257 | 7.8958 | ? | S | ? | ? | ? | Adult | economy |
997 | 3 | 1 | Masselmani, Mrs. Fatima | female | NaN | 0 | 0 | 2649 | 7.2250 | ? | C | C | ? | ? | female | economy |
998 | 3 | 0 | Matinoff, Mr. Nicola | male | NaN | 0 | 0 | 349255 | 7.8958 | ? | C | ? | ? | ? | male | economy |
999 | 3 | 1 | McCarthy, Miss. Catherine 'Katie' | female | NaN | 0 | 0 | 383123 | 7.7500 | ? | Q | 15 16 | ? | ? | female | economy |
1000 rows × 16 columns
- 기능 변환: 데이터 메트릭(데이터 표준화)
- “연령”과 “운임”의 값을 표준화(힌트: StandardScaler 기능 사용)
from sklearn.preprocessing import MinMaxScaler
dfs_ageFare = dfs[['age','fare']]
# StandardScaler객체 생성
scaler = StandardScaler()
# StandardScaler 로 데이터 셋 변환. fit( ) 과 transform( ) 호출.
scaler.fit(dfs_ageFare)
output = scaler.transform(dfs_ageFare)
dfs_ageFare = pd.DataFrame(output, columns=dfs_ageFare.columns, index=list(dfs_ageFare.index.values))
dfs_ageFare
age | fare | |
---|---|---|
0 | -0.144838 | 2.995777 |
1 | -2.096433 | 1.954819 |
2 | -2.021151 | 1.954819 |
3 | -0.075345 | 1.954819 |
4 | -0.422810 | 1.954819 |
... | ... | ... |
995 | 0.272121 | -0.546341 |
996 | 0.133135 | -0.546341 |
997 | NaN | -0.558020 |
998 | NaN | -0.546341 |
999 | NaN | -0.548879 |
1000 rows × 2 columns
- Feature Transformation: 시퀀스 데이터 복구(Ordinal encoding)
- “상태 및 요금_유형” 열의 값을 서수로 인코딩합니다(힌트: OrdlinalEncoder 사용).
- 여기에서 OrdlinalEncoder 이란?
- Categorical feature(범주형 특성)에 대한 순서형 코딩이라고 하며, 각 범주들을 특성으로 변경하지 않고, 그 안에서 1,2,3 등의 숫자로 변경하는 방법이다
- 범주가 너무 많아 one hot encoding을 하기 애매한 상황에서 이용하기 좋은 인코딩 방법이다.
- 또한 트리모델은 중요한 feature가 상위 노드를 점하여 분할을 하게 되는데, one hot encoding을 한 특성은 뽑히기에 불리한 상태가 되므로 대안으로 Ordinal Encoding을 한다.
- 설치는 옆과 같이 작성하면 된다.
!pip install category_encoders
- import 는 옆과 같이 작성하면 된다.
from category_encoders import OrdinalEncoder
- 여기에서 OrdlinalEncoder 이란?
- 결과 표시
- “상태 및 요금_유형” 열의 값을 서수로 인코딩합니다(힌트: OrdlinalEncoder 사용).
enc1 = OrdinalEncoder(cols = ['age', 'fare'])
dfs = enc1.fit_transform(dfs)
dfs
pclass | survived | name | sex | age | sibsp | parch | ticket | fare | cabin | embarked | boat | body | homedest | status | fare_type | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | Allen, Miss. Elisabeth Walton | female | 1 | 0 | 0 | 24160 | 1 | B5 | S | 2 | ? | St Louis, MO | Adult | president |
1 | 1 | 1 | Allison, Master. Hudson Trevor | male | 2 | 1 | 2 | 113781 | 2 | C22 C26 | S | 11 | ? | Montreal, PQ / Chesterville, ON | Infant | president |
2 | 1 | 0 | Allison, Miss. Helen Loraine | female | 3 | 1 | 2 | 113781 | 2 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON | Child | president |
3 | 1 | 0 | Allison, Mr. Hudson Joshua Creighton | male | 4 | 1 | 2 | 113781 | 2 | C22 C26 | S | ? | 135 | Montreal, PQ / Chesterville, ON | Adult | president |
4 | 1 | 0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | female | 5 | 1 | 2 | 113781 | 2 | C22 C26 | S | ? | ? | Montreal, PQ / Chesterville, ON | Adult | president |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
995 | 3 | 0 | Markoff, Mr. Marin | male | 23 | 0 | 0 | 349213 | 169 | ? | C | ? | ? | ? | Adult | economy |
996 | 3 | 0 | Markun, Mr. Johann | male | 33 | 0 | 0 | 349257 | 169 | ? | S | ? | ? | ? | Adult | economy |
997 | 3 | 1 | Masselmani, Mrs. Fatima | female | 16 | 0 | 0 | 2649 | 172 | ? | C | C | ? | ? | female | economy |
998 | 3 | 0 | Matinoff, Mr. Nicola | male | 16 | 0 | 0 | 349255 | 169 | ? | C | ? | ? | ? | male | economy |
999 | 3 | 1 | McCarthy, Miss. Catherine 'Katie' | female | 16 | 0 | 0 | 383123 | 180 | ? | Q | 15 16 | ? | ? | female | economy |
1000 rows × 16 columns
- 기능 변환: 원핫(One-hot) 인코딩
-
one-hot 인코딩을 사용하여 “sex, pclass, embarked 및 status” 열의 값을 인코딩합니다(힌트: OneHotEncoder 사용).
- 여기에서 OnHot 인코딩이란?
- ‘여자’, ‘남자’처럼 순위도 연속성도 없다면 반드시 다른 의미로의 수치값으로 변환해야 하는데, 그 변환을 OrdinalEncoder 이라고 합니다.
- 여기에서 OrdinalEncoder는 범주형 데이터를 희소행렬(Sparse Matrix)로 그 결과를 반환합니다.
- 다시 이 희소행렬을 OneHot 인코딩을 시키기 위해 아래의 코드를 수행합니다.
- import 는 옆과 같이 작성하면 된다.
from category_encoders import OneHotEncoder
- 여기에서 OnHot 인코딩이란?
-
결과 표시
-
enc = OneHotEncoder(cols = ['sex', 'pclass', 'embarked', 'status'], use_cat_names = True)
dfs = enc.fit_transform(dfs)
dfs
pclass_1.0 | pclass_2.0 | pclass_3.0 | survived | name | sex_female | sex_male | age | sibsp | parch | ... | body | homedest | status_Adult | status_Infant | status_Child | status_Elderly | status_male | status_Teen | status_female | fare_type | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | 0 | 1 | Allen, Miss. Elisabeth Walton | 1 | 0 | 1 | 0 | 0 | ... | ? | St Louis, MO | 1 | 0 | 0 | 0 | 0 | 0 | 0 | president |
1 | 1 | 0 | 0 | 1 | Allison, Master. Hudson Trevor | 0 | 1 | 2 | 1 | 2 | ... | ? | Montreal, PQ / Chesterville, ON | 0 | 1 | 0 | 0 | 0 | 0 | 0 | president |
2 | 1 | 0 | 0 | 0 | Allison, Miss. Helen Loraine | 1 | 0 | 3 | 1 | 2 | ... | ? | Montreal, PQ / Chesterville, ON | 0 | 0 | 1 | 0 | 0 | 0 | 0 | president |
3 | 1 | 0 | 0 | 0 | Allison, Mr. Hudson Joshua Creighton | 0 | 1 | 4 | 1 | 2 | ... | 135 | Montreal, PQ / Chesterville, ON | 1 | 0 | 0 | 0 | 0 | 0 | 0 | president |
4 | 1 | 0 | 0 | 0 | Allison, Mrs. Hudson J C (Bessie Waldo Daniels) | 1 | 0 | 5 | 1 | 2 | ... | ? | Montreal, PQ / Chesterville, ON | 1 | 0 | 0 | 0 | 0 | 0 | 0 | president |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
995 | 0 | 0 | 1 | 0 | Markoff, Mr. Marin | 0 | 1 | 23 | 0 | 0 | ... | ? | ? | 1 | 0 | 0 | 0 | 0 | 0 | 0 | economy |
996 | 0 | 0 | 1 | 0 | Markun, Mr. Johann | 0 | 1 | 33 | 0 | 0 | ... | ? | ? | 1 | 0 | 0 | 0 | 0 | 0 | 0 | economy |
997 | 0 | 0 | 1 | 1 | Masselmani, Mrs. Fatima | 1 | 0 | 16 | 0 | 0 | ... | ? | ? | 0 | 0 | 0 | 0 | 0 | 0 | 1 | economy |
998 | 0 | 0 | 1 | 0 | Matinoff, Mr. Nicola | 0 | 1 | 16 | 0 | 0 | ... | ? | ? | 0 | 0 | 0 | 0 | 1 | 0 | 0 | economy |
999 | 0 | 0 | 1 | 1 | McCarthy, Miss. Catherine 'Katie' | 1 | 0 | 16 | 0 | 0 | ... | ? | ? | 0 | 0 | 0 | 0 | 0 | 0 | 1 | economy |
1000 rows × 28 columns
- (선택 사항) 데이터 분할: 데이터를 학습 및 테스트 데이터 세트로 분할
- 훈련 세트와 테스트 세트가 무엇인지 사전에 읽으십시오(예: 기능이 무엇인지, 대상 레이블이 무엇인지)
- 훈련 세트
- 학습용 데이터
- Classification 은 지도학습 방법의 하나로 학습용 데이터로 학습을 함
- 그냥 함수를 하나 만드는데, 일반적으로는 사람이 짜야 되지만, 기계가 대신 함수를 짜주는거라고 생각하면 되고
- 그 기계가 함수를 짤때, 그냥 맘대로 짜는게 아니라 참조하는 데이터가 있어야 하며, 그 데이터가 학습용 데이터라고 생각하면 편한듯
- 테스트 세트
- 테스트용 데이터
- 학습 데이터로 학습된 모델이 얼마나 뛰어난 성능을 가지는 평가하기 위해 만듬
- 그냥 위에서 기계가 만든 함수의 제대로 된 함수가 맞는지 알아내기 위한 것임
- import
- 이건 분류할때 쓰는거 같고
from sklearn.model_selection import train_test_split
- 이건 학습할때 쓰는거 같음
from sklearn.tree import DecisionTreeClassifier
- 이건 정확도 인가?
from sklearn.metrics import accuracy_score
- 이건 분류할때 쓰는거 같고
- 훈련 세트
- 사전 처리된 데이터 세트를 훈련 세트(80%)와 테스트 세트(20%)로 분할합니다(힌트: train_test_split 사용).
- 훈련 세트와 테스트 세트가 무엇인지 사전에 읽으십시오(예: 기능이 무엇인지, 대상 레이블이 무엇인지)
dfs.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns (total 28 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 pclass_1.0 1000 non-null int64
1 pclass_2.0 1000 non-null int64
2 pclass_3.0 1000 non-null int64
3 survived 1000 non-null int64
4 name 1000 non-null object
5 sex_female 1000 non-null int64
6 sex_male 1000 non-null int64
7 age 1000 non-null int32
8 sibsp 1000 non-null int64
9 parch 1000 non-null int64
10 ticket 1000 non-null object
11 fare 1000 non-null int32
12 cabin 1000 non-null object
13 embarked_S 1000 non-null int64
14 embarked_C 1000 non-null int64
15 embarked_? 1000 non-null int64
16 embarked_Q 1000 non-null int64
17 boat 1000 non-null object
18 body 1000 non-null object
19 homedest 1000 non-null object
20 status_Adult 1000 non-null int64
21 status_Infant 1000 non-null int64
22 status_Child 1000 non-null int64
23 status_Elderly 1000 non-null int64
24 status_male 1000 non-null int64
25 status_Teen 1000 non-null int64
26 status_female 1000 non-null int64
27 fare_type 1000 non-null object
dtypes: int32(2), int64(19), object(7)
memory usage: 211.1+ KB
# 오류가 계속 생겨 object는 제거함
df_x_data = dfs.drop(['age', 'name', 'homedest', 'fare_type', 'ticket', 'cabin', 'boat', 'body'],axis=1)
# y값이면 나이를 예측 해보고자 하는 거 같음
df_y_data = dfs['age']
X_train, X_test, y_train, y_test = train_test_split(df_x_data, df_y_data,
test_size=0.2, random_state=11)
print('X_train')
print(X_train)
print('----------------------------------------------------------')
print('X_test')
print(X_test)
print('----------------------------------------------------------')
print('y_train')
print(y_train)
print('----------------------------------------------------------')
print('y_test')
print(y_test)
print('----------------------------------------------------------')
# DecisionTreeClassifier 객체 생성
dt_clf = DecisionTreeClassifier(random_state=11)
# 학습 수행
dt_clf.fit(X_train, y_train)
# 학습이 완료된 DecisionTreeClassifier 객체에서 테스트 데이터 세트로 예측 수행.
pred = dt_clf.predict(X_test)
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
X_train
pclass_1.0 pclass_2.0 pclass_3.0 survived sex_female sex_male \
832 0 0 1 0 1 0
797 0 0 1 0 0 1
49 1 0 0 1 0 1
867 0 0 1 1 1 0
514 0 1 0 1 0 1
.. ... ... ... ... ... ...
337 0 1 0 1 1 0
91 1 0 0 1 0 1
80 1 0 0 0 0 1
703 0 0 1 0 0 1
921 0 0 1 0 0 1
sibsp parch fare embarked_S embarked_C embarked_? embarked_Q \
832 1 6 211 1 0 0 0
797 0 0 180 0 0 0 1
49 0 1 33 0 1 0 0
867 1 1 219 1 0 0 0
514 1 1 18 1 0 0 0
.. ... ... ... ... ... ... ...
337 1 0 18 1 0 0 0
91 1 0 48 1 0 0 0
80 0 0 3 1 0 0 0
703 0 0 180 0 0 0 1
921 0 0 156 1 0 0 0
status_Adult status_Infant status_Child status_Elderly status_male \
832 1 0 0 0 0
797 1 0 0 0 0
49 1 0 0 0 0
867 1 0 0 0 0
514 0 0 1 0 0
.. ... ... ... ... ...
337 1 0 0 0 0
91 1 0 0 0 0
80 0 0 0 0 1
703 1 0 0 0 0
921 0 0 0 0 1
status_Teen status_female
832 0 0
797 0 0
49 0 0
867 0 0
514 0 0
.. ... ...
337 0 0
91 0 0
80 0 0
703 0 0
921 0 0
[800 rows x 20 columns]
----------------------------------------------------------
X_test
pclass_1.0 pclass_2.0 pclass_3.0 survived sex_female sex_male \
25 1 0 0 0 0 1
464 0 1 0 0 0 1
372 0 1 0 0 0 1
730 0 0 1 0 0 1
757 0 0 1 1 1 0
.. ... ... ... ... ... ...
278 1 0 0 1 0 1
449 0 1 0 1 1 0
221 1 0 0 0 0 1
741 0 0 1 0 0 1
572 0 1 0 1 1 0
sibsp parch fare embarked_S embarked_C embarked_? embarked_Q \
25 0 0 18 0 1 0 0
464 0 0 111 1 0 0 0
372 1 0 18 1 0 0 0
730 0 0 169 1 0 0 0
757 1 0 183 1 0 0 0
.. ... ... ... ... ... ... ...
278 0 0 26 0 1 0 0
449 1 3 121 1 0 0 0
221 0 1 93 0 1 0 0
741 0 0 172 0 1 0 0
572 0 0 149 1 0 0 0
status_Adult status_Infant status_Child status_Elderly status_male \
25 1 0 0 0 0
464 1 0 0 0 0
372 1 0 0 0 0
730 1 0 0 0 0
757 0 0 0 0 0
.. ... ... ... ... ...
278 1 0 0 0 0
449 1 0 0 0 0
221 1 0 0 0 0
741 1 0 0 0 0
572 1 0 0 0 0
status_Teen status_female
25 0 0
464 0 0
372 0 0
730 0 0
757 0 1
.. ... ...
278 0 0
449 0 0
221 0 0
741 0 0
572 0 0
[200 rows x 20 columns]
----------------------------------------------------------
y_train
832 50
797 85
49 19
867 28
514 3
..
337 22
91 46
80 16
703 54
921 16
Name: age, Length: 800, dtype: int32
----------------------------------------------------------
y_test
25 5
464 18
372 1
730 40
757 16
..
278 18
449 48
221 56
741 82
572 24
Name: age, Length: 200, dtype: int32
----------------------------------------------------------
예측 정확도: 0.1900
정확도 0.19라면 엄청 구데기인듯…