CN115809280A - 一种群租房识别及迭代识别方法 - Google Patents
一种群租房识别及迭代识别方法 Download PDFInfo
- Publication number
- CN115809280A CN115809280A CN202211499830.4A CN202211499830A CN115809280A CN 115809280 A CN115809280 A CN 115809280A CN 202211499830 A CN202211499830 A CN 202211499830A CN 115809280 A CN115809280 A CN 115809280A
- Authority
- CN
- China
- Prior art keywords
- group
- data
- cell
- risk
- house
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种群租房识别及迭代识别方法,包括步骤S1:采集多渠道数据,包括DATA1社区人口台账数据、DATA5互联网房屋中介数据、DATA10疫点通企业健康上报数据、DATA12运营商网络连接数据;步骤S2:初筛多渠道数据,形成DATA2初筛疑似群租房、DATA4高租客比小区、DATA6高群租风险小区一和DATA11重点关注对象及所住房屋;步骤S3:识别步骤S2的数据,形成DATA9数据库表;步骤S4:验证DATA9数据库表的准确性,形成DATA13高群组风险房屋及分布小区,得到识别结果;步骤S5:通过Xgboost机器学习算法建模,形成DATA15疑似高群租风险房屋及分布小区二,得到迭代识别结果。本发明采集的数据易于获取,在识别结果的基础上通过算法进行迭代,提升识别率。
Description
技术领域
本发明涉及一种群租房识别及迭代识别方法,属于群租房识别技术领域。
背景技术
随着社会发展,吸引了大量外来人员进入城市工作,这些人员给城市发展提供动力的同时也给管理工作带来了新的挑战:交通拥堵、住房紧张。其中群租房管理问题尤为突出。
现有的方法在特定场景下使用很不方便,比如通过水电使用量判断群租房的方法,需要接入水务集团和电力集团系统,才能采集到用户用水用电数据,涉及到多部门跨系统的数据配合,存在数据更新周期慢、数据收集难的问题,最终导致群住房识别率低。
再比如通过获取预设时长内目标小区的垃圾投递数据识别群租房的方法,依赖于部署硬件设备用于垃圾投递数据的采集,需要经过一些列流程后才能部署硬件设施,推过难度较大。
因此,现有的方法存在以下缺点和不足:涉及多部门跨系统协调工作,存在数据收集难,数据更新周期慢的问题;硬件部署也存在多部门协调,流程长、推广难的问题。
发明内容
为了解决上述技术问题,本发明提供一种群租房识别及迭代识别方法,其具体技术方案如下:
一种群租房识别及迭代识别方法,包括以下步骤:
步骤S1:采集多渠道数据,所述多渠道数据包括DATA1社区人口台账数据、DATA5互联网房屋中介数据、DATA10疫点通企业健康上报数据、DATA12运营商网络连接数据。
步骤S2:初筛多渠道数据,形成DATA2初筛疑似群租房、DATA4高租客比小区、DATA6高群租风险小区一和DATA11重点关注对象及所住房屋。
步骤S3:识别步骤S2的数据,形成DATA9数据库表。
步骤S4:验证DATA9数据库表的准确性,将正确的DATA9数据库表打上高群租风险房屋或高群租风险小区的标签并落库,形成DATA13高群组风险房屋及分布小区,得到群租房识别结果。
步骤S5:根据群租房识别结果,从社会科学角度出发,根据客户线下治理结果,挖掘群租房的房屋的特征,通过Xgboost机器学习算法建模,挖掘出其他待识别的群租房,形成DATA15疑似高群租风险房屋及分布小区二,得到迭代识别结果。
进一步的,通过接口方式获取DATA1社区人口台账数据、DATA10疫点通企业健康上报数据、DATA12运营商网络连接数据,将数据格式化之后导入到数据库,根据身份证号删除重复数据,保证数据唯一性。所述DATA1社区人口台账数据用于确定业主信息、常住人口数量信息、小区租客比例信息,所述DATA10疫点通企业健康上报数据用于确定特定区域、特定行业、特定岗位、特定职位人员居住的小区信息,所述DATA12运营商网络连接数据用于验证目标客户活动范围是否与DATA9数据库表一一致。由于群租房大多是由中介结构承租后再隔成多个小间进行出租,因此所述DATA5互联网房屋中介数据通过爬虫方式获取,用于确定小区物业费、小区租金、小区户型信息,爬虫数据大多为非结构化数据,因此需要对数据进行转换、清洗处理,将中介标注的小区物业、租金、户型等信息以小区为单位进行存储。
进一步的,通过DATA1社区人口台账数据,将房屋常住人口数量为4人及以上的房屋标识为DATA2初筛疑似群租房;将小区租客比例>30%的小区标识为DATA4高租客比小区。
通过DATA5互联网房屋中介数据,将物业费或租金低于市场价的、无物业或小户型的小区标识为DATA6高群租风险小区一。
通过DATA10疫点通企业健康上报数据,筛选出“特定街道、特定行业、岗位、职位”的数据,确定重点关注人员居住小区信息,并将3个及以上人员居住的楼栋标识为DATA11重点关注对象及所住房屋。筛选结果的准确性比较依赖使用人员对群租房特点理的解程度,同时可以根据已经识别的群租房归类属性进行筛选,此类数据和筛选条件为可选项,不需要可以略过。
进一步的,在DATA2初筛疑似群租房基础上,进一步筛选出房客人数在6人及以上的房屋,标记为DATA3高群租风险房屋一;
将DATA4高租客比小区和DATA6高群租风险小区一数据并集合并,形成DATA7高群租风险小区二。将DATA7高群租风险小区二与DATA2初筛疑似群租房关联之后取交集,形成DATA8高群租风险房屋二;
将DATA3高群租风险房屋一、DATA8高群租风险房屋二和DATA11重点关注对象及所住房屋的数据并集合并,形成DATA9数据库表。
进一步的,所述步骤S4中的验证DATA9数据库表的准确性,包括以下两种验证方法:
基于DATA12运营商网络连接数据, 验证外地号码在晚上20点到早上8点这个时间段租户流量产生位置与租户通话产生位置与中小区的一致性,一致则说明小区租户较多,群租房的概率较大。
通过社区网格员线下上门调查验证。
进一步的,所述步骤S5具体包括以下步骤:
步骤S51:对DATA13高群组风险房屋及分布小区进行特征分析,得到分析结果,判断是否符合分析预期:
若否,重新分析;
若是,通过Xgboost机器学习算法建模,形成DATA14疑似高群租风险房屋及分布小区一。所述Xgboost机器学习算法建模,用于线下群租房识别确认后的识别算法迭代。
步骤S52:通过步骤S4的两种验证方法,验证DATA14疑似高群租风险房屋及分布小区一的准确性,形成DATA15疑似高群租风险房屋及分布小区二,得到迭代识别结果。
本发明的有益效果是:
本发明用到的数据易于获取,识别出疑似群租房后验证识别结果,并在识别结果的基础上通过算法进行迭代,提升识别率;避免了多部门跨系统的协调工作,解决了现有方法中的流程长、推广难的问题。
附图说明
图1是本发明的群租房识别方法流程图;
图2是本发明的群租房迭代识别方法流程图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
步骤S1:采集多渠道数据,如图1所示,多渠道数据包括DATA1社区人口台账数据、DATA5互联网房屋中介数据、DATA10疫点通企业健康上报数据、DATA12运营商网络连接数据。
通过接口方式获取DATA1社区人口台账数据、DATA10疫点通企业健康上报数据、DATA12运营商网络连接数据,将数据格式化之后导入到数据库,根据身份证号删除重复数据,保证数据唯一性。DATA1社区人口台账数据用于确定业主信息、常住人口数量信息、小区租客比例信息,DATA10疫点通企业健康上报数据用于确定特定区域、特定行业、特定岗位、特定职位人员居住的小区信息,DATA12运营商网络连接数据用于验证目标客户活动范围是否与DATA9数据库表一一致。由于群租房大多是由中介结构承租后再隔成多个小间进行出租,因此DATA5互联网房屋中介数据通过爬虫方式获取,用于确定小区物业费、小区租金、小区户型信息,爬虫数据大多为非结构化数据,因此需要对数据进行转换、清洗处理,将中介标注的小区物业、租金、户型等信息以小区为单位进行存储。
步骤S2:初筛多渠道数据,形成DATA2初筛疑似群租房、DATA4高租客比小区、DATA6高群租风险小区一和DATA11重点关注对象及所住房屋。
通过DATA1社区人口台账数据,将房屋常住人口数量为4人及以上的房屋标识为DATA2初筛疑似群租房;将小区租客比例>30%的小区标识为DATA4高租客比小区。
通过DATA5互联网房屋中介数据,将物业费或租金低于市场价的、无物业或小户型的小区标识为DATA6高群租风险小区一。
通过DATA10疫点通企业健康上报数据,筛选出“特定街道、特定行业、岗位、职位”的数据,确定重点关注人员居住小区信息,并将3个及以上人员居住的楼栋标识为DATA11重点关注对象及所住房屋。筛选结果的准确性比较依赖使用人员对群租房特点理的解程度,同时可以根据已经识别的群租房归类属性进行筛选,此类数据和筛选条件为可选项,不需要可以略过。
步骤S3:识别步骤S2的数据,形成DATA9数据库表。
在DATA2初筛疑似群租房基础上,进一步筛选出房客人数在6人及以上的房屋,标记为DATA3高群租风险房屋一;
将DATA4高租客比小区和DATA6高群租风险小区一数据并集合并,形成DATA7高群租风险小区二。将DATA7高群租风险小区二与DATA2初筛疑似群租房关联之后取交集,形成DATA8高群租风险房屋二;
将DATA3高群租风险房屋一、DATA8高群租风险房屋二和DATA11重点关注对象及所住房屋的数据并集合并,形成DATA9数据库表。
步骤S4:验证DATA9数据库表的准确性,将正确的DATA9数据库表打上高群租风险房屋或高群租风险小区的标签并落库,形成DATA13高群组风险房屋及分布小区,得到群租房识别结果。
验证DATA9数据库表的准确性,包括以下两种验证方法:
基于DATA12运营商网络连接数据, 验证外地号码在晚上20点到早上8点这个时间段租户流量产生位置与租户通话产生位置与中小区的一致性,一致则说明小区租户较多,群租房的概率较大。
通过社区网格员线下上门调查验证,该验证方法准确率为90%+。将最终验证结果打标并落库,形成DATA13高群组风险房屋及分布小区。最终核查的166户有疑似群租房中,90户是群租房,识别准确率为54.22%,符合预期。最终核查的166户有疑似群租房中,90户是群租房,识别准确率为54.22%,符合预期。
步骤S5:如图2所示,根据群租房识别结果,根据客户线下治理结果,从社会科学角度出发,挖掘群租房的房屋的特征,通过Xgboost机器学习算法建模,挖掘出去其他待识别的群租房,形成DATA15疑似高群租风险房屋及分布小区二,得到迭代识别结果。包括以下步骤:
步骤S51:对DATA13高群组风险房屋及分布小区进行特征分析,得到分析结果,判断是否符合分析预期:
若否,重新分析;
若是,通过Xgboost机器学习算法建模,形成DATA14疑似高群租风险房屋及分布小区一。Xgboost机器学习算法建模,用于线下群租房识别确认后的识别算法迭代。
步骤S52:通过步骤S4的两种验证方法,验证DATA14疑似高群租风险房屋及分布小区一的准确性,形成DATA15疑似高群租风险房屋及分布小区二,得到迭代识别结果。
收集的DATA1社区人口台账数据中,居住人如果是一家人,经常只填写1-2个手机号,而租客会分别填写自己的手机号。所以房屋填写的手机号个数和居住人数比例值,能一定程度上反映出是自住房还是出租房。反馈为群租房的90个房屋中,有83户都是自如、我爱我家这类长租房,所以从自如官网上爬取了各个小区的挂租房屋个数,并且分析了挂租房屋所属楼栋一般是多少层,计算了各类分别挂租了多少房屋,如:27层高的楼栋挂租4个房屋,25层高的楼栋挂租了3个房屋。这些房屋个数记为改楼栋的“自如热度”。
特征分析的分析结果如下:群租房(手机号/居住人数)比率均值为0.959、非群租房(手机号/居住人数)比率均值为0.692、群租房(手机号/居住人数比率>=0.85的房屋数占比)均值为0.857、非群租房(手机号/居住人数比率>=0.85的房屋数占比)均值为0.415、群租房(高楼层的房屋占比)为0.912、非群租房(高楼层的房屋占比)为0.12、群租房(相似楼栋的自如热度(在租数)均值)为9.728、非群租房(相似楼栋的自如热度(在租数)均值)为1.861、群租房(所在小区的自如热度(在租数)均值)为28.222、非群租房(所在小区的自如热度(在租数)均值)为5.231。
通过数据分析验证了上述特征的准确性。群租房和非群租房特征分布结果参看下表:
XGBoost(eXtreme Gradient Boosting)是Boosting算法中的一种,是一种提升树模型,将很多树的模型集成起来。其以正则化提升(Regularized Boosting)技术而闻名,通过代价函数里加入正则项,控制模型的复杂度,防止过拟合。可以实现并行处理,相比GBM有了很大的速度提升。步骤S51的Xgboost机器学习算法建模包括以下步骤:
1、首先导入数据包,划分训练集和测试集。
feature_file = pd.read_excel("data.xlsx")
x = []# 特征数据
y = []# 标签
for index in feature_file.index.values:
# print('index', index)
# print(feature_file.ix[index].values)
x.append(feature_file.ix[index].values[1: -1]) # 每一行都是ID+特征+Label
y.append(feature_file.ix[index].values[-1] - 1) #
x, y = np.array(x), np.array(y)
print('x,y shape', np.array(x).shape, np.array(y).shape)
print('样本数', len(feature_file.index.values))
# 分训练集和测试集
X_train,X_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=12343)
print('训练集和测试集 shape', X_train.shape, y_train.shape, X_test.shape, y_test.shape)。
# 共有218个样本,训练集174个样本,验证集44个样本。
2、采用交叉验证方法对数据进行训练和验证,可以得到XGBoost、Random Forest随机森林、ET极度随机树、Naïve Bayes高斯朴素贝叶斯、KNN K近邻、Logistic Regression逻辑回归、Decision Tree 决策树等模型的5折交叉验证方法准确率。可以说没有调参的XGBoost已经优于其他机器学习算法了。
# xgboost
from xgboost import XGBClassifier
xgbc_model=XGBClassifier()
from sklearn.cross_validation import cross_val_score
print("\n使用5折交叉验证方法得随机森林模型的准确率(每次迭代的准确率的均值):")
print("\tXGBoost模型:",cross_val_score(xgbc_model,x,y,cv=5).mean())
print("\t随机森林模型:",cross_val_score(rfc_model,x,y,cv=5).mean())
print("\tET模型:",cross_val_score(et_model,x,y,cv=5).mean())
print("\t高斯朴素贝叶斯模型:",cross_val_score(gnb_model,x,y,cv=5).mean())
print("\tK最近邻模型:",cross_val_score(knn_model,x,y,cv=5).mean())
print("\t逻辑回归:",cross_val_score(lr_model,x,y,cv=5).mean())
print("\t决策树:",cross_val_score(dt_model,x,y,cv=5).mean())
print("\t支持向量机:",cross_val_score(svc_model,x,y,cv=5).mean())
3、对模型进行性能评估。用XGBoost算法对训练集进行训练后,对测试集测试后进行性能评估,得到测试准确率、Precision、Recall、F1-score和混淆矩阵。
# XGboost性能评估
xgb = xgb.XGBClassifier()
# 对训练集训练模型
xgb.fit(X_train,y_train)
# 对测试集进行预测
y_pred = xgb.predict(X_test)
print("\n模型的平均准确率(mean accuracy = (TP+TN)/(P+N) )")
print("\tXgboost:",xgb.score(X_test,y_test))
# print('(y_test,y_pred)', y_test,y_pred) print("\n性能评价:")
print("\t预测结果评价报表:\n", metrics.classification_report(y_test,y_pred))
print("\t混淆矩阵:\n", metrics.confusion_matrix(y_test,y_pred))
4、进行参数调优。
学习速率learning rate一般在0.05~0.3之间波动,本实施例首先设置为0.1;进行决策树特定参数调优(包括max_depth、min_child_weight、gamma 、subsample和colsample_bytree)在确定一棵树的过程中,可以选择不同的参数。
正则化参数的调优:lambda 和alpha这些参数可以降低模型的复杂度,从而提高模型的表现。降低学习速率,确定理想参数。
具体包括以下步骤:
1、首先设置固定的学习速率 learning rate,对max_depth、min_child_weight两个参数进行调优。
#max_depth和min_child_weight参数调优
# max_depth和min_child_weight参数对最终结果有很大的影响。max_depth通常在3-10之间,min_child_weight。采用栅格搜索(grid search),先大范围地粗略参数,然后再小范围的微调。
# 网格搜索scoring ='roc_auc'只支持二分类,多分类需要修改scoring(默认支持多分类)
param_test1 = {
'max_depth':[iforiinrange(3,10,2)],
'min_child_weight':[iforiinrange(1,6,2)]
}
from sklearnimportsvm, grid_search, datasets
from sklearnimportgrid_search
gsearch=grid_search.GridSearchCV(
estimator =XGBClassifier(
learning_rate=0.1,
n_estimators=140, max_depth=5,
min_child_weight=1,
gamma=0,
subsample=0.8,
colsample_bytree=0.8,
objective='binary:logistic',
nthread=4,
scale_pos_weight=1,
seed=27),
param_grid= param_test1,
scoring='roc_auc',
n_jobs=4,
iid=False,
cv=5)
gsearch.fit(X_train,y_train)
print('max_depth_min_child_weight')
print('gsearch1.grid_scores_', gsearch.grid_scores_)
print('gsearch1.best_params_', gsearch.best_params_)
print('gsearch1.best_score_', gsearch.best_score_)
gsearch1.grid_scores_ [mean: 0.89440, std: 0.03817, params: {'max_depth': 4, 'min_child_weight': 4}, mean: 0.89630, std: 0.03958, params: {'max_depth': 4, 'min_child_weight': 5}, mean: 0.88518, std: 0.05002, params:{'max_depth': 4, 'min_child_weight': 6}, mean: 0.89440, std: 0.03817, params:{'max_depth': 5, 'min_child_weight': 4}, mean: 0.89630, std: 0.03958, params:{'max_depth': 5, 'min_child_weight': 5}, mean: 0.88518, std: 0.05002, params:{'max_depth': 5, 'min_child_weight': 6}, mean: 0.89440, std: 0.03817, params:{'max_depth': 6, 'min_child_weight': 4}, mean: 0.89630, std: 0.03958, params:{'max_depth': 6, 'min_child_weight': 5}, mean: 0.88518, std: 0.05002, params:{'max_depth': 6, 'min_child_weight': 6}] gsearch1.best_params_ {'max_depth':4, 'min_child_weight': 5} gsearch1.best_score_ 0.8962955796353629
得到max_depth的理想取值为4,min_child_weight的理想取值为5。同时,得分有了小小一点提高,从0.8864到0.8963。
2、在已经调整好其他参数的基础上,可以进行gamma参数的调优了。Gamma参数取值范围很大,这里设置为5,也可以取更精确的gamma值。
from sklearnimportsvm, grid_search, datasets
from sklearnimportgrid_search
param_test3 = {
'gamma':[i/10.0foriinrange(0,5)]
}
gsearch=grid_search.GridSearchCV(
estimator =XGBClassifier(
learning_rate=0.1,
n_estimators=140,
max_depth=4,
min_child_weight=5,
gamma=0,
subsample=0.8,
colsample_bytree=0.8,
objective='binary:logistic',
nthread=4,
scale_pos_weight=1,
seed=27),
param_grid= param_test3,
scoring='roc_auc',
n_jobs=4,
iid=False,
cv=5)
gsearch.fit(X_train,y_train)
print('gamma')
print('gsearch1.grid_scores_', gsearch.grid_scores_)
print('gsearch1.best_params_', gsearch.best_params_)
print('gsearch1.best_score_', gsearch.best_score_)
gsearch1.grid_scores_ [mean: 0.89630, std: 0.03958, params: {'gamma':0.0}, mean: 0.89630, std: 0.03958, params: {'gamma': 0.1}, mean: 0.89630,std: 0.03958, params: {'gamma': 0.2}, mean: 0.89885, std: 0.04064, params: {'gamma': 0.3}, mean: 0.89282, std: 0.04636, params: {'gamma': 0.4}]gsearch1.best_params_ {'gamma': 0.3} gsearch1.best_score_ 0.8988476092191263
得到gamma的理想取值为0.4。同时,得分又有了小小一点提高,从0.8963到0.8988。
3、调整subsample 和colsample_bytree参数,尝试不同的subsample 和colsample_bytree参数。分两个阶段来进行这个步骤。这两个步骤都取0.6,0.7,0.8,0.9作为起始值。
#取0.6,0.7,0.8,0.9作为起始值
from sklearnimportsvm, grid_search, datasets
from sklearnimportgrid_search
param_test4 = {
'subsample':[i/10.0foriinrange(6,10)],
'colsample_bytree':[i/10.0foriinrange(6,10)]
}
gsearch=grid_search.GridSearchCV(
estimator =XGBClassifier(
learning_rate=0.1,
n_estimators=177,
max_depth=4,
min_child_weight=5,
gamma=0.4,
subsample=0.8,
colsample_bytree=0.8,
objective='binary:logistic',
nthread=4,
scale_pos_weight=1,
seed=27),
param_grid= param_test4,
scoring='roc_auc',
n_jobs=4,
iid=False,
cv=5)
gsearch.fit(X_train,y_train)
print('subsample_colsample_bytree------------------')
print('gsearch1.grid_scores_', gsearch.grid_scores_)
print('gsearch1.best_params_', gsearch.best_params_)
print('gsearch1.best_score_', gsearch.best_score_)
subsample_colsample_bytree------------------ gsearch1.grid_scores_[mean: 0.88900, std: 0.03849, params: {'colsample_bytree': 0.6, 'subsample':0.6}, mean: 0.88783, std: 0.03607, params: {'colsample_bytree': 0.6, 'subsample': 0.7}, mean: 0.89162, std: 0.03423, params: {'colsample_bytree':0.6, 'subsample': 0.8}, mean: 0.89827, std: 0.03363, params: {'colsample_bytree': 0.6, 'subsample': 0.9}, mean: 0.88919, std: 0.03723, params: {'colsample_bytree': 0.7, 'subsample': 0.6}, mean: 0.89715, std: 0.03549,params: {'colsample_bytree': 0.7, 'subsample': 0.7}, mean: 0.88918, std:0.03390, params: {'colsample_bytree': 0.7, 'subsample': 0.8}, mean: 0.89838,std: 0.03134, params: {'colsample_bytree': 0.7, 'subsample': 0.9}, mean:0.89807, std: 0.03173, params: {'colsample_bytree': 0.8, 'subsample': 0.6},mean: 0.89174, std: 0.03980, params: {'colsample_bytree': 0.8, 'subsample':0.7}, mean: 0.89615, std: 0.04389, params: {'colsample_bytree': 0.8, 'subsample': 0.8}, mean: 0.90298, std: 0.03024, params: {'colsample_bytree':0.8, 'subsample': 0.9}, mean: 0.88920, std: 0.04164, params: {'colsample_bytree': 0.9, 'subsample': 0.6}, mean: 0.89951, std: 0.04025, params: {'colsample_bytree': 0.9, 'subsample': 0.7}, mean: 0.89765, std: 0.03318,params: {'colsample_bytree': 0.9, 'subsample': 0.8}, mean: 0.89922, std:0.02492, params: {'colsample_bytree': 0.9, 'subsample': 0.9}] gsearch1.best_params_ {'colsample_bytree': 0.8, 'subsample': 0.9} gsearch1.best_score_0.9029777261781906
得到subsample的理想取值为0.9,colsample_bytree的理想值为0.8。同时,得分又有了小小一点提高,从0. 8988到0.9030。
4、正则化参数调优reg_alpha。由于gamma函数提供了一种更加有效的降低过拟合的方法,大部分人很少会用到这个参数,但是可以尝试用一下这个参数。
from sklearnimportsvm, grid_search, datasets
from sklearnimportgrid_search
param_test6 = {
'reg_alpha':[1e-5, 1e-2, 0.1, 1, 100]
}
gsearch=grid_search.GridSearchCV(
estimator =XGBClassifier(
learning_rate=0.1,
n_estimators=177,
max_depth=4,
min_child_weight=5,
gamma=0.4,
subsample=0.9,
colsample_bytree=0.8,
objective='binary:logistic',
nthread=4,
scale_pos_weight=1,
seed=27),
param_grid= param_test6,
scoring='roc_auc',
n_jobs=4,
iid=False,
cv=5)
gsearch.fit(X_train,y_train)
print('reg_alpha------------------')
print('gsearch1.grid_scores_', gsearch.grid_scores_)
print('gsearch1.best_params_', gsearch.best_params_)
print('gsearch1.best_score_', gsearch.best_score_)
reg_alpha------------------ gsearch1.grid_scores_ [mean: 0.90298,std: 0.03024, params: {'reg_alpha': 1e-05}, mean: 0.89911, std: 0.03017,params: {'reg_alpha': 0.01}, mean: 0.89911, std: 0.03198, params: {'reg_alpha': 0.1}, mean: 0.89181, std: 0.03346, params: {'reg_alpha': 1}, mean:0.50000, std: 0.00000, params: {'reg_alpha': 100}] gsearch1.best_params_ {'reg_alpha': 1e-05} gsearch1.best_score_ 0.9029777261781906
得到reg_alpha的理想取值为1e-05。同时,得分没变,为0.9030。
6、正则化参数调优reg_lambda。由于gamma函数提供了一种更加有效的降低过拟合的方法,大部分人很少会用到这个参数,但是可以尝试用一下这个参数。
from sklearnimportsvm, grid_search, datasets
from sklearnimportgrid_search
param_test7 = {
'reg_lambda':[1e-5, 1e-2, 0.1, 1, 100]
}
gsearch=grid_search.GridSearchCV(
estimator =XGBClassifier(
learning_rate=0.1,
n_estimators=177,
max_depth=4,
min_child_weight=5,
gamma=0.4,
subsample=0.9,
colsample_bytree=0.8,
objective='binary:logistic',
nthread=4,
scale_pos_weight=1,
seed=27),
param_grid= param_test7,
scoring='roc_auc',
n_jobs=4,
iid=False,
cv=5)
gsearch.fit(X_train,y_train)
print('reg_lambda------------------')
print('gsearch1.grid_scores_', gsearch.grid_scores_)
print('gsearch1.best_params_', gsearch.best_params_)
print('gsearch1.best_score_', gsearch.best_score_)
reg_lambda------------------ gsearch1.grid_scores_ [mean: 0.90298,std: 0.02792, params: {'reg_lambda': 1e-05}, mean: 0.89980, std: 0.02628,params: {'reg_lambda': 0.01}, mean: 0.89896, std: 0.03491, params: {'reg_lambda': 0.1}, mean: 0.90298, std: 0.03024, params: {'reg_lambda': 1}, mean:0.87028, std: 0.04746, params: {'reg_lambda': 100}] gsearch1.best_params_ {'reg_lambda': 1} gsearch1.best_score_ 0.9029777261781906
得到reg_lambda'的理想取值为1。同时,得分没变,为0.9030。至此,XGBoost调参结束。
根据群租房和非群租房的特征画像表,建立训练集和测试集,采用Xgboost机器学习算法进行训练。得分在0.9以上,因此采用该算法进行群租房预测。最终识别出的199户疑似群租房中,128户是群租房,识别率为64.32%,准确率提升了10.1%,同时该算法减少了对于互联网中介数据的采集,社区台账数据更易于获取。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容。
Claims (6)
1.一种群租房识别及迭代识别方法,其特征在于,包括以下步骤:
步骤S1:采集多渠道数据,所述多渠道数据包括DATA1社区人口台账数据、DATA5互联网房屋中介数据、DATA10疫点通企业健康上报数据、DATA12运营商网络连接数据;
步骤S2:初筛多渠道数据,形成DATA2初筛疑似群租房、DATA4高租客比小区、DATA6高群租风险小区一和DATA11重点关注对象及所住房屋;
步骤S3:识别步骤S2的数据,形成DATA9数据库表;
步骤S4:验证DATA9数据库表的准确性,将正确的DATA9数据库表打上高群租风险房屋或高群租风险小区的标签并落库,形成DATA13高群组风险房屋及分布小区,得到群租房识别结果;
步骤S5:根据群租房识别结果,挖掘群租房的房屋的特征,通过Xgboost机器学习算法建模,挖掘出其他待识别的群租房,形成DATA15疑似高群租风险房屋及分布小区二,得到迭代识别结果。
2.根据权利要求1的群租房识别及迭代识别方法,其特征在于:通过接口方式获取DATA1社区人口台账数据、DATA10疫点通企业健康上报数据、DATA12运营商网络连接数据,所述DATA1社区人口台账数据用于确定业主信息、常住人口数量信息、小区租客比例信息,所述DATA10疫点通企业健康上报数据用于确定特定区域、特定行业、特定岗位、特定职位人员居住的小区信息,所述DATA12运营商网络连接数据用于验证目标客户活动范围是否与DATA9数据库表一一致;所述DATA5互联网房屋中介数据通过爬虫方式获取,用于确定小区物业费、小区租金、小区户型信息。
3.根据权利要求1的群租房识别及迭代识别方法,其特征在于:通过DATA1社区人口台账数据,将房屋常住人口数量为4人及以上的房屋标识为DATA2初筛疑似群租房;将小区租客比例>30%的小区标识为DATA4高租客比小区;
通过DATA5互联网房屋中介数据,将物业费或租金低于市场价的、无物业或小户型的小区标识为DATA6高群租风险小区一;
通过DATA10疫点通企业健康上报数据,筛选出“特定街道、特定行业、岗位、职位”的数据,确定重点关注人员居住小区信息,并将3个及以上人员居住的楼栋标识为DATA11重点关注对象及所住房屋。
4.根据权利要求1的群租房识别及迭代识别方法,其特征在于:在DATA2初筛疑似群租房基础上,进一步筛选出房客人数在6人及以上的房屋,标记为DATA3高群租风险房屋一;
将DATA4高租客比小区和DATA6高群租风险小区一数据并集合并,形成DATA7高群租风险小区二;将DATA7高群租风险小区二与DATA2初筛疑似群租房关联之后取交集,形成DATA8高群租风险房屋二;
将DATA3高群租风险房屋一、DATA8高群租风险房屋二和DATA11重点关注对象及所住房屋的数据并集合并,形成DATA9数据库表。
5.根据权利要求1的群租房识别及迭代识别方法,其特征在于:所述步骤S4中的验证DATA9数据库表的准确性,包括以下两种验证方法:
基于DATA12运营商网络连接数据, 验证外地号码在晚上20点到早上8点这个时间段租户流量产生位置与租户通话产生位置与中小区的一致性,一致则说明小区租户较多,群租房的概率较大;
通过社区网格员线下上门调查验证。
6.根据权利要求1的群租房识别及迭代识别方法,其特征在于:所述步骤S5具体包括以下步骤:
步骤S51:对DATA13高群组风险房屋及分布小区进行特征分析,得到分析结果,判断是否符合分析预期:
若否,重新分析;
若是,通过Xgboost机器学习算法建模,形成DATA14疑似高群租风险房屋及分布小区一;
步骤S52:通过步骤S4的两种验证方法,验证DATA14疑似高群租风险房屋及分布小区一的准确性,形成DATA15疑似高群租风险房屋及分布小区二,得到迭代识别结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211499830.4A CN115809280A (zh) | 2022-11-28 | 2022-11-28 | 一种群租房识别及迭代识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211499830.4A CN115809280A (zh) | 2022-11-28 | 2022-11-28 | 一种群租房识别及迭代识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115809280A true CN115809280A (zh) | 2023-03-17 |
Family
ID=85484311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211499830.4A Pending CN115809280A (zh) | 2022-11-28 | 2022-11-28 | 一种群租房识别及迭代识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115809280A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226152A (zh) * | 2023-04-25 | 2023-06-06 | 社治无忧(成都)智慧科技有限公司 | 一种基于社区治理的人房数据自更新方法及系统 |
-
2022
- 2022-11-28 CN CN202211499830.4A patent/CN115809280A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226152A (zh) * | 2023-04-25 | 2023-06-06 | 社治无忧(成都)智慧科技有限公司 | 一种基于社区治理的人房数据自更新方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101300517B1 (ko) | 전자 입찰에 있어 투찰금액 예측방법 및 그 시스템 | |
Jeong et al. | Integrating buildings into a rural landscape using a multi-criteria spatial decision analysis in GIS-enabled web environment | |
CN107578277B (zh) | 用于电力营销的出租房客户定位方法 | |
CN102254277A (zh) | 一种用于房地产估值的数据处理系统与方法 | |
CN109359868A (zh) | 一种电网用户画像的构建方法及系统 | |
CN114417802B (zh) | 一种智能化报表生成系统 | |
CN112381610A (zh) | 一种群租风险指数的预测方法及计算机设备 | |
CN115809280A (zh) | 一种群租房识别及迭代识别方法 | |
CN112954623A (zh) | 一种基于手机信令大数据的居民入住率估算方法 | |
CN108345662A (zh) | 一种考虑用户分布区域差异的签到微博数据加权统计方法 | |
CN110807546A (zh) | 社区网格人口变化预警方法及系统 | |
CN113408867B (zh) | 基于手机用户和poi数据的城市入室盗窃犯罪风险评估方法 | |
CN115271514A (zh) | 通讯企业的监控方法、装置、电子设备及存储介质 | |
CN113688870A (zh) | 一种采用混合算法的基于用户用电行为的群租房识别方法 | |
CN107480222A (zh) | 基于微博数据的城市群空间联系强度测度系统 | |
CN113971213A (zh) | 智慧城市管理公共信息共享系统 | |
CN113744525A (zh) | 一种基于特征提取与深度学习的交通分布预测方法 | |
CN112819599A (zh) | 一种基于区块链的企业财税记账管理系统 | |
CN111062000B (zh) | 一种基于离散选择模型的犯罪者作案地识别方法 | |
CN111881303A (zh) | 一种城市异构节点分类的图网络结构方法 | |
Zhao et al. | Urban scale trade area characterization for commercial districts with cellular footprints | |
KR102533751B1 (ko) | 상가 공실률 예측을 위한 lstm 기반의 공간 분석방법 | |
US20230027774A1 (en) | Smart real estate evaluation system | |
CN117745080B (zh) | 基于多因素认证的数据访问控制和安全监管方法和系统 | |
CN114363825B (zh) | 一种基于mr常驻地的建筑物属性识别方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |