해결된 질문
작성
·
180
0
import pandas as pd
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")
train.isnull().sum()
train =train.drop(["name", "host_name", "last_review"], axis=1)
train["reviews_per_month"] = train["reviews_per_month"].fillna(train["reviews_per_month"].mean())
test =test.drop(["name", "host_name", "last_review"], axis=1)
test["reviews_per_month"] = test["reviews_per_month"].fillna(test["reviews_per_month"].mean())
cols = train.select_dtypes(include = "object").columns
from sklearn.preprocessing import LabelEncoder
for col in cols:
le = LabelEncoder()
train[col] = le.fit_transform(train[col])
test[col] = le.transform(test[col])
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train.drop("price", axis =1 ), train["price"], test_size=0.1, random_state=2022)
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor()
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)
pred = rf.predict(test)
submit = pd.DataFrame({"id":test['id'], "price": pred})
submit.to_csv("990906.csv", index=False)
csv를 읽었더니
id price
34323697 259.01
29927138 115.78
이런식으로 price가 소수점으로 나오는데 어디 코드에서 틀린걸까요?
답변 1
0
회귀모델의 예측 결과는 연속형으로 나오는 것이 정상입니다.
즉, 소수점으로 나오는 것이 정상이에요
실제값이 1000원
예측값이 994.5원 이면
오차는 5.5로 계산되는거에요 💪