오늘은 새로운 교수님과 진도를 함께 하였습니다.
먼저 파이썬 3.11 버전을 사용하셨고,
"파이참"이라는 프로그램을 사용하셨습니다.
파이참 안에서의 라이브러리는
numpy 1.26.4 버전, matplotlib 3.9.1버전, pandas 2.2.2버전, tensorflow 2.17.0, scikit-learn, beautifulsoup4 4.12.3버전을 다운받았습니다.
인공지능 파트를 새롭게 나가다 보니 매우 낯설고 어려웠습니다.
하지만 그래도 열심히 해보아요...ㅎ
numpy를 이용하여 배열 형태로 나타내는 방법
a:np.ndarray = np.array(object=[1, 2, 3])
print(a)
print(type(a))
b = np.array([1, 2, 3, 4, 5, 6, 7.0, 8, 9, 10])
print(b)
print(type(b))
결과
1 2 3
결과
[1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ]
파이썬은 컴마로 구분하고, 리스트 연산자, 파이썬 자료형으로 되어있습니다.
넘파이는 띄어쓰기로 구분하는 게 차이입니다.
Titanic 생존자 예측
import pandas as pd
import seaborn as sns
titanic = sns.load_dataset(name='titanic')
print(titanic)
print(titanic.shape)
titanic.to_csv(path_or_buf='titanic.csv', index=False) // csv 파일로 저장

필요한 데이터만 추출하기 위해 데이터 전처리 (결측갑을 대체)
# 결측치가 있는 각 열의 수를 출력
print(titanic.isnull().sum())
# 'age' 열의 데이터를 출력
print(titanic['age'])
# 'age' 열의 결측치를 해당 열의 중앙값으로 대체
titanic['age'] = titanic['age'].fillna(value=titanic['age'].median())
# 결측치를 대체한 후의 'age' 열 데이터를 출력
print(titanic['age'])
# 'embarked' 열의 각 값의 개수를 세어 출력
print(titanic['embarked'].value_counts())
# 'embarked' 열의 결측치를 'S'로 대체
titanic['embarked'] = titanic['embarked'].fillna(value='S')
# 결측치를 대체한 후의 'embarked' 열 데이터를 출력
print(titanic['embarked'])
# 'embark_town' 열의 데이터를 출력
print(titanic['embark_town'])
# 'embark_town' 열의 각 값의 개수를 세어 출력
print(titanic['embark_town'].value_counts())
# 'embark_town' 열의 결측치를 'Southampton'으로 대체
titanic['embark_town'] = titanic['embark_town'].fillna(value='Southampton')
# 결측치를 대체한 후의 'embark_town' 열 데이터를 출력
print(f"titanic['embark_town'] :\r\n{titanic['embark_town']}")
# 'deck' 열의 각 값의 개수를 세어 출력
titanic['deck'].value_counts()
# 'deck' 열의 데이터를 출력
print(titanic['deck'])
# 'deck' 열의 결측치를 'C'로 대체
titanic['deck'] = titanic['deck'].fillna(value='C')
# 결측치를 대체한 후의 'deck' 열 데이터를 출력
print(titanic['deck'])
# 모든 열의 결측치 수를 다시 출력
print(titanic.isnull().sum())
# 데이터프레임의 정보(열의 데이터 타입, 결측치 수 등)를 출력
print(titanic.info())
시각화
import matplotlib.pyplot as plt
# 1행 2열의 서브플롯을 생성하고, 크기를 (10, 5)로 설정
(f, ax) = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
# 남성 생존자 수를 파이 차트로 시각화
# 'sex'가 'male'인 경우의 'survived' 값의 개수를 세어 파이 차트로 그리기
titanic['survived'][titanic['sex'] == 'male'].value_counts().plot.pie(
explode=[0, 0.1], # 첫 번째 조각(0)은 폭발하지 않고, 두 번째 조각(1)은 약간 폭발
autopct='%1.1f%%', # 각 조각의 비율을 소수점 첫째 자리까지 표시
ax=ax[0], # 첫 번째 서브플롯에 그리기
shadow=True # 그림자 효과 추가
)
# 여성 생존자 수를 파이 차트로 시각화
# 'sex'가 'female'인 경우의 'survived' 값의 개수를 세어 파이 차트로 그리기
titanic['survived'][titanic['sex'] == 'female'].value_counts().plot.pie(
explode=[0, 0.1], # 첫 번째 조각(0)은 폭발하지 않고, 두 번째 조각(1)은 약간 폭발
autopct='%1.1f%%>', # 각 조각의 비율을 소수점 첫째 자리까지 표시
ax=ax[1], # 두 번째 서브플롯에 그리기
shadow=True # 그림자 효과 추가
)
# 첫 번째 서브플롯의 제목 설정
ax[0].set_title('Survived(Male)')
# 두 번째 서브플롯의 제목 설정
ax[1].set_title('Survived(FeMale)')
# 생성된 파이 차트를 화면에 표시
plt.show()
상관계수 구하기
# Titanic 데이터프레임(titanic2)의 상관계수를 피어슨 방법으로 계산
titanic_corr = titanic2.corr(method='pearson')
# 계산된 상관계수 행렬을 출력
print(titanic_corr)
# 상관계수 행렬의 형태(행과 열의 수)를 출력
print(titanic_corr.shape)
# 상관계수 행렬을 CSV 파일로 저장 (엑셀에서 읽을 수 있도록)
titanic_corr.to_csv('Titanic_corr.csv', index=False)
# 성인 남자의 생존률과 'survived' 열 간의 상관계수를 계산하여 출력
# f-string을 사용하여 출력 형식을 지정
print(f"성인남자의 생존률 : {titanic['survived'].corr(titanic['adult_male'])}")
# 뱃값(fare)과 생존률(survived) 간의 상관계수를 계산하여 출력
print(f"뱃값의 생존률 : {titanic['survived'].corr(titanic['fare'])}")
맨 뒷자리에 앉다 보니 교수님의 목소리가 잘 안 들렸다는..
그래도 여러 사람들에게 질문하며 극복하겠습니다...

'ABC 부트캠프' 카테고리의 다른 글
[20일차] ABC 부트캠프 인공지능_3 (0) | 2024.08.02 |
---|---|
[19일차] ABC 부트캠프 인공지능_2 (0) | 2024.07.31 |
[17일차] ABC 부트캠프_건양대학교 메디컬 캠퍼스 견학 (0) | 2024.07.28 |
[16일차] ABC 부트캠프_조별 프로젝트 (0) | 2024.07.28 |
[13일차] ABC 부트캠프_동적 크롤링 (2) | 2024.07.22 |