inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

작업형2 모의문제3 질문있습니다!

해결된 질문

411

화이팅

작성한 질문수 7

0

안녕하세요. 작업형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)

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 1

0

퇴근후딴짓

안녕하세요~

데이터 전처리 중에서

  • 결측치(있다면 필수)

  • 이상치(선택)

  • 인코딩(있다면 필수)

  • 스케일(선택)

스케일링은 베이스라인 모델 (기초 모델)을 만드는데 필수적인 요소는 아니에요! :) 따라서 생략한 부분도 있고

또한 선형회귀와 달리 랜덤포레스트와 같은 트리계열의 모델은 성능향상에 미미한 결과를 얻어 생략한 부분도 있습니다,

수강 연장 가능 여부 문의

0

22

1

강의 구매했는데 교재 필수일까요

0

23

2

수강기간 연장 가부 문의드립니다.

0

21

2

수강기간 연장이 가능한지 양해를 구하며 문의를 드립니다.

0

27

2

작업형2 모의문제2에서 drop이랑 인코딩

0

31

2

인코딩을 다 꼭 해봐야하는지

0

38

2

안녕하세요? 강사님 질문있습니다.(인코딩관련)

0

57

2

이진분류에서 양성 클래스가 0일 때 평가 방법

0

46

2

원핫인코딩 전 train과 test 병합여부

0

50

2

수강기간 연장

0

69

2

29강 작업2형의 이상치 처리

0

65

2

수강기간 연장 문의드립니다!

0

65

2

9월에 실기출제기준 개정내역에 신설된부분

0

55

1

작업형2 모의문제2 결과값 관련 문의드립니다.

0

66

2

12회차 시험 실패 후 13회 도전 예정입니다.

0

55

1

random_state 값

0

73

2

강의 연장 문의 드립니다.

0

67

2

강의 연장 문의

0

61

2

오징어게임

0

70

1

object 컬럼이 여러 개인 경우 인코딩 전처리 방법

1

49

2

데이터 전처리 순서 관련

0

64

2

작업형2 모의문제 데이터 불러오기

0

62

2

강의 연장 부탁드립니다!

0

67

2

수강기간 연장 문의드립니다!

0

66

2