작업형2 모의문제3 질문있습니다!
안녕하세요. 작업형2 모의문제3(에어비엔비 가격)을 직접 풀었을 아래와 같이 입력했습니다.
저는 minmax_scale을 사용했고, 선생님께서 입력하신 결과와 비교를 하는데 사용하지 않았다는 것을 알게되었고 결과값도 다르게 나왔습니다.
작업형 2유형 문제를 풀때마다 스케일링을 적용하고 있는데, minmax스케일을 하는 경우와 사용하지 않는 경우가 따로 있나요? 있다면 어떻게 구분할 수 있는지 궁금합니다.
그리고 위 문제에서 적용 안하신 자세한 이유도 궁금합니다.
감사합니다!
import pandas as pd
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
# print(train.head())
# print(test.head())
# print(train.info())
# print(test.info())
train = train.drop(columns = 'id')
test_id = test.pop('id')
train = train.drop(columns = 'name')
test = test.drop(columns = 'name')
train = train.drop(columns = 'host_id')
test = test.drop(columns = 'host_id')
train = train.drop(columns = 'host_name')
test = test.drop(columns = 'host_name')
train = train.drop(columns = 'neighbourhood')
test = test.drop(columns = 'neighbourhood')
train = train.drop(columns = 'neighbourhood_group')
test = test.drop(columns = 'neighbourhood_group')
train = train.drop(columns = 'last_review')
test = test.drop(columns = 'last_review')
# print(train.info())
# print(test.info())
# print(train.isnull().sum())
# print(test.isnull().sum())
#last_review, reviews_per_month
train['reviews_per_month'] = train['reviews_per_month'].fillna(0)
test['reviews_per_month'] = test['reviews_per_month'].fillna(0)
# print(train.isnull().sum())
# print(test.isnull().sum())
# print(train.info()) room_type,last_review
# print(test.info())
from sklearn.preprocessing import LabelEncoder
cols = train.select_dtypes(include = 'object').columns
for col in cols:
encoder = LabelEncoder()
train[col] = encoder.fit_transform(train[col])
test[col] = encoder.transform(test[col])
# print(train.describe())
# print(test.describe())
from sklearn.preprocessing import minmax_scale
cols2 = train.select_dtypes(exclude = 'object').columns
for col in cols2:
train[col] = minmax_scale(train[col])
cols3 = test.select_dtypes(exclude = 'object').columns
for col in cols3:
test[col] = minmax_scale(test[col])
# print(train.describe())
# print(test.describe())
# print(train.info())
# print(test.info())
from sklearn.model_selection import train_test_split
X_train, X_val, y_train, y_val = train_test_split(train.drop('price', axis = 1), train['price'], test_size=0.2, random_state = 20)
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor()
rf.fit(X_train, y_train)
pred_val = rf.predict(X_val)
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
# print(mean_squared_error(y_val, pred_val))
# print(mean_absolute_error(y_val, pred_val))
# print(r2_score(y_val, pred_val))
pred = rf.predict(test)
pd.DataFrame({'id': test_id, 'price': pred}).to_csv('5959.csv', index=False)
답변 1
0
안녕하세요~
데이터 전처리 중에서
결측치(있다면 필수)
이상치(선택)
인코딩(있다면 필수)
스케일(선택)
스케일링은 베이스라인 모델 (기초 모델)을 만드는데 필수적인 요소는 아니에요! :) 따라서 생략한 부분도 있고
또한 선형회귀와 달리 랜덤포레스트와 같은 트리계열의 모델은 성능향상에 미미한 결과를 얻어 생략한 부분도 있습니다,
평가지표 F1 스코어 질문드립니다.
0
9
2
작업형 2 기출7회분에서
0
23
2
작업형2 모의문제1 (30강)
0
25
2
수강 기간 연장 문의 드립니다.
0
31
2
수강 계획과 관련해 문의 드립니다.
0
26
2
작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?
0
49
2
작업형 1 -연습문제 4-6
0
35
2
작업형 1 유형 부분
0
42
2
작업형 1 (삭제예정, 구 버전)
0
51
2
수강기간 연장 문의드립니다.
0
37
2
2유형 레이블 인코딩 VS 원핫 인코딩
0
37
3
수강기간 연장 문의드립니다.
0
44
2
인덱스 슬라이싱
0
36
2
질문 드립니다.
0
50
2
강의 내용 관련 질문드립니다~
0
46
2
수강 연장 문의
0
63
2
강의자료 일괄 다운로드
0
58
2
수강기간 연장 문의드립니다
0
48
2
list 문제 질문드립니다~
0
38
2
빅분기 실기 12회 재도전
0
63
2
강의 기간 연장 가능여부 검토 요청건
0
51
2
수강기간 연장 문의 드립니다
0
46
2
수강기간 연장 문의드립니다
0
52
2
질문이요
0
57
2





