我想在我的程序中使用特征提取,然后估计每个特征的最佳权重并计算新输入记录的分数。
例如,我有一个释义数据集。该数据集中的每个记录是一对两个句子,两个句子的相似性用0和1之间的值表示。 4个功能,我创建了具有这些特征值和相似性得分的新数据集。我想使用这个新数据集来学习权重:
复述数据集:
"A problem was solved by a mathematician"; "A mathematician was found a solution for a problem"; 0.9
.
.
新数据集:
0.42; 0.61; 0.21; 0.73; 0.9
.
.
我想使用回归来估计每个要素的权重。我想用程序1计算程序中输入句子的相似度:S = W1*F1 + W2*F2 + W3*F3 + W4*F4
我知道回归算法可以用于这项工作,但我不知道如何?请指导我做这项工作? 是否有任何纸张或文档使用回归算法?
答案 0 :(得分:2)
您正在寻找的是一个简单的 linear regression (顺便说一句,它不是算法,而是 - 数据建模方法,算法用于查找线性回归参数,但回归本身不是算法),但你还应该将偏差(截距)项添加到等式中,使其成为:
S = w1*f1 + w2*f2 + w3*f3 + w4*f4 + b
或以矢量化格式
s = <F,W> + b
其中<F,W>
是权重和特征的内在产物,b
是偏见(实值变量)
要统一,你可以添加一个常数值f5 = 1,并包含w5
而不是b,所以它变为
s = <F,W>
您可以使用Ordinary Least Squares方法
解决此问题W = (F'F)^(-1)F's
导致残差平方和的最佳线性回归。
在每种编程语言中,您都可以找到用于执行线性回归的库,因此您无需自己实现它。特别是,库也会引入b
变量,因此不需要自己实现它。