【发布时间】:2018-04-13 01:40:48
【问题描述】:
目前我正在学校做我的项目,我有一些非同寻常的任务。我的工作是从 facebook 上的某个页面抓取数据并将其放入学习模型中,其中应该有 1 个输入为 List,输出为 Int32。
首先,让我简单解释一下我已经设计的算法:
- 抓取数据
- 阻止它
- 删除了大写、标点、表情符号和空格
- 同根词合并
- 计算单词的出现次数并为每个单词分配计数值
- 执行 tf-idf 计算以提取每个帖子中每个单词的权重
现在,我有一个
Dictionary<String,List<double[],int>>,它代表
postId:[wordWeights],amountOfLikes作为
23425234_35242352:[0.027,0.031,0.009,0.01233],89
我必须用不同的帖子和他们的喜好来训练我的模型。为此,我们选择在 C# 上使用 Accord.NET 库,并到目前为止分析了他们的简单线性回归类。
首先,我看到我可以使用 OrdinaryLeastSqure 并为其提供可能的输入和输出
double[] input = {0.123,0.23,0.09}
double[] output = {98,0,0}
OrdinaryLeastSquares ols = new OrdinaryLeastSquares();
regression = ols.Learn(inputs, output);
如您所见,数组中的输入数量应与输出数量相匹配,因此,我用零来实现它。结果,我得到了明显的错误输出。我无法想出将我的数据提供给Linear Regression Class 的正确方法。我知道用零填充数组的方法是错误的,但它是迄今为止我想出的唯一解决方案。如果有人告诉我在这种情况下我应该如何使用回归并帮助选择合适的算法,我将不胜感激。干杯!
【问题讨论】:
标签: c# .net machine-learning regression accord.net