ML之FE:基于LiR/Ridge/Lasso/ElasticNet/AvgModels/RF算法(GSCV) 利用某市房价数据集(特征工程处理)进行房价回归预测
目录
输出结果
设计思路
核心代码
1、输出基本信息
bj_data.info(): Int64Index: 48324 entries, 418423 to 627466 Data columns (total 22 columns): introduction_house 48324 non-null object community_house 48324 non-null object href_house 48324 non-null object unit_house 48324 non-null object size_house 48324 non-null object direction_house 48324 non-null object decoration_house 48313 non-null object elevator_house 47437 non-null object type_house 48324 non-null object years_house 48311 non-null object area_house 48324 non-null object interests_house 48324 non-null object watch_times 48324 non-null object submit_period 0 non-null float64 years_period 39804 non-null object tax_free 45673 non-null object total_price 48324 non-null float64 smeter_price 48324 non-null object region 48324 non-null object info_cluster 0 non-null object info_flood 0 non-null object info_follow 0 non-null object bj_data.head(): introduction_house community_house href_house unit_house size_house direction_house decoration_house elevator_house type_house years_house area_house interests_house watch_times submit_period years_period tax_free total_price smeter_price region info_cluster info_flood info_follow 418423 长城脚下,精装修别墅,满五唯一,业主诚意出售。 清凉盛景 https://bj.lianjia.com/ershoufang/101103236018.html 5室3厅 269.93平米 南 北 精装 NaN 底层(共2层) 暂无数据 延庆其它 3人关注 0次带看 NaN NaN 房本满五年 998.0 单价36973元/平米 bj NaN NaN NaN 418424 商品房 满五年 家庭名下一套住房 环境好 清凉盛景 https://bj.lianjia.com/ershoufang/101102750912.html 4室2厅 269.93平米 南 北 精装 NaN 2层 2010年建暂无数据 延庆其它 14人关注 0次带看 NaN NaN 房本满五年 1250.0 单价46309元/平米 bj NaN NaN NaN 418425 湖南小区 2室1厅 179万 湖南小区 https://bj.lianjia.com/ershoufang/101103256056.html 2室1厅 71.45平米 南 北 其他 NaN 中楼层(共6层) 1996年建暂无数据 延庆其它 8人关注 0次带看 NaN NaN 房本满五年 179.0 单价25053元/平米 bj NaN NaN NaN 418426 清凉盛景 4室2厅 1180万 清凉盛景 https://bj.lianjia.com/ershoufang/101103166425.html 4室2厅 252.16平米 南 北 精装 NaN 底层(共2层) 2010年建暂无数据 延庆其它 0人关注 0次带看 NaN NaN 房本满五年 1180.0 单价46796元/平米 bj NaN NaN NaN 424545 君山别墅 边户独栋 391平毛坯房 君山别墅 https://bj.lianjia.com/ershoufang/101101025128.html 3室2厅 391.86平米 南 北 毛坯 NaN 底层(共2层) 2011年建暂无数据 密云其它 107人关注 1次带看 NaN 房本满两年 房本满五年 1000.0 单价25520元/平米 bj NaN NaN NaN
2.2.1、处理【size_house】列
2.2.2、处理【size-interests_house】、【watch_times】、【smeter_price】列
2.2.3、处理【unit_house】列
2.2.4、处理【type_house】列
2.2.5、处理【year_house】列:
2.3、处理【direction_house】列
2.4、缺失值处理
Percentage of missing values Feature Unique_values Percentage of missing values Percentage of values in the biggest category type 21 info_follow 0 100.000000 100.000000 object 13 submit_period 0 100.000000 100.000000 float64 20 info_flood 0 100.000000 100.000000 object 19 info_cluster 0 100.000000 100.000000 object 14 years_period 1 17.630991 82.369009 object 15 tax_free 1 5.485887 94.514113 object 7 elevator_house 6 1.835527 62.018873 object 9 years_house 210 0.026902 3.186822 object 6 decoration_house 15 0.022763 49.163976 object 18 region 1 0.000000 100.000000 object 17 smeter_price 35405 0.000000 0.066220 object 16 total_price 1804 0.000000 1.338879 float64 0 introduction_house 47779 0.000000 0.014486 object 12 watch_times 93 0.000000 33.451287 object 1 community_house 5674 0.000000 0.360070 object 10 area_house 235 0.000000 3.029551 object 8 type_house 291 0.000000 8.718235 object 5 direction_house 207 0.000000 45.348067 object 4 size_house 15283 0.000000 0.091052 object 3 unit_house 79 0.000000 36.845046 object 2 href_house 48323 0.000000 0.004139 object 11 interests_house 638 0.000000 2.460475 object
bj_data.shape():after drop (48324, 14) bj_data.head():after drop unit_house size_house direction_house decoration_house elevator_house type_house years_house area_house interests_house watch_times years_period tax_free total_price smeter_price 418423 5室3厅 269.93平米 南 北 精装 NaN 底层(共2层) 暂无数据 延庆其它 3人关注 0次带看 NaN 房本满五年 998.0 单价36973元/平米 418424 4室2厅 269.93平米 南 北 精装 NaN 2层 2010年建暂无数据 延庆其它 14人关注 0次带看 NaN 房本满五年 1250.0 单价46309元/平米 418425 2室1厅 71.45平米 南 北 其他 NaN 中楼层(共6层) 1996年建暂无数据 延庆其它 8人关注 0次带看 NaN 房本满五年 179.0 单价25053元/平米 418426 4室2厅 252.16平米 南 北 精装 NaN 底层(共2层) 2010年建暂无数据 延庆其它 0人关注 0次带看 NaN 房本满五年 1180.0 单价46796元/平米 424545 3室2厅 391.86平米 南 北 毛坯 NaN 底层(共2层) 2011年建暂无数据 密云其它 107人关注 1次带看 房本满两年 房本满五年 1000.0 单价25520元/平米
bj_data.head():【size_house】drop+numerical 结果: ········ total_price 48324 non-null float64 smeter_price 48324 non-null object dtypes: float64(2), object(12) memory usage: 5.5+ MB None unit_house size_house1 direction_house decoration_house elevator_house type_house years_house area_house interests_house watch_times years_period tax_free total_price smeter_price 418423 5室3厅 269.93 南 北 精装 NaN 底层(共2层) 暂无数据 延庆其它 3人关注 0次带看 NaN 房本满五年 998.0 单价36973元/平米 418424 4室2厅 269.93 南 北 精装 NaN 2层 2010年建暂无数据 延庆其它 14人关注 0次带看 NaN 房本满五年 1250.0 单价46309元/平米 418425 2室1厅 71.45 南 北 其他 NaN 中楼层(共6层) 1996年建暂无数据 延庆其它 8人关注 0次带看 NaN 房本满五年 179.0 单价25053元/平米 418426 4室2厅 252.16 南 北 精装 NaN 底层(共2层) 2010年建暂无数据 延庆其它 0人关注 0次带看 NaN 房本满五年 1180.0 单价46796元/平米 424545 3室2厅 391.86 南 北 毛坯 NaN 底层(共2层) 2011年建暂无数据 密云其它 107人关注 1次带看 房本满两年 房本满五年 1000.0 单价25520元/平米
bj_data.head():【interests_house】、【watch_times】、【smeter_price】, Regularization 结果: ···· unit_house size_house1 smeter_price1 watch_times1 interests_house1 direction_house decoration_house elevator_house type_house years_house area_house years_period tax_free total_price 418423 5室3厅 269.93 36973 0 3 南 北 精装 NaN 底层(共2层) 暂无数据 延庆其它 NaN 房本满五年 998.0 418424 4室2厅 269.93 46309 0 14 南 北 精装 NaN 2层 2010年建暂无数据 延庆其它 NaN 房本满五年 1250.0 418425 2室1厅 71.45 25053 0 8 南 北 其他 NaN 中楼层(共6层) 1996年建暂无数据 延庆其它 NaN 房本满五年 179.0 418426 4室2厅 252.16 46796 0 0 南 北 精装 NaN 底层(共2层) 2010年建暂无数据 延庆其它 NaN 房本满五年 1180.0 424545 3室2厅 391.86 25520 1 107 南 北 毛坯 NaN 底层(共2层) 2011年建暂无数据 密云其它 房本满两年 房本满五年 1000.0
bj_data.head():【unit_house】, structure new features 结果······· size_house1 rooms living_room bedroom smeter_price1 watch_times1 interests_house1 direction_house decoration_house elevator_house type_house years_house area_house years_period tax_free total_price 418423 269.93 8.0 3.0 5.0 36973 0 3 南 北 精装 NaN 底层(共2层) 暂无数据 延庆其它 NaN 房本满五年 998.0 418424 269.93 6.0 2.0 4.0 46309 0 14 南 北 精装 NaN 2层 2010年建暂无数据 延庆其它 NaN 房本满五年 1250.0 418425 71.45 3.0 1.0 2.0 25053 0 8 南 北 其他 NaN 中楼层(共6层) 1996年建暂无数据 延庆其它 NaN 房本满五年 179.0 418426 252.16 6.0 2.0 4.0 46796 0 0 南 北 精装 NaN 底层(共2层) 2010年建暂无数据 延庆其它 NaN 房本满五年 1180.0 424545 391.86 5.0 2.0 3.0
from sklearn.base import BaseEstimator, TransformerMixin, RegressorMixin, clone class AveragingModels(BaseEstimator, TransformerMixin, RegressorMixin): def __init__(self, models): self.models = models def fit(self, X, y): self.models_ = [clone(x) for x in self.models] # Train cloned base models for model in self.models_: model.fit(X, y) return self def predict(self, X): predictions = np.column_stack([ model.predict(X) for model in self.models_ ]) return np.mean(predictions, axis=1) Averaged_models = AveragingModels(models = (LiR_model, Ridge_model, Lasso_model, ElasticNet_model)) Averaged_models_score = rmse_cv(Averaged_models, X, y) param_grid2 = {'max_depth': range(30, 60, 5), 'min_samples_split':range(2, 11, 1)} gs2 = GridSearchCV(estimator=gs1.best_estimator_, param_grid=param_grid2, scoring='neg_mean_squared_error', cv=3, verbose=0) gs2.fit(X_train, y_train) param_grid3 = {'max_features': range(10, 250, 8)} gs3 = GridSearchCV(estimator=gs2.best_estimator_, param_grid=param_grid3, scoring='neg_mean_squared_error', cv=3, verbose=0) gs3.fit(X_train, y_train)