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)