首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用K近邻创建特性

使用K近邻创建特性
EN

Stack Overflow用户
提问于 2017-07-27 23:16:49
回答 1查看 1.5K关注 0票数 2

我对Python和机器学习还比较陌生,但我一直致力于建立一个抵押贷款价格的预测模型。我挣扎的地方是使用K-最近邻算法来创建一个特性。

以下是我如何理解我想要完成的任务的机制:

  1. 我有两个数据文件:出售的抵押贷款和上市的抵押贷款
  2. 在这两个数据文件中,我都有相同的特性(包括Lat/Long)。
  3. 我想要创建一个列在抵押贷款,代表中间价格的最密切相关的房屋在附近地区。
  4. 我将使用3中所列的方法来创建1-3个月、4-6个月、7-12个月的列。
  5. 另一栏将是这三栏的趋势。

我在KNN推测中发现了一些东西,但这似乎不是我要找的。

我该如何执行这个想法呢?是否有我错过的资源会有所帮助?

如有任何指导,将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-28 05:37:05

所以,据我所知,你想要拟合KNN模型,使用抵押贷款销售数据来预测抵押贷款上市数据的价格。这是一个经典的KNN问题,您需要为列表数据中的每个特征向量在出售的数据中找到最近的特征向量,然后取这些特征向量的中值。

  • 假设售出数据中有n行,每一行的特征向量为X1、X2、.、Xn,相应的价格为P1、P2、.、Pn。 X_train = [X1, X2, ..., Xn] y_train = [P1, P2, ..., Pn]
  • 请注意,每个Xi本身都是一个特征向量,是ith行的代表。
  • 现在,考虑一下,对于列出的数据中的每一行,您都希望在出售的数据中有5个最近的行。因此,此处可能需要优化的KNN模型参数是: NUMBER_OF_NEIGHBOURS = 5
  • 现在,培训代码将如下所示: from sklearn.neighbors import KNeighborsClassifier knn_model = KNeighborsClassifier(n_neighbors=NUMBER_OF_NEIGHBOURS) knn_model.fit(X_train, y_train)
  • 对于预测,考虑列出的数据中有m行,每一行的特征向量是F1、F2、.、Fm。相应的中值价格Z1,Z2,.,Zm需要确定。 X_test = [F1, F2, ..., Fm]
  • 请注意,X_train和X_test中的特征向量应该使用相同的向量器/转换器进行矢量化。阅读更多关于向量器这里的信息。
  • 预测代码如下所示: y_predicted = knn_model.predict(X_test)
  • 此y_predicted列表中的每个元素都将包含(在本例中)来自y_train的5种最接近的价格。这就是: y_predicted = [(P11, P12, .., P15), (P21, P22, .., P25), .., (Pm1, Pm2, .., Pm5)]
  • 对于y_predicted的每个jth元素: import numpy as np Zj = np.median(np.array([Pj1, Pj2, .., Pj5]))
  • 因此,通过这种方式,您可以为每一行列出的数据找到中间价格Zj。
  • 现在,进入参数优化部分。KNN模型中唯一的超参数是NUMBER_OF_NEIGHBOURS。您可以通过将X_train本身划分为80:20的比例来找到这个参数的最优值。对80%的零件进行培训,其余20%的部分交叉验证.一旦您确信精度数字足够好,您就可以使用超参数NUMBER_OF_NEIGHBOURS的这个值对y_test进行预测。
  • 最后,对于逐月分析,您将需要创建按月划分的模型.例如,M1 =训练1-3个月的销售数据,M2 =训练4-6个月的销售数据,M3 =训练7-12个月的销售数据,等等。

参考资料:http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45362482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档