AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

머신러닝 57

아파트 경매 가격 예측 프로젝트 6 : 모델 최적화

1. 데이터 로드import pandas as pdtrain = pd.read_csv('train.csv')test = pd.read_csv('test.csv')result = pd.read_csv('Auction_result.csv')submission = pd.read_csv('sample_submission.csv') 2. 학습(train) 데이터 전처리# year 피처 생성 및 날짜 피처 제거train['Final_auction_date'] = pd.to_datetime(train['Final_auction_date'], errors = 'ignore')train['year'] = train['Final_auction_date'].dt.yeardate_col = ['Appraisal_date', ..

아파트 경매 가격 예측 프로젝트 5 : 단순 회귀 분석

1. 데이터 로드import pandas as pdtrain = pd.read_csv('train.csv')result = pd.read_csv('Auction_result.csv') 2. 데이터 전처리# year 피처 생성 및 날짜 피처 제거train['Final_auction_date'] = pd.to_datetime(train['Final_auction_date'], errors = 'ignore')train['year'] = train['Final_auction_date'].dt.yeardate_col = ['Appraisal_date', 'First_auction_date', 'Final_auction_date', 'Preserve_regist_date', 'Close_date']train = ..

아파트 경매 가격 예측 프로젝트 4 : 데이터 결합

1. 데이터 로드import pandas as pdtrain = pd.read_csv('train.csv')result = pd.read_csv('Auction_result.csv')2. 데이터 전처리# year 피처 생성 및 날짜 피처 제거train['Final_auction_date'] = pd.to_datetime(train['Final_auction_date'], errors = 'ignore')train['year'] = train['Final_auction_date'].dt.yeardate_col = ['Appraisal_date', 'First_auction_date', 'Final_auction_date', 'Preserve_regist_date', 'Close_date']train = t..

아파트 경매 가격 예측 프로젝트 3 : Feature engineering

1. Auction_key 열의 중복된 값 제거result 데이터셋에는 Auction_key 열이 중복값을 갖는 행(row) 데이터가 많이 존재하는데, train과 result 데이터셋을 결합하기 위해 중복된 값을 제거해야만 합니다. 중복을 제거하지 않고 값이 있을만한 데이터를 사용할 경우 예측 성능이 떨어질 것이기 때문에 데이터의 중복을 제거하여 일부를 추출해보겠습니다.drop_duplicates() 메서드는 중복된 값을 가진 행을 제거하여 유일한 값만 담기는 역할을 합니다.기본적으로 첫 번째로 나타나는 중복된 행을 유지하고, 나머지 중복된 행을 제거합니다.주요 매개변수로는 keep이 있습니다. keep은 중복된 값 중 어떤 값을 유지할지 지정하는 역할을 합니다. 기본값인 'first'는 첫 번째로 나..

아파트 경매 가격 예측 프로젝트 2 : EDA

1. 종속변수의 분포 확인import seaborn as snsimport matplotlib.pyplot as pltax = sns.histplot(data=train, x="Hammer_price", bins=100)plt.show() 2. Hammer_price(낙찰가) 와 Auction_count(총 경매 횟수)의 관계 확인fig, ax = plt.subplots(figsize = (10,10))x = train['Auction_count']y = train['Hammer_price']ax.set_xlabel('Auction_count')ax.set_ylabel('Hammer_price')ax.bar(x,y)plt.show() ※ 결과 해석Auction_count가 약 6회 이상일 경우 Hamme..

아파트 경매 가격 예측 프로젝트 1 : 데이터 분석 및 기본 예측

1. 데이터 로드import pandas as pdtrain = pd.read_csv('train.csv')test = pd.read_csv('test.csv')submission = pd.read_csv('sample_submission.csv')result = pd.read_csv('Auction_result.csv') 2. 데이터 확인train.head(5)train.info()result    ※ 결과 해석이번 프로젝트는 가격을 예측하는 문제이므로 회귀문제입니다. 총 41개의 피처가 존재하며 1933개의 행으로 이루어져 있습니다.또한 6개의 피처에는 결측치가 존재합니다. result 에서 Auction_key 열의 값이 1일 때 Appraisal_price(감정가) 값이 감소한 것을 확인할 수 있..

신용카드 사용자 연체 예측 프로젝트 5 : 피처 선택 및 모델 고도화

1. 데이터 로드import pandas as pdimport numpy as nptrain = pd.read_csv('train.csv')test = pd.read_csv('test.csv')submission = pd.read_csv('sample_submission.csv') 2. 검증을 통해 선택한 특성 공학 적용from sklearn.model_selection import train_test_split, StratifiedKFoldfrom sklearn.cluster import KMeans# train 데이터에 대한 특성 공학 수행train['family_size'] = train['family_size'].apply(lambda x: 5 if x >= 6 else x)train['incom..

신용카드 사용자 연체 예측 프로젝트 4 : 특성 공학 및 검증 점수 확인

1. 극단치 대체 및 인코딩# 극단치 대체outlier_employed = train['days_employed'].unique().min()train.loc[(train['days_employed'] == outlier_employed), 'days_employed'] = 0test.loc[(test['days_employed'] == outlier_employed), 'days_employed'] = 0# 이진 범주형 값 인코딩binary_col = ['gender', 'car', 'reality']for column in binary_col: unique_values = train[column].unique() value_mapping = {value: idx for idx, value ..

신용카드 사용자 연체 예측 프로젝트 3 : 데이터 인코딩

1. 데이터 로드import pandas as pdimport numpy as nptrain = pd.read_csv('train.csv')test = pd.read_csv('test.csv') 2. 일자 관련 피처 처리 및 결측치 처리 결과 확인job_type 칼럼의 결측값을 문자열 'nan'으로 대체minus_col 리스트에 있는 피처들의 값들은 모두 음수에서 양수로 변환days_birth 피처를 사용해서 나이를 계산하고, 이 값을 새로운 피처 age에 저장job_type의 값이 'nan'이면서 income_type이 'Pensioner'인 고객들의 job_type 값을 'No job'으로 대체job_type 값이 'nan'인 각 행에 대해, 해당 행의 income_total 값과 각 job_type..

신용카드 사용자 연체 예측 프로젝트 2 : 범주형 변수 EDA 및 결측값 대체

1. 데이터 로드import pandas as pdimport numpy as np# 시각화 라이브러리import seaborn as snsimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfe = fm.FontEntry(fname = 'MaruBuri-Regular.otf', name = 'MaruBuri')fm.fontManager.ttflist.insert(0, fe)plt.rc('font', family='MaruBuri')train = pd.read_csv('train.csv')test = pd.read_csv('test.csv')train.head(5) 2. credit별 범주형 변수의 분포 확인# 각 credit별 데이터프..