ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)

ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)

目录

利用【数据分析+数据处理】算法对链家房价数据集【12+1】进行特征工程处理

1、数据集信息输出

1.1、输出基本信息

1.2、单独统计目标变量差异

1.3、分析缺失数据

1.4、区分数值型、类别型字段

扫描二维码关注公众号,回复: 11657029 查看本文章

2、特征工程

2.1、数据分析之单变量统计可视化分析

2.2、根据某列Column_others的不同类别进行分组,统计组内Column_target平均结果

2.3、散点图

2.4、变量之间相关性分析

2.5、分析特征分布

2.6、采用LabelEncoder、dummies处理


相关文章
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理实现
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)——附录
ML之FE:利用【数据分析+数据处理】算法对国内某平台上海2020年6月份房价数据集【12+1】进行特征工程处理实现
ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测
ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测实现

利用【数据分析+数据处理】算法对链家房价数据集【12+1】进行特征工程处理

1、数据集信息输出

1.1、输出基本信息

 (3000, 13) 13 3000
   
 total_price         object
unit_price          object
roomtype            object
height              object
direction           object
decorate            object
area                object
age                float64
garden              object
district            object
total_price_Num    float64
unit_price_Num       int64
area_Num           float64
dtype: object
 
 Index(['total_price', 'unit_price', 'roomtype', 'height', 'direction',
       'decorate', 'area', 'age', 'garden', 'district', 'total_price_Num',
       'unit_price_Num', 'area_Num'],
      dtype='object')
 
   total_price unit_price roomtype  ... total_price_Num unit_price_Num area_Num
0        290万  46186元/平米     2室1厅  ...           290.0          46186    62.79
1        599万  76924元/平米     2室1厅  ...           599.0          76924    77.87
2        420万  51458元/平米     2室1厅  ...           420.0          51458    81.62
3      269.9万  34831元/平米     2室2厅  ...           269.9          34831    77.49
4        383万  79051元/平米     1室1厅  ...           383.0          79051    48.45

[5 rows x 13 columns]

      total_price unit_price roomtype  ... total_price_Num unit_price_Num area_Num
2995        230万  43144元/平米     1室1厅  ...           230.0          43144    53.31
2996        372万  75016元/平米     1室1厅  ...           372.0          75016    49.59
2997        366万  49973元/平米     2室1厅  ...           366.0          49973    73.24
2998        365万  69103元/平米     2室1厅  ...           365.0          69103    52.82
2999        420万  49412元/平米     2室2厅  ...           420.0          49412    85.00

[5 rows x 13 columns]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3000 entries, 0 to 2999
Data columns (total 13 columns):
 #   Column           Non-Null Count  Dtype  
---  ------           --------------  -----  
 0   total_price      3000 non-null   object 
 1   unit_price       3000 non-null   object 
 2   roomtype         3000 non-null   object 
 3   height           3000 non-null   object 
 4   direction        3000 non-null   object 
 5   decorate         3000 non-null   object 
 6   area             3000 non-null   object 
 7   age              2888 non-null   float64
 8   garden           3000 non-null   object 
 9   district         3000 non-null   object 
 10  total_price_Num  3000 non-null   float64
 11  unit_price_Num   3000 non-null   int64  
 12  area_Num         3000 non-null   float64
dtypes: float64(3), int64(1), object(9)
memory usage: 304.8+ KB
 
                age  total_price_Num  unit_price_Num     area_Num
count  2888.000000      3000.000000     3000.000000  3000.000000
mean   2001.453601       631.953450    58939.028333   102.180667
std       9.112425       631.308855    25867.208297    62.211662
min    1911.000000        90.000000    11443.000000    17.050000
25%    1996.000000       300.000000    40267.500000    67.285000
50%    2003.000000       437.000000    54946.000000    89.230000
75%    2008.000000       738.000000    73681.250000   119.035000
max    2018.000000      9800.000000   250813.000000   801.140000

1.2、单独统计目标变量差异

单独统计字段差异
Min 90.0
Avg 631.95345
Max 9800.0
loc函数: 0         290万
1         599万
2         420万
3       269.9万
4         383万
         ...  
2995      230万
2996      372万
2997      366万
2998      365万
2999      420万
Name: total_price, Length: 3000, dtype: object
iloc函数:   total_price unit_price roomtype   height direction
0        290万  46186元/平米     2室1厅  高楼层/共6层         南
1        599万  76924元/平米     2室1厅  低楼层/共6层         南
2        420万  51458元/平米     2室1厅  低楼层/共6层       南 北
3      269.9万  34831元/平米     2室2厅  低楼层/共6层         南

1.3、分析缺失数据

依次判断每列是否含有缺失数据: 
total_price        False
unit_price         False
roomtype           False
height             False
direction          False
decorate           False
area               False
age                 True
garden             False
district           False
total_price_Num    False
unit_price_Num     False
area_Num           False
dtype: bool
依次计算每列缺失值元素个数: total_price          0
unit_price           0
roomtype             0
height               0
direction            0
decorate             0
area                 0
age                112
garden               0
district             0
total_price_Num      0
unit_price_Num       0
area_Num             0
dtype: int64
该数据集中包含缺失数据!输出缺失数据所在坐标(表格形式输出)
     total_price unit_price roomtype  ... total_price_Num unit_price_Num area_Num
61          710万  57724元/平米     3室2厅  ...           710.0          57724   123.00
85         1250万  92109元/平米     2室2厅  ...          1250.0          92109   135.71
100         555万  92655元/平米     1室1厅  ...           555.0          92655    59.90
101        1950万  80333元/平米     3室2厅  ...          1950.0          80333   242.74
137         218万  39978元/平米     2室1厅  ...           218.0          39978    54.53
...          ...        ...      ...  ...             ...            ...      ...
2881        235万  27977元/平米     3室2厅  ...           235.0          27977    84.00
2891        468万  52585元/平米     2室2厅  ...           468.0          52585    89.00
2898        229万  26474元/平米     3室1厅  ...           229.0          26474    86.50
2919        235万  26705元/平米     3室2厅  ...           235.0          26705    88.00
2949        540万  53974元/平米     3室2厅  ...           540.0          53974   100.05

[112 rows x 13 columns]
缺失数据所在的行索引: Int64Index([  61,   85,  100,  101,  137,  160,  175,  189,  245,  263,
            ...
            2814, 2835, 2839, 2841, 2871, 2881, 2891, 2898, 2919, 2949],
           dtype='int64', length=112)

1.4、区分数值型、类别型字段

完整详看ML之FE:利用【数据分析+数据处理】算法对国内某平台2020年6月份房价数据集【12+1】进行特征工程处理(史上最完整,建议收藏)——附录

依次返回数值型、类别型字段、 
 ['age', 'area_Num', 'unit_price_Num', 'total_price_Num'] 
 ['total_price', 'unit_price', 'roomtype', 'height', 'direction', 'decorate', 'area', 'garden', 'district']
依次查看训练集、测试集中,类别型字段的细分类
total_price ['1000万', '100万', '1010万', '1019万', '1020万', '1025万', '1030万', '1035万', '1038万', '1040万', '1050万', '1057万', '1058万', '105万', '1060万', '1065万', '1070^……

米', '99904元/平米', '99927元/平米', '99974元/平米']
roomtype ['1室0厅', '1室1厅', '1室2厅', '2室0厅', '2室1厅', '2室2厅', '3室0厅', '3室1厅', '3室2厅', '3室3厅', '4室1厅', '4室2厅', '4室3厅', '5室1厅', '5室2厅', '5室3厅', '5室4厅', '6室2厅', '6室3厅', '6室4厅', '7室2厅', '9室6厅']
height ['上叠别墅/共4层', '下叠别墅/共3层', '下叠别墅/共4层', '下叠别墅/共5层', '下叠别墅/共6层', '中楼层/共10层', '中楼层/共11层', '中楼层/共12层', '中楼层/共13层', '中楼层/共14层', '中
楼层/共15层', '中楼层/共16层', '中楼层/共17层', '中楼层/共18层', '中楼层/共19层', '中楼层/共20

……

村', '首创旭辉城', '首创禧悦(一期)', '首创锦悦', '香山新村东北街坊', '香山新村东南街坊', '香山新村西北街坊', '香山新村西南街坊', '香树丽舍', '香梅花园(二期)', '香楠小区', '香榭苑', '香樟公寓', '香樟苑(普陀)', '香水湾', '香溢花城(住宅)', '馨佳园(菊泉街1280弄)', '馨佳园(菊泉街1281弄)', '馨佳园(菊泉街1398弄)', '馨佳园(菊盛路851弄)', '馨佳园(韶山路419弄)', '馨宁公寓', '马陆清水湾', '骏豪国际', '高境一村', '高境二村', '高安公寓', '高海家苑', '高行绿洲(六期)', '高行绿洲(四期)', '高行馨苑', '鸿凯湾绿苑', '鸿吉苑', '鸿基公寓', '鸿宝一村(北区)', '鸿宝一村(南区)', '鸿宝二村', '鸿宝新村', '鹏丰苑', '鹏宏苑', '鹏海小区', '鹏润伊顿公馆', '鹤北新村', '黄山始信苑', '黄山新村', '黄山新苑', '黄浦新苑(公寓)', '黎安三村', '黎安二村', '黎明花园', '鼎信公寓', '鼎鑫名流世家', '齐七小区', '龙华小区', '龙庭公寓', '龙柏七村', '龙柏三村', '龙柏二村', '龙柏四村', '龙柏香榭苑', '龙泽园', '龙湖蔚澜香醍', '龙湖郦城', '龚家宅']
district ['嘉定', '奉贤', '宝山', '徐汇', '普陀', '杨浦', '松江', '浦东', '虹口', '金山', '长宁', '闵行', '青浦', '静安', '黄浦']
age [1993 2005 1995 ... 1995 1990 2011]
area_Num [62 77 81 ... 73 52 85]
unit_price_Num [46186 76924 51458 ... 49973 69103 49412]
total_price_Num [290 599 420 ... 366 365 420]

2、特征工程

2.1、数据分析之单变量统计可视化分析

统计字段名及其对应长度: 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
2室0厅     37
1室2厅     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
7室2厅      1
6室4厅      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
           ... 
下叠别墅/共3层      1
中楼层/共59层      1
低楼层/共41层      1
高楼层/共58层      1
高楼层/共43层      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
             ..
中海万锦城(三期)     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
Name: district, dtype: int64
{'浦东': 794, '闵行': 400, '徐汇': 268, '静安': 228, '宝山': 208, '普陀': 169, '嘉定': 155, '松江': 146, '杨浦': 141, '长宁': 135, '奉贤': 95, '黄浦': 89, '青浦': 63, '金山': 55, '虹口': 54}

2.2、根据某列Column_others的不同类别进行分组,统计组内Column_target平均结果

2.3、散点图

2.4、变量之间相关性分析

                       age  total_price_Num  unit_price_Num  area_Num
age              1.000000        -0.101234       -0.037053 -0.075594
total_price_Num -0.101234         1.000000        0.638882  0.787404
unit_price_Num  -0.037053         0.638882        1.000000  0.184717
area_Num        -0.075594         0.787404        0.184717  1.000000

2.5、分析特征分布

 mu = 631.95 and sigma = 631.20

绘制Q-Q分位数图:看是否与理论的一致
skewness: 
                      Skew
area_Num         3.448604
unit_price_Num   1.121800
total_price_Num  0.639867
age             -4.876660

再次观察所有特征分布

skewness:                      Skew
area_Num         3.448604
unit_price_Num   1.121800
total_price_Num       NaN
age             -4.876660
总共有 4 数值型的特征做变换
dataset.head: 
   total_price unit_price roomtype  ... total_price_Num unit_price_Num  area_Num
0        290万  46186元/平米     2室1厅  ...        2.195911      26.721049  5.767642
1        599万  76924元/平米     2室1厅  ...        2.333830      29.376162  6.169801
2        420万  51458元/平米     2室1厅  ...        2.267808      27.266778  6.259553
3      269.9万  34831元/平米     2室2厅  ...        2.181588      25.337425  6.160505
4        383万  79051元/平米     1室1厅  ...        2.250204      29.523924  5.301667

[5 rows x 13 columns]
age [14 14 14 ... 14 14 14]
area_Num [5 6 6 ... 6 5 6]
unit_price_Num [26 29 27 ... 27 28 27]
total_price_Num [2 2 2 ... 2 2 2]

2.6、采用LabelEncoder、dummies处理

采用LabelEncoder,对部分【类别型】特征进行编号,转为【数值型】
DF_types: 
 total_price         object
unit_price          object
roomtype            object
height              object
direction           object
decorate            object
area                object
age                float64
garden              object
district            object
total_price_Num    float64
unit_price_Num     float64
area_Num           float64
dtype: object
Col_dtypes_objects: 
 Index(['total_price', 'unit_price', 'roomtype', 'height', 'direction',
       'decorate', 'area', 'garden', 'district'],
      dtype='object')
   total_price  unit_price  roomtype  ...  total_price_Num  unit_price_Num  area_Num
0          316        1125         4  ...         2.195911       26.721049  5.767642
1          560        2258         4  ...         2.333830       29.376162  6.169801
2          445        1350         4  ...         2.267808       27.266778  6.259553
3          287         634         5  ...         2.181588       25.337425  6.160505
4          410        2315         1  ...         2.250204       29.523924  5.301667

[5 rows x 13 columns]
非树类算法,正在进行哑变量化
DF_types: 
 total_price          int64
unit_price           int64
roomtype             int64
height               int64
direction            int64
decorate             int64
area                 int64
age                float64
garden               int64
district             int64
total_price_Num    float64
unit_price_Num     float64
area_Num           float64
dtype: object
Col_dtypes_int64s: 
 Index(['total_price', 'unit_price', 'roomtype', 'height', 'direction',
       'decorate', 'area', 'garden', 'district'],
      dtype='object')
Col_dtypes_float64s: 
 Index(['age', 'total_price_Num', 'unit_price_Num', 'area_Num'], dtype='object')
         age  total_price_Num  ...  district_8  district_9
0  14.171884         2.195911  ...           0           0
1  14.190647         2.333830  ...           0           0
2  14.175018         2.267808  ...           1           0
3  14.196881         2.181588  ...           0           0
4  14.176584         2.250204  ...           0           0

[5 rows x 7784 columns]
dataset             age  total_price_Num  ...  district_8  district_9
0     14.171884         2.195911  ...           0           0
1     14.190647         2.333830  ...           0           0
2     14.175018         2.267808  ...           1           0
3     14.196881         2.181588  ...           0           0
4     14.176584         2.250204  ...           0           0
...         ...              ...  ...         ...         ...
2995  14.198437         2.149222  ...           0           0
2996  14.192207         2.244601  ...           0           0
2997  14.175018         2.241467  ...           0           0
2998  14.167178         2.240939  ...           0           0
2999  14.199993         2.267808  ...           0           0

[3000 rows x 7784 columns]

猜你喜欢

转载自blog.csdn.net/qq_41185868/article/details/108541446