10-2. 머신러닝 프로젝트
이번 시간에는 머신러닝 프로젝트를 진행해 보겠습니다.
Airbnb(New York City)
- 미국 NYC Airbnb 목록(2019)
- 프로젝트 목적: 가격 예측(price)
- 제공 데이터(3개): train.csv, test.csv, y_test(최종 채점용)
- 평가 방식: MSE (평균제곱오차/ 실제 값과 예측 값 차이 ->제곱해 평균)
<참고> : 6. 지도학습(회귀) 노드의 6-8. 평가(회귀) 스텝에서 복습하실 수 있습니다. - 데이터 출처 바로가기 / License CC0: Public Domain
이제부터 본격적으로 프로젝트를 시작해 봅시다. 이미 배웠던 내용을 복습하는 것이니 지금까지 학습을 충실히 하셨던 분들은 쉽게 해결하실 수 있을 거에요.
그럼 시작해 볼까요? 🤩
1. Baseline
라이브러리와 데이터 불러오기
실행 완료
실행 완료
2. EDA(탐색적 데이터 분석)
탐색적으로 데이터 살펴보기
실행 완료
[4]:
((39116, 16), (9779, 15))
실행 완료
idnamehost_idhost_nameneighbourhood_groupneighbourhoodlatitudelongituderoom_typepriceminimum_nightsnumber_of_reviewslast_reviewreviews_per_monthcalculated_host_listings_countavailability_36501
14963583 | Room in South Harlem near Central Park | 94219511 | Gilles | Manhattan | Harlem | 40.80167 | -73.95781 | Private room | 70 | 3 | 3 | 2019-01-01 | 0.09 | 2 | 0 |
9458704 | Large 1BR Apartment, near Times Sq (2nd Floor) | 49015331 | Iradj | Manhattan | Hell's Kitchen | 40.76037 | -73.99016 | Entire home/apt | 240 | 2 | 64 | 2019-06-30 | 1.68 | 2 | 262 |
idnamehost_idhost_nameneighbourhood_groupneighbourhoodlatitudelongituderoom_typeminimum_nightsnumber_of_reviewslast_reviewreviews_per_monthcalculated_host_listings_countavailability_36501
30913224 | Cozy and Sunny Room Williamsburg, Luxury Building | 33771081 | Rémy | Brooklyn | Williamsburg | 40.70959 | -73.94652 | Private room | 3 | 2 | 2019-05-08 | 0.31 | 1 | 0 |
971247 | Sunny Artist Live/Work Apartment | 5308961 | Larry | Manhattan | Upper West Side | 40.79368 | -73.96487 | Entire home/apt | 3 | 159 | 2019-07-03 | 2.09 | 1 | 244 |
실행 완료
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 39116 entries, 0 to 39115
Data columns (total 16 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 id 39116 non-null int64
1 name 39104 non-null object
2 host_id 39116 non-null int64
3 host_name 39099 non-null object
4 neighbourhood_group 39116 non-null object
5 neighbourhood 39116 non-null object
6 latitude 39116 non-null float64
7 longitude 39116 non-null float64
8 room_type 39116 non-null object
9 price 39116 non-null int64
10 minimum_nights 39116 non-null int64
11 number_of_reviews 39116 non-null int64
12 last_review 31122 non-null object
13 reviews_per_month 31122 non-null float64
14 calculated_host_listings_count 39116 non-null int64
15 availability_365 39116 non-null int64
dtypes: float64(3), int64(7), object(6)
memory usage: 4.8+ MB
실행 완료
[7]:
id 0
name 12
host_id 0
host_name 17
neighbourhood_group 0
neighbourhood 0
latitude 0
longitude 0
room_type 0
price 0
minimum_nights 0
number_of_reviews 0
last_review 7994
reviews_per_month 7994
calculated_host_listings_count 0
availability_365 0
dtype: int64
실행 완료
[8]:
id 0
name 4
host_id 0
host_name 4
neighbourhood_group 0
neighbourhood 0
latitude 0
longitude 0
room_type 0
minimum_nights 0
number_of_reviews 0
last_review 2058
reviews_per_month 2058
calculated_host_listings_count 0
availability_365 0
dtype: int64
실행 완료
[9]:
<AxesSubplot:>

실행 완료
[10]:
count 39116.000000
mean 152.751150
std 241.752501
min 0.000000
25% 69.000000
50% 105.000000
75% 175.000000
max 10000.000000
Name: price, dtype: float64
실행 완료
[11]:
219517861 256
107434423 181
30283594 99
137358866 82
12243051 80
...
73369106 1
26620387 1
176660539 1
26004891 1
2609535 1
Name: host_id, Length: 30845, dtype: int64
3. 데이터 전처리
데이터를 살펴보고 판단하여 결측치 및 이상치를 처리
실행 완료
실행 완료
실행 완료
실행 완료
실행 완료
4. 검증 데이터 분리
Train 데이터로 학습(훈련), Validation(검증용) 데이터로 예측
실행 완료
5. 머신러닝
<참고> : 6. 지도학습(회귀) 노드에서 프로젝트에 활용된 회귀 모델을 복습하실 수 있습니다.
실행 완료
실행 완료
실행 완료
실행 완료
실행 완료
실행 완료
6. 채점
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/3615522927.py in <module>
3
4 # Xgboost
----> 5 pred = model.predict(test)
6 mean_squared_error(y_test, pred)
NameError: name 'model' is not defined
실행 완료
나의 점수는 (MSE #[[YOURE CODE]])입니다.