Loading the catalog…
Loading the catalog…
중고차 가격 예측: Decision Tree · Random Forest 1. 라이브러리 불러오기 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeRegressor from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import root_mean_squared_error 2. 데이터 불러오기 file_path = "/데이터가_있는_폴더/car_data.csv" df = pd.read_csv(file_path) df.head() 3. 데이터 전처리 # 차량 이름은 종류가 많으므로 제거 car_df = df.drop(columns="Car_Name") # 주행거리 이상치 제거 car_df = car_df[car_df["Kms_Driven"] < 100000].copy() # 연식(Year)을 차량 나이(Vehicle_Age)로 변환 car_df["Vehicle_Age"] = 2020 - car_df["Year"] car_df = car_df.drop(columns="Year") # CNG 차량 데이터 제거 car_df = car_df[car_df["Fuel_Type"] != "CNG"].copy() # 범주형 데이터를 숫자형으로 변환 car_df = pd.get_dummies( car_df, columns=["Fuel_Type", "Seller_Type", "Transmission"], drop_first=True, dtype=int ) car_df.head() 4. 입력 데이터와 정답 데이터 분리 X : 가격 예측에 사용할 입력 정보 y : 예측할 정답값인 판매 가격 X = car_df.drop(columns="Selling_Price") y = car_df["Selling_Price"] 5. 학습 데이터와 테스트 데이터 분리 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=2026 ) 6. 결정 트리 모델 tree_model = DecisionTreeRegressor( max_depth=6, min_samples_leaf=5, random_state=2026 ) tree_model.fit(X_train, y_train) tree_pred = tree_model.predict(X_test) tree_rmse = root_mean_squared_error(y_test, tree_pred) print(f"결정 트리 RMSE: {tree_rmse:.3f}") 7. 랜덤 포레스트 모델 rf_model = RandomForestRegressor( n_estimators=200, random_state=2026 ) rf_model.fit(X_train, y_train) rf_pred = rf_model.predict(X_test) rf_rmse = root_mean_squared_error(y_test, rf_pred) print(f"랜덤 포레스트 RMSE: {rf_rmse:.3f}") 8. 실제 가격과 예측 가격 비교 빨간 선에 가까울수록 실제 판매 가격과 예측 가격이 비슷하다는 의미입니다. sns.scatterplot(x=y_test, y=rf_pred) plt.plot( [y_test.min(), y_test.max()], [y_test.min(), y_test.max()], color="red" ) plt.xlabel("실제 판매 가격") plt.ylabel("예측 판매 가격") plt.show() 9. 변수 중요도 확인 랜덤 포레스트가 가격을 예측할 때 어떤 변수를 중요하게 사용했는지 확인합니다. feature_importance = pd.DataFrame({ "feature": X.columns, "importance": rf_model.feature_importances_ }).sort_values("importance", ascending=False) print(feature_importance) sns.barplot( data=feature_importance, x="importance", y="feature" ) plt.title("변수 중요도") plt.show() 결과 해석 RMSE 가 작을수록 예측 오차가 작습니다. 결정 트리는 한 개의 나무로 예측합니다. 랜덤 포레스트는 여러 결정 트리의 예측을 평균 내므로 일반적으로 더 안정적입니다. 트리 기반 모델은 입력 데이터의 스케일링이 필수는 아닙니다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
DecisiomTree, RandomForest 정리. 중고차 가격 예측: Decision Tree · Random Forest 1. 라이브러리 불러오기 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeRegressor from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import root_mean_squared_error 2. 데이터 불러오기 file_path =…
Open source