在构建练习集时,Zipline 将会找出练习集所须要的特点,主动的按照 key 将特点组合在一路并填充数据。在构造房源 LTV 模型时,我们应用了一些 Zipline 中已经存在的特点,还本身写了一些特点。模型总共应用了 150 多个特点,个中包含:
- 地位:国度、市场、社区以及其它地舆特点
- 价格:住宿费、干净费、与类似房源的价格差别
- 可用性:可住宿的总天数,以及房主手动封闭夜间预订的┞芳比百分数
- 是否可预订:预订数量及以前 X 天内涵夜间订房的数量
- 质量:评价得分、评价数量、便利举措措施

别的,数据科学家须要本身写特定的 fit 与 transform 函数。fit 函数指定若何进行练习,而 transform 函数将被 Python UDF 封装,进行分布式计算(如不雅有须要)。
实例数据集
LTV 模型的机械进修工作流
在定义好特点以及输出变量之后,就可以根据我们的汗青数据来练习模型了。
原型设计与练习
应用对象:Python 机械进修库 — scikit-learn
以前面的练习集为例,我们在做练习前先要对数据进行一些预处理:
- 数据插补:我们须要检查是否稀有据缺掉,以及它是否为随机出现的缺掉。如不雅不是随机现象,我们须要弄清跋扈其根来源基本因;如不雅是随机缺掉,我们须要填充空白数据。
- 对分类进行编码:平日来说我们不克不及在模型里直接应用原始的分类,因为模型并不克不及去拟合字符串。当分类数量比较少时,我们可以推敲应用>
- transforms = []
- transforms.append(
- ('select_binary', ColumnSelector(features=binary))
- )
- transforms.append(
- ('numeric', ExtendedPipeline([
- ('select', ColumnSelector(features=numeric)),
- ('impute', Imputer(missing_values='NaN', strategy='mean', axis=0)),
- ]))
- )
- for field in categorical:
- transforms.append(
- (field, ExtendedPipeline([
- ('select', ColumnSelector(features=[field])),
- ('encode', OrdinalEncoder(min_support=10))
- ])
- )
- )
- features = FeatureUnion(transforms)
在高层设计时,我们应用 pipeline 来根据特点类型(如二进制特点、分类特点、数值特点等)来指定不合特点中数据的转换方法。最后应用 FeatureUnion 简单将特点列组合起来,形成最终的练习集。
推荐阅读
据火币区块链研究中间编译,以前几年来,人们一向在谈论数字资产和区块链。区块链的立异正在赓续进行改进,平>>>详细阅读
本文标题:在Airbnb使用机器学习预测房源的价格
地址:http://www.17bianji.com/lsqh/37197.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示