ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
生活随笔
收集整理的這篇文章主要介紹了
ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ML之FE:對爬取的某平臺二手房數據進行數據分析以及特征工程處理
?
?
目錄
對爬取的某平臺二手房數據進行數據分析以及特征工程處理
1、定義數據集
2、特征工程(數據分析+數據處理)
?
?
?
對爬取的某平臺二手房數據進行數據分析以及特征工程處理
Crawl:利用bs4和requests爬取了國內頂級某房源平臺(2020年7月2日上海二手房)將近30*100多條數據并進行房價分析以及預測
ML之FE:對爬取的某平臺二手房數據進行數據分析以及特征工程處理實現代碼
1、定義數據集
<class 'pandas.core.frame.DataFrame'>total_price unit_price roomtype height direction decorate area \ 0 290萬 46186元/平米 2室1廳 高樓層/共6層 南 平層/簡裝 62.79平米 1 599萬 76924元/平米 2室1廳 低樓層/共6層 南 平層/精裝 77.87平米 2 420萬 51458元/平米 2室1廳 低樓層/共6層 南 北 平層/精裝 81.62平米 3 269.9萬 34831元/平米 2室2廳 低樓層/共6層 南 平層/精裝 77.49平米 4 383萬 79051元/平米 1室1廳 中樓層/共6層 南 平層/精裝 48.45平米 age garden district id Unnamed: 11 total_price_Num \ 0 1993.0 國和一村 楊浦 107102693322 NaN 290.0 1 2005.0 虹康花苑(三期) 長寧 107102590033 NaN 599.0 2 1995.0 紀念小區 虹口 107102469522 NaN 420.0 3 2009.0 新凱二期 松江 107102187832 NaN 269.9 4 1996.0 白浪新村 閔行 107102568627 NaN 383.0 unit_price_Num area_Num 0 46186 62.79 1 76924 77.87 2 51458 81.62 3 34831 77.49 4 79051 48.45 total_price unit_price roomtype height direction decorate area \ 2995 230萬 43144元/平米 1室1廳 低樓層/共11層 南 平層/簡裝 53.31平米 2996 372萬 75016元/平米 1室1廳 低樓層/共11層 南 平層/精裝 49.59平米 2997 366萬 49973元/平米 2室1廳 中樓層/共6層 南 平層/簡裝 73.24平米 2998 365萬 69103元/平米 2室1廳 低樓層/共17層 北 平層/精裝 52.82平米 2999 420萬 49412元/平米 2室2廳 低樓層/共14層 南 北 平層/精裝 85平米 age garden district id Unnamed: 11 total_price_Num \ 2995 2010.0 南新東園 浦東 107102716551 NaN 230.0 2996 2006.0 九歌上郡 閔行 107102716557 NaN 372.0 2997 1995.0 高境一村 寶山 107102716802 NaN 366.0 2998 1990.0 遵義西大樓 長寧 107102716833 NaN 365.0 2999 2011.0 象嶼名城 松江 107102717793 NaN 420.0 unit_price_Num area_Num 2995 43144 53.31 2996 75016 49.59 2997 49973 73.24 2998 69103 52.82 2999 49412 85.00 <class 'pandas.core.frame.DataFrame'> Int64Index: 3000 entries, 0 to 2999 Data columns (total 15 columns): total_price 3000 non-null object unit_price 3000 non-null object roomtype 3000 non-null object height 3000 non-null object direction 3000 non-null object decorate 3000 non-null object area 3000 non-null object age 2888 non-null float64 garden 3000 non-null object district 3000 non-null object id 3000 non-null int64 Unnamed: 11 0 non-null float64 total_price_Num 3000 non-null float64 unit_price_Num 3000 non-null int64 area_Num 3000 non-null float64 dtypes: float64(4), int64(2), object(9) memory usage: 375.0+ KB Noneage id Unnamed: 11 total_price_Num \ count 2888.000000 3.000000e+03 0.0 3000.000000 mean 2001.453601 1.070999e+11 NaN 631.953450 std 9.112425 1.535036e+07 NaN 631.308855 min 1911.000000 1.070000e+11 NaN 90.000000 25% 1996.000000 1.071020e+11 NaN 300.000000 50% 2003.000000 1.071026e+11 NaN 437.000000 75% 2008.000000 1.071027e+11 NaN 738.000000 max 2018.000000 1.071027e+11 NaN 9800.000000 unit_price_Num area_Num count 3000.000000 3000.000000 mean 58939.028333 102.180667 std 25867.208297 62.211662 min 11443.000000 17.050000 25% 40267.500000 67.285000 50% 54946.000000 89.230000 75% 73681.250000 119.035000 max 250813.000000 801.140000 數據集維度: (3000, 15) 數據集所有字段: Index(['total_price', 'unit_price', 'roomtype', 'height', 'direction','decorate', 'area', 'age', 'garden', 'district', 'id', 'Unnamed: 11','total_price_Num', 'unit_price_Num', 'area_Num'],dtype='object') 統計字段名及其對應長度: roomtype 22 ['2室1廳' '2室2廳' '1室1廳' '3室2廳' '1室0廳' '3室1廳' '2室0廳' '1室2廳' '4室3廳' '5室2廳''4室2廳' '5室3廳' '3室0廳' '5室1廳' '5室4廳' '6室4廳' '6室2廳' '6室3廳' '7室2廳' '9室6廳''3室3廳' '4室1廳'] roomtype字段下所有類別 對應數量 2室2廳 751 3室2廳 706 2室1廳 622 1室1廳 323 4室2廳 192 3室1廳 174 1室0廳 47 1室2廳 37 2室0廳 37 5室2廳 35 4室3廳 25 5室3廳 17 6室2廳 9 6室3廳 5 5室1廳 5 3室3廳 4 3室0廳 3 5室4廳 3 4室1廳 2 6室4廳 1 7室2廳 1 9室6廳 1 Name: roomtype, dtype: int64 統計字段名及其對應長度: height 138 ['高樓層/共6層' '低樓層/共6層' '中樓層/共6層' '高樓層/共18層' '低樓層/共9層' '中樓層/共5層' '高樓層/共11層''高樓層/共4層' '高樓層/共32層' '中樓層/共7層' '高樓層/共30層' '中樓層/共12層' '中樓層/共24層' '低樓層/共4層''低樓層/共5層' '中樓層/共13層' '中樓層/共11層' '低樓層/共7層' '高樓層/共8層' '中樓層/共18層' '中樓層/共14層''低樓層/共17層' '中樓層/共30層' '低樓層/共18層' '高樓層/共13層' '中樓層/共31層' '中樓層/共29層''獨棟/共2層' '高樓層/共29層' '低樓層/共30層' '低樓層/共15層' '高樓層/共28層' '聯排/共3層' '中樓層/共8層''中樓層/共56層' '低樓層/共16層' '低樓層/共56層' '低樓層/共32層' '高樓層/共7層' '高樓層/共5層' '中樓層/共9層''高樓層/共33層' '高樓層/共22層' '低樓層/共26層' '中樓層/共35層' '低樓層/共23層' '低樓層/共35層''中樓層/共19層' '中樓層/共17層' '高樓層/共31層' '低樓層/共38層' '低樓層/共28層' '低樓層/共22層''低樓層/共24層' '中樓層/共16層' '高樓層/共25層' '低樓層/共14層' '雙拼/共2層' '中樓層/共4層' '高樓層/共17層''低樓層/共34層' '中樓層/共28層' '高樓層/共24層' '中樓層/共20層' '低樓層/共12層' '高樓層/共16層''中樓層/共25層' '聯排/共1層' '中樓層/共15層' '高樓層/共34層' '低樓層/共49層' '中樓層/共10層''低樓層/共11層' '高樓層/共14層' '中樓層/共21層' '中樓層/共32層' '共3層' '中樓層/共38層' '共1層''低樓層/共19層' '中樓層/共22層' '中樓層/共33層' '低樓層/共13層' '低樓層/共20層' '高樓層/共12層''中樓層/共37層' '高樓層/共15層' '低樓層/共25層' '低樓層/共31層' '高樓層/共26層' '高樓層/共9層' '雙拼/共3層''低樓層/共33層' '高樓層/共20層' '高樓層/共40層' '低樓層/共21層' '低樓層/共10層' '上疊別墅/共4層''低樓層/共2層' '低樓層/共8層' '低樓層/共61層' '中樓層/共59層' '高樓層/共36層' '中樓層/共27層''下疊別墅/共6層' '高樓層/共10層' '高樓層/共27層' '高樓層/共21層' '低樓層/共3層' '高樓層/共37層''高樓層/共49層' '低樓層/共27層' '高樓層/共19層' '中樓層/共34層' '低樓層/共1層' '高樓層/共35層''低樓層/共43層' '低樓層/共51層' '中樓層/共39層' '低樓層/共29層' '中樓層/共36層' '高樓層/共43層''聯排/共2層' '中樓層/共23層' '獨棟/共3層' '高樓層/共23層' '高樓層/共39層' '共2層' '高樓層/共38層''高樓層/共45層' '中樓層/共63層' '中樓層/共26層' '下疊別墅/共5層' '下疊別墅/共3層' '下疊別墅/共4層''低樓層/共37層' '低樓層/共41層' '高樓層/共58層'] height字段下所有類別 對應數量 高樓層/共6層 557 中樓層/共6層 335 低樓層/共6層 260 中樓層/共5層 90 低樓層/共18層 84 高樓層/共18層 75 中樓層/共11層 65 中樓層/共18層 65 中樓層/共14層 57 低樓層/共14層 56 低樓層/共11層 51 高樓層/共5層 50 高樓層/共11層 47 高樓層/共7層 43 中樓層/共7層 43 中樓層/共17層 36 中樓層/共8層 35 低樓層/共24層 33 中樓層/共24層 32 低樓層/共7層 31 低樓層/共12層 30 高樓層/共14層 27 低樓層/共16層 26 高樓層/共16層 25 低樓層/共15層 24 中樓層/共12層 24 低樓層/共17層 24 高樓層/共12層 24 低樓層/共5層 21 低樓層/共13層 19... 低樓層/共38層 3 高樓層/共23層 3 共1層 2 高樓層/共40層 2 高樓層/共36層 2 高樓層/共49層 2 獨棟/共3層 2 低樓層/共49層 2 上疊別墅/共4層 2 共2層 2 高樓層/共10層 2 中樓層/共56層 2 低樓層/共37層 2 低樓層/共2層 1 高樓層/共45層 1 下疊別墅/共6層 1 下疊別墅/共3層 1 雙拼/共2層 1 低樓層/共41層 1 低樓層/共51層 1 下疊別墅/共5層 1 高樓層/共39層 1 聯排/共2層 1 高樓層/共43層 1 中樓層/共63層 1 高樓層/共58層 1 中樓層/共59層 1 中樓層/共36層 1 低樓層/共61層 1 低樓層/共56層 1 Name: height, Length: 138, dtype: int64 統計字段名及其對應長度: direction 34 ['南' '南 北' '東南' '東 南' '北 西北' '東北' '西' '西南' '東南 南' '南 西南' '東' '南 西 北' '西 東''東 東南' '北' '南 西' '東 西' '北 南' '西南 西北' '暫無數據' '東 北' '東南 西北' '西北' '東南 西''東北 南 北' '東 南 北' '西 東北' '南 東南' '南 北 東 東南' '南 東' '南 北 西' '西 北 南' '西 北''東南 南 西北 北'] direction字段下所有類別 對應數量 南 2131 南 北 653 東南 50 西南 46 西 19 東 13 北 12 南 西 8 東南 南 7 北 南 7 南 西南 6 東北 5 東 南 5 暫無數據 5 南 西 北 4 西 東 3 東 東南 3 西北 3 東 西 3 東 北 2 北 西北 2 西 北 南 1 南 北 西 1 東南 南 西北 北 1 南 東南 1 西 東北 1 南 東 1 東南 西北 1 東南 西 1 西南 西北 1 西 北 1 南 北 東 東南 1 東北 南 北 1 東 南 北 1 Name: direction, dtype: int64 統計字段名及其對應長度: decorate 18 ['平層/簡裝' '平層/精裝' '簡裝' '平層/毛坯' '精裝' '復式/精裝' '平層/其他' '躍層/精裝' '錯層/精裝' '復式/簡裝''復式/其他' '錯層/其他' '錯層/簡裝' '復式/毛坯' '躍層/簡裝' '毛坯' '錯層/毛坯' '躍層/毛坯'] decorate字段下所有類別 對應數量 平層/精裝 1428 平層/簡裝 997 平層/毛坯 247 復式/精裝 166 平層/其他 57 復式/簡裝 39 復式/毛坯 17 錯層/精裝 16 精裝 9 復式/其他 5 躍層/精裝 5 簡裝 5 躍層/簡裝 2 錯層/簡裝 2 躍層/毛坯 2 錯層/其他 1 錯層/毛坯 1 毛坯 1 Name: decorate, dtype: int64 統計字段名及其對應長度: garden 1859 ['國和一村' '虹康花苑(三期)' '紀念小區' ... '南新東園' '遵義西大樓' '象嶼名城'] garden字段下所有類別 對應數量 新南家園 15 世茂濱江花園 13 田林十二村 10 文怡花園 9 萬馨佳園 9 綠地金衛新家園(西區) 9 金地灣流域(二期569弄) 8 中房公寓 8 鴻寶一村(南區) 8 新凱二期 8 中遠兩灣城 7 印象春城 7 新德佳苑 7 長豐坊 7 中環一號(一期) 6 惠康苑西苑 6 明園森林都市 6 明珠小區(川沙) 6 惠益新苑 6 富友嘉園 6 美蘭湖中華園 6 中凱城市之光(靜安) 6 金都雅苑(公寓) 6 達安錦園 6 徐匯苑 6 上海康城 6 豐莊十二街坊 6 中環一號(三期) 6 慧芝湖花園 6 御景龍庭 5.. 紫堤苑 1 金昌大廈 1 梓樹園 1 西南名苑 1 佳寶一村 1 芳雅苑 1 德邑小城(公寓) 1 富麗苑 1 中友嘉園 1 證大家園(一期) 1 濰坊七村 1 欽州路111弄 1 東南華庭 1 鐵嶺路50弄 1 惠祥公寓 1 科苑新村 1 上海陽城 1 同濟融創玫瑰公館 1 湖畔佳苑(公寓) 1 壽祥坊 1 平陽三村 1 石泉小區 1 新福康里(公寓) 1 公館77 1 合生城邦三街坊 1 雙暉小區 1 明日星城(一期) 1 淺水灣愷悅名城 1 雋苑 1 紫竹小區 1 Name: garden, Length: 1859, dtype: int64 統計字段名及其對應長度: district 15 ['楊浦' '長寧' '虹口' '松江' '閔行' '寶山' '靜安' '徐匯' '浦東' '黃浦' '普陀' '嘉定' '奉賢' '金山''青浦'] district字段下所有類別 對應數量 浦東 794 閔行 400 徐匯 268 靜安 228 寶山 208 普陀 169 嘉定 155 松江 146 楊浦 141 長寧 135 奉賢 95 黃浦 89 青浦 63 金山 55 虹口 54 Name: district, dtype: int64 dataset.corr(): age id Unnamed: 11 total_price_Num \ age 1.000000 0.000330 NaN 0.199691 id 0.000330 1.000000 NaN -0.143520 Unnamed: 11 NaN NaN NaN NaN total_price_Num 0.199691 -0.143520 NaN 1.000000 unit_price_Num -0.143897 -0.071997 NaN 0.638882 area_Num 0.345437 -0.171639 NaN 0.787404 unit_price_Num area_Num age -0.143897 0.345437 id -0.071997 -0.171639 Unnamed: 11 NaN NaN total_price_Num 0.638882 0.787404 unit_price_Num 1.000000 0.184717 area_Num 0.184717 1.000000 散點圖可視化:可尋找異常點 檢查目標變量滿足整體分布mu = 631.95 and sigma = 631.20繪制Q-Q分位數圖:看是否與理論的一致 Skew in numerical features: skewness.head(): Skew area_Num 3.448604 unit_price_Num 1.121800 總共有 2 數值型的特征做變換 采用LabelEncoder,對部分類別的特征進行編號,轉為數值型 temp1: roomtype object height object direction object decorate object garden object district object total_price_Num float64 area_Num float64 dtype: object temp2: Index(['roomtype', 'height', 'direction', 'decorate', 'garden', 'district'], dtype='object') [5, 10, 8, 6, 11, 2, 13, 3, 7, 14, 4, 0, 1, 9, 12]roomtype height direction decorate garden district total_price_Num \ 0 4 134 16 6 507 5 290.0 1 4 83 16 7 1501 10 599.0 2 4 83 19 7 1333 8 420.0 3 5 83 16 7 829 6 269.9 4 1 40 16 7 1268 11 383.0 5 8 105 16 6 1505 10 1250.0 6 8 86 19 7 21 11 737.0 7 0 38 16 9 1230 8 162.0 8 5 98 19 7 1589 2 328.0 9 0 40 16 6 708 13 163.0 area_Num 0 62.79 1 77.87 2 81.62 3 77.49 4 48.45 5 135.03 6 112.00 7 35.76 8 77.63 9 30.25 roomtype height direction decorate garden district \ 2995 1 45 16 6 388 7 2996 1 45 16 7 236 11 2997 4 40 16 6 1819 2 2998 4 51 13 7 1586 10 2999 5 48 19 7 1547 6 total_price_Num area_Num 2995 230.0 53.31 2996 372.0 49.59 2997 366.0 73.24 2998 365.0 52.82 2999 420.0 85.00?
?
?
?
?
2、特征工程(數據分析+數據處理)
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的ML之FE:对爬取的某平台二手房数据进行数据分析以及特征工程处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ML之sklearn:sklearn的m
- 下一篇: ML之回归预测:利用6个单独+2个集成模