장래 프로그래머의 블로그

2024.10.16 TIL 본문

Today I Learned

2024.10.16 TIL

wriml92 2024. 10. 16. 20:11

바닥부터 시작하는 머신러닝 강의 2회독 완료

오늘은 머신러닝 2주차 문제은행 풀기로 정리한다.

 

1. PurchaseAmount, CustomerAge, CustomerGender, ReviewScore 열의 결측값을 적절히 처리하세요.

# PurchaseAmount 열의 np.nan 값을 평균값으로 대체
df['PurchaseAmount'] = df['PurchaseAmount'].mean())
# CustomerAge 열의 np.nan 값을 평균값으로 대체
df['CustomerAge'] = df['CustomerAge'].fillna(df['CustomerAge'].mean())
# CustomerGender 열의 np.nan 값을 최빈값으로 대체
df['CustomerGender'] = df['CustomerGender'].fillna(df['CustomerGender'].mode()[0])
# ReviewScore 열의 np.nan 값을 평균값으로 대체
df['ReviewScore'] = df['ReviewScore'].fillna(df['ReviewScore'].mean())

 

2. PurchaseAmount 열에서 비정상적으로 큰 값과 음수 값을 처리하세요.

# PurchaseAmount 열의 음수 값 제거
df = df[df['PurchaseAmount']>=0]
# PurchaseAmount 열의 너무 큰 값 제거 (예: 10,000 이상)
df = df[df['PurchaseAmount']<10000]

 

3. 중복된 TransactionID가 있는 경우 제거하세요.

# 중복된 행 제거
df = df.drop_duplicates(subset='TransactionID')

 

4. PurchaseDate 열의 데이터 타입을 날짜 형식으로 변환하세요.

# 문자열에서 datetime 자료형으로 변환
df['PurchaseDate'] = pd.to_datetime(df['PurchaseDate'])

 

5. PurchaseAmount 열을 정규화하세요.

# 스케일을 조정하는 정규화 함수 MinMaxScaler
scaler = MinMaxScaler()
# 정규화 대상 PurchaseAmount 열 입력
df['PurchaseAmount'] = scaler.fit_transform(df[['PurchaseAmount']])

 

6. ProductCategoryCustomerGender 열을 인코딩하세요.

# 카테고리형 데이터를 수치형으로 변환
encoder = LabelEncoder()
df['ProductCategory'] = encoder.fit_transform(df['ProductCategory'])
df['CustomerGender'] = encoder.fit_transform(df['CustomerGender'])

 

7. 데이터를 무작위로 샘플링하세요.

# DateFrame에서 무작위 표본 추출
sampled_df = df.sample(n=5, random_state=42)

'Today I Learned' 카테고리의 다른 글

2024.10.15 TIL  (0) 2024.10.15
2024.10.14 TIL  (0) 2024.10.14
2024.10.13 TIL  (0) 2024.10.13
2024.10.12 TIL  (0) 2024.10.12
2024.10.11 TIL  (0) 2024.10.11