pyhon 進階分析 - 3.2 LightGBM 迴歸 | Target Encoding 轉換 ( LGBMRegressor in python)

Поделиться
HTML-код
  • Опубликовано: 3 фев 2025

Комментарии • 1

  • @play_data
    @play_data  7 месяцев назад +1

    import numpy as np
    import pandas as pd
    from sklearn.metrics import make_scorer, r2_score, mean_absolute_error, mean_absolute_percentage_error
    #import sys
    #sys.path.append('C:/Users/user/Desktop/資料分析/3. 推論分析/機器學習/集成學習')
    from LGB import LightGBM
    import warnings
    warnings.filterwarnings('ignore')
    '資料載入 : 台北房價預測(~2020年Q1),面積單位 = 平方公尺'
    df = pd.read_csv('./taipei_city_real_estate_transaction_v2.csv', encoding='utf-8',header=0)
    df.columns = ['行政區','物件種類','土地轉移面積','土地種類','土地用途',
    '建材','完工年(民國)','建物轉移面積','房號','廳號','廁所號',
    '是否分區','是否含管理','總價','每平方公尺價','車位種類',
    '車位面積','車位價格','交易年','交易月','完工年(西元)',
    '土地交易數量','建物交易數量','車位交易數量']
    df['屋齡'] = df['交易年'] - df['完工年(西元)']
    train = df.loc[df['物件種類']=='Premises (land + building)']
    'Target Encoding'
    行政區 = train.groupby(["行政區"])['總價'].mean().reset_index().rename(columns={'總價': '行政區_總價'})
    土地種類 = train.groupby(["土地種類"])['總價'].mean().reset_index().rename(columns={'總價': '土地種類_總價'})
    土地用途 = train.groupby(["土地用途"])['總價'].mean().reset_index().rename(columns={'總價': '土地用途_總價'})
    建材 = train.groupby(["建材"])['總價'].mean().reset_index().rename(columns={'總價': '建材_總價'})
    是否分區 = train.groupby(["是否分區"])['總價'].mean().reset_index().rename(columns={'總價': '是否分區_總價'})
    是否含管理 = train.groupby(["是否含管理"])['總價'].mean().reset_index().rename(columns={'總價': '是否含管理_總價'})
    train = pd.merge(train, 行政區, on="行政區",how='inner')
    train = pd.merge(train, 土地種類, on="土地種類",how='inner')
    train = pd.merge(train, 土地用途, on="土地用途",how='inner')
    train = pd.merge(train, 建材, on="建材",how='inner')
    train = pd.merge(train, 是否分區, on="是否分區",how='inner')
    train = pd.merge(train, 是否含管理, on="是否含管理",how='inner')