2023.04.15 - [IT/Data 분석] - [우주선 생존] 분석 9회차
독립변수를 확인하는게 보통 1~2 단계에서 해야할텐데, 돌고 돌아 블로그 10회차에서 1 단계로 다시 돌아왔다.
각각의 독립변수를 한번 음미해보고자 한다.
총 13개의 독립변수가 있다.(Transported 는 우리가 확인하고자 하는 목표 즉 종속 변수이기에 train.csv 에는 존재하지만 test.csv 에는 존재하지 않는다. 그래서 아래의 행 갯수에서는 14개지만 독립변수는 13개가 된다)
train_df.columns
Index(['PassengerId', 'HomePlanet', 'CryoSleep', 'Cabin', 'Destination', 'Age',
'VIP', 'RoomService', 'FoodCourt', 'ShoppingMall', 'Spa', 'VRDeck',
'Name', 'Transported'],
dtype='object')
train_df.PassengerId.head()
0 0001_01
1 0002_01
2 0003_01
3 0003_02
4 0004_01
Name: PassengerId, dtype: object
규칙성을 갖고 있는 듯 보이는 숫자이지만 '_' 로 인해 object의 타입이다.
_ 를 제거하여 숫자형으로 바꿀 수는 있겠지만 특성을 분석을 하기 위해서는 다른 독립변수와도 함께 보아야 하겠지만 숫자형 데이터라기 보다는 카테고리 또는 범주를 나타내는 형태의 변수로 판단이 된다.
_ 를 제거하고 숫자형으로 형을 변환하게 된다면 앞의 000 이라는 숫자를 처리할 수 없기에 101, 201, 301, 302, 401 등으로 변환이 되는 일까지 생길 것이다.
또한 문득 0003_01, 0003_02 등으로 0003 이라는 숫자가 어떤 묶음을 의미한다고 느껴진다.
문득 가족이거나 함께 예약한 동행자의 묶음이 아니였을까 하는 생각이 든다.
숫자로 변경할 경우 그 숫자가 어떤 의미가 될까?
(0001_01 PassengerId를 갖는 사람의 이름은 "Maham Ofracculy" 이며 차원 이동 여부는 False 이다)
0001_01 를 갖고 있었던 Maham Ofracculy 의 PassengerId 가 101이 된다.
이 숫자 자체가 우주의 차원을 이동을 하지 못한 것 과의 관련이 있을까?
문득 생각했을 때에는 관련이 없을 것 같다.
train_df['PID'] = train_df['PassengerId'].apply(lambda x: x.replace('_',''))
train_df=train_df.astype({'PID':'int64'})
print(f"{train_df[['PassengerId','Name','PID']].head(30)}")
PassengerId Name PID
0 0001_01 Maham Ofracculy 101
1 0002_01 Juanna Vines 201
2 0003_01 Altark Susent 301
3 0003_02 Solam Susent 302
4 0004_01 Willy Santantines 401
5 0005_01 Sandie Hinetthews 501
6 0006_01 Billex Jacostaffey 601
7 0006_02 Candra Jacostaffey 602
8 0007_01 Andona Beston 701
9 0008_01 Erraiam Flatic 801
10 0008_02 Altardr Flatic 802
11 0008_03 Wezena Flatic 803
12 0009_01 Berers Barne 901
13 0010_01 Reney Baketton 1001
14 0011_01 Elle Bertsontry 1101
15 0012_01 Justie Pooles 1201
16 0014_01 Flats Eccle 1401
17 0015_01 Carry Hughriend 1501
18 0016_01 Alus Upead 1601
19 0017_01 Lyde Brighttt 1701
20 0017_02 Philda Brighttt 1702
21 0020_01 Almary Brantuarez 2001
22 0020_02 Glendy Brantuarez 2002
23 0020_03 Mollen Mcfaddennon 2003
24 0020_04 Breney Jacostanley 2004
25 0020_05 Mael Brantuarez 2005
26 0020_06 Terta Mcfaddennon 2006
27 0022_01 NaN 2201
28 0024_01 Penton Fullided 2401
29 0025_01 Karard Brookenson 2501
21 ~ 26을 보면 가족만으로 묶여있지 않다는 것을 알 수 있다.
아무래도 가족이거나, 동행이거나, 출발지가 같은 사람들을 묶은 것 같다.
이 숫자가 차원을 이동하는 것과 얼마만큼의 상관이 있을까?
train_df[['Transported','PID']].corr()
Transported | PID | |
Transported | 1.000000 | 0.021491 |
PID | 0.021491 | 1.000000 |
상관계수는 1에 가까울 수록 (1은 이상적인 수치지만) 높은 상관관계가 있다고 말한다.
0.1 이하는 거의 상관관계가 없는 수준이라고 한다.
차원을 이동하는 것과 PID 간에는 거의 관계가 없다고 볼 수 있다.
산점도 그래프를 한번 살펴 보자.
plt.scatter(train_df['PID'],train_df['Transported'])
2 1 -2 0
bool 을 사용하는 True 와 False 는 숫자와 연산이 가능함 즉 논리형으로써 참 거짓을 구별하지만 숫자형태로써도 사용할 수 있기 때문이다.
산점도를 통해 선형적인 모양을 보고자 하였으나 0(False) 과 1(True) 라는 극명한 그래프를 확인할 수 있었다.
어쩌면 bool 타입에 대한 산점도를 보려고 했었던 것이 애시당초 큰 의미가 없었음을 생각해본다.
그래 현재 단계에서는 뚜렷하게 생각이 안든다. 피곤하기도 하고 지식도 부족하고 말이야.
몇 가지 확실한 것은
1. 어쩌면 그 묶음이 차원 이동에 상관이 있거나 없을 수 있다는 점
2. PassengerId와 Transported(bool type) 을 그래프로 나타내기에는 산점도는 적절하지 않다는 점
3. 숫자로 보일 수 있으나 연속적인 숫자가 어떤 묶음을 의미하는 분류 또는 카테고리 형태 일 것이라는 점
그래 곤하다..자고 공부하자 맑은 정신으로
'IT > Data 분석' 카테고리의 다른 글
[차원 이동] 분석 12회차[독립변수 파악3] (0) | 2023.05.13 |
---|---|
[차원 이동] 분석 11회차[독립변수 파악2] (0) | 2023.04.27 |
[우주선 생존] 분석 9회차 (0) | 2023.04.15 |
[우주선 생존] 분석 8회차 (0) | 2023.04.11 |
[우주선 생존] 분석 7회차 (0) | 2023.04.10 |