본문 바로가기
AI

Day66_Ai(4)_Am

by roaring90s 2025. 10. 30.

quiz1

import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, StandardScaler

passengers = pd.read_csv('titanic_data.csv')
passengers.info()
print(passengers['Pclass'].values)
#등급에 따른 범주형 데이터 / one hot code 구분력을 높이기 위해 한다.

dummies = pd.get_dummies((passengers['Pclass']))
print(dummies)

del passengers['Pclass']
passengers = pd.concat([passengers, dummies], axis=1, join='inner')
#join='inner' 은 하나라도 매칭되지 않는 항목이 있으면 그건 삭제를 하겠다

#========이름 바꾸기========
#1 => first class, 2=> second class, 3=> etc class
passengers.rename(columns={1:'FirstClass', 2:'SecondClass',3:'EtcClass'}, inplace=True)
passengers.info()

#======== age 누락된 데이터를 채워넣기 ==========
passengers['Age'].fillna(passengers['Age'].mean(), inplace=True)
passengers.info()

#======== 성별을 male= 0 female = 1 으로 바꾸기========
passengers.Sex = passengers.Sex.map({'male':0, 'female':1})
print(passengers.Sex)
#map = 리스트나 튜플 같은 데이터의 각 요소에 “같은 함수”를 적용해서 새로운 결과를 만들어준다.
#       pandas 에서는 딕셔너리 매핑까지 가능하다.


#==================================================
features = passengers[['Sex','Age','FirstClass','SecondClass','EtcClass']]
target = passengers[['Survived']]


x_train, x_test, y_train, y_test = train_test_split(features, target, random_state=42)

scaler = StandardScaler()
scaler.fit(x_train)
x_train_scaled = scaler.transform(x_train)
x_test_scaled = scaler.transform(x_test)

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(x_train_scaled, y_train)

print('train data accuracy:', model.score(x_train_scaled, y_train))
print('test data accuracy:', model.score(x_test_scaled, y_test))

#==============================================================

import numpy as np

kim = np.array([0.0, 20.0, 0.0, 0.0, 1.0])
hyo = np.array([1.0, 17.0, 1.0, 0.0, 0.0])
choi = np.array([0.0, 32.0, 0.0, 1.0, 0.0])

sample_passengers = np.array([kim, hyo, choi])
sample_passengers_scaled = scaler.transform((sample_passengers))
print(sample_passengers_scaled)
survive_predict = model.predict(sample_passengers_scaled)
for name, survive in zip(['kim', 'hyo', 'choi'], survive_predict):
    print(f'{name:5} 생존예측 : {"생존" if survive else "사망"}')

'AI' 카테고리의 다른 글

Day66_Ai(4)_Pm  (0) 2025.10.30
Day66_Ai(4)_Pm / 딥러닝전 설치  (0) 2025.10.30
Day65_Ai(3)_Pm  (0) 2025.10.29
Day65_Ai(3)_Am  (0) 2025.10.29
Day64_Ai(2)_Pm  (0) 2025.10.28