作家
登录

机器学习排序LTR入门——线性模型

作者: 来源: 2017-10-24 16:08:45 阅读 我要评论

应用sklearn实现线性回归LTR

为了更直不雅地体验,应用Python的sklearn类库来实现回归是一个便捷的方法。如不雅想应用上文数据经由过程线性回归测验测验下简单的LTR练习集,可以把我们测验测验的相干度等级猜测值记为S,我们看到的旌旗灯号将猜测该得分并记为X。

我们将应用一些片子相干度数据测验测验点有趣的工作。这里有一个搜刮关键词“Rocky”的相干度等级数据集。召回我们膳绫擎的评判表,转换为一个练习集。一路来体验下真实的练习集(注释会赞助我们懂得具体过程)。我们将检查的三个排序旌旗灯号,包含标题标TF*IDF得分、简介的TF*IDF得分以及片子不雅众的评分。

  1. grade,titleScore,overviewScore,ratingScore,comment:#  keywords@movietitle 
  2. 4,10.65,8.41,7.40,# 1366   rocky@Rocky 
  3. 3,0.00,6.75,7.00,# 12412  rocky@Creed 
  4. 3,8.22,9.72,6.60,# 1246   rocky@Rocky Balboa 
  5. 3,8.22,8.41,0.00,# 1374   rocky@Rocky IV 
  6. 3,8.22,7.68,6.90,# 1367   rocky@Rocky II 
  7. 3,8.22,7.15,0.00,# 1375   rocky@Rocky V 
  8. 3,8.22,5.28,0.00,# 1371   rocky@Rocky III 
  9. 2,0.00,0.00,7.60,# 154019 rocky@Belarmino 
  10. 2,0.00,0.00,7.10,# 1368   rocky@First Blood 
  11. 2,0.00,0.00,6.70,# 13258  rocky@Son of Rambow 
  12. 2,0.00,0.00,0.00,# 70808  rocky@Klitschko 
  13. 2,0.00,0.00,0.00,# 64807  rocky@Grudge Match 
  14. 2,0.00,0.00,0.00,# 47059  rocky@Boxing Gym 
  15. ... 

所以接下来直接来到代码的部分!下面的代码年腋荷琐CSV文件攫取数据到一个numpy数组;该数组是二维的,第一维作为行,第二维作为列。鄙人面的注释中可以看到很新潮的数组切片是若何进行的:

  1. from sklearn.linear_model import LinearRegression 
  2. from math import sin 
  3. import numpy as np 
  4. import csv 
  5.  
  6. rockyData = np.genfromtxt('rocky.csv', delimiter=',')[1:] # Remove the CSV header 
  7.  
  8. rockyGrades = rockyData[:,0]   # Slice out column 0, where the grades are 
  9. rockySignals = rockyData[:,1:-1]  # Features in columns 1...all but last column (the comment) 

不错!我们已预备好进行一个简单线性回归了。这里我们应用一个经典的断定办法:方程比未知数多!是以我们须要应用常最小二乘法来估算特点rockySignals和等级rockyGrades间的关系。很简单,这就是numpy线性回归所做的:

  1. butIRegress = LinearRegression() 
  2. butIRegress.fit(rockySignals, rockyGrades) 

这里给出了系数(即“权重”)用于我们的排序旌旗灯号,:

我们经由过程这些系数可以建立本身的排序函数。做这些只是为了描述目标,sk-learn的线性回归带有猜测办法,能评估作为输入的模型,然则构建我们本身的更有意思:

  1. butIRegress.coef_  #boost for title, boost for overview, boost for rating 
  2.  
  3. array([ 0.04999419,  0.22958357,  0.00573909]) 
  4.  
  5. butIRegress.intercept_ 
  6.  
  7. 0.97040804634516986 

漂亮!相干度解决了!(真的吗?)我们可以应用这些来建立一个排序函数。我们已经进修到了分别应用什么样的权重到标题和简介属性。

截至今朝,我忽视了一部分事项,即我们须要考量若何评价模型和数据的匹配度。在本文的结尾,我们只是想看看一般情况下这些模型是若何工作。但不只是假设该模型异常合适练习集数据是个不错的设法主意,老是须要回退一些数据来测试的。接下来的博文会分别介绍这些话题。


  推荐阅读

  有关机器学习每个人都应该了解的东西

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 本文科普了机械进修方面的常识,简单介绍了机械进修可以做什么,以及若何做的。以下是译文。在以前的几个月>>>详细阅读


本文标题:机器学习排序LTR入门——线性模型

地址:http://www.17bianji.com/lsqh/38146.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)