标签: data-mining

如何处理数字猜谜游戏(带扭曲)算法?

我正在学习编程(Python和算法),并且正在尝试处理我感兴趣的项目.我已经创建了一些基本的Python脚本,但我不确定如何处理我正在尝试构建的游戏的解决方案.

以下是游戏的工作方式:

将为用户提供具有值的项目.例如,

Apple = 1
Pears = 2
Oranges  = 3
Run Code Online (Sandbox Code Playgroud)

然后他们将有机会选择他们喜欢的任何组合(即100个苹果,20个梨和一个橙色).计算机获得的唯一输出是总值(在此示例中,它当前为143美元).电脑会试着猜猜他们有什么.显然,第一回合无法正确使用.

         Value    quantity(day1)    value(day1)
Apple      1        100                100
Pears      2         20                 40
Orange     3          1                  3
Total               121                143
Run Code Online (Sandbox Code Playgroud)

下一轮用户可以修改他们的数量但不超过总数量的5%(或者我们可能选择的其他百分比.例如,我将使用5%).水果价格可以随意变化,因此总价值也可能因此而变化(为简单起见,本例中我没有改变水果价格).使用上面的例子,在游戏的第2天,用户在第3天返回$ 152和$ 164的值.这是一个例子:

Quantity (day2)   %change (day2)    Value (day2)   Quantity (day3)   %change (day3)   Value(day3)
 104                                 104            106                                106
  21                                  42             23                                 46
   2                                   6              4                                 12
 127               4.96%             152            133               4.72%            164
Run Code Online (Sandbox Code Playgroud)

*(我希望表格显示正确,我必须手动分隔它们,所以希望它不仅仅是在我的屏幕上进行,如果它不起作用,请告诉我,我会尝试上传截图.)

我试图看看我是否可以计算出一段时间内的数量(假设用户有耐心继续输入数字).我现在知道我唯一的限制是总价值不能超过5%所以我现在不能达到5%的准确度,所以用户将永远进入它.

到目前为止我做了什么

到目前为止,这是我的解决方案(不多).基本上,我采取所有的价值观并找出他们所有可能的组合(我完成了这一部分).然后我拿出所有可能的组合并将它们作为字典放入数据库中(例如,对于143美元,可能有一个字典条目{apple:143,Pears:0,Oranges:0} ..一直到{apple :0,Pears:1,Oranges:47}.每次我得到一个新号码时都这样做,所以我列出了所有可能性.

这就是我被困的地方.在使用上述规则时,我如何找出最佳解决方案?我想我需要一个健身功能,可以自动比较两天的数据,并消除前几天数据差异超过5%的任何可能性.

问题:

所以我的问题是用户改变总数而我有一个所有概率的列表,我该如何处理?我需要学习什么?是否有任何算法或我可以使用的理论适用?或者,为了帮助我理解我的错误,你能否建议我可以添加哪些规则以使这个目标可行(如果它不在当前状态.我正在考虑添加更多水果并说他们必须选择至少3个等等.) ?另外,我对遗传算法只有模糊的理解,但我认为我可以在这里使用它们,如果有什么我可以使用的吗?

我非常非常渴望学习,所以任何建议或提示将不胜感激(只是请不要告诉我这个游戏是不可能的).

更新:获得这很难解决的反馈.所以我认为我会在游戏中添加另一个条件,它不会干扰玩家正在做的事情(游戏对他们保持不变),但每天水果的价值会随机变化(随机).这会让它更容易解决吗?因为在5%的运动和某些果实值变化中,随着时间的推移可能只有少数组合.

第1天,任何事都有可能并且获得足够接近的范围几乎是不可能的,但随着水果价格的变化而用户只能选择5%的变化,那么不应该(随着时间的推移)范围变窄和变窄.在上面的例子中,如果价格足够波动,我想我可以强行推出一个解决方案给我一个范围来猜测,但我想弄清楚是否有一个更优雅的解决方案或其他解决方案来保持缩小这个范围时间.

更新2:在阅读并询问后,我相信这是一个隐藏的马尔可夫/维特比问题,它跟踪水果价格的变化以及总和(加权最后的数据点最重).我不知道如何应用这种关系.我认为情况确实如此,但至少我开始怀疑这是某种类型的机器学习问题.

更新3:我创建了一个测试用例(数字较小)和一个生成器来帮助自动生成用户生成的数据,我试图从中创建一个图表来查看更有可能的数据.

这是代码,以及用户实际结果数量的总值和注释.

#!/usr/bin/env …
Run Code Online (Sandbox Code Playgroud)

python java algorithm machine-learning data-mining

52
推荐指数
3
解决办法
3399
查看次数

决策树与朴素贝叶斯分类器

我正在研究不同的数据挖掘技术,并遇到了一些我无法弄清楚的事情.如果任何人有任何想法会很棒.

在哪种情况下,使用决策树和其他情况更好的是朴素贝叶斯分类器?

为什么在某些情况下使用其中一个?而另一个在不同的情况下?(通过查看其功能,而不是算法)

有人对此有一些解释或参考吗?

data-mining bayesian-networks decision-tree

47
推荐指数
1
解决办法
6万
查看次数

R随机森林变量重要性

我试图使用随机森林包在R中进行分类.

列出的可变重要性措施是:

  • 对于0级,变量x的平均原始重要性得分
  • 第1类的变量x的平均原始重要性得分
  • MeanDecreaseAccuracy
  • MeanDecreaseGini

现在我知道这些"意思"是什么,因为我知道他们的定义.我想知道的是如何使用它们.

我真正想知道的是,这些价值仅仅意味着它们是多么准确,什么是好价值,什么是坏价值,什么是最大值和最小值等等.

如果变量有高MeanDecreaseAccuracy或者MeanDecreaseGini这意味着它是重要的还是不重要的?此外,有关原始分数的任何信息也可能有用.我想知道有关这些数字的所有信息,这些数字与它们的应用相关.

使用"错误","求和"或"置换"等词语的解释将不那么有用,因为更简单的解释不涉及任何关于随机森林如何运作的讨论.

就像我希望有人向我解释如何使用收音机一样,我不希望这个解释涉及无线电如何将无线电波转换成声音.

statistics r data-mining random-forest

46
推荐指数
3
解决办法
5万
查看次数

使用scikit-learn在Naive Bayes分类器中混合分类和连续数据

我正在使用Python中的scikit-learn开发一种分类算法来预测某些客户的性别.除此之外,我想使用朴素贝叶斯分类器,但我的问题是我有混合的分类数据(例如:"在线注册","接受电子邮件通知"等)和连续数据(例如:"年龄","长度")会员资格"等).我之前没有使用scikit,但我认为高斯朴素贝叶斯适用于连续数据,而伯努利朴素贝叶斯可用于分类数据.但是,由于我想在我的模型中同时拥有分类和连续数据,我真的不知道如何处理这个问题.任何想法将不胜感激!

python classification machine-learning data-mining scikit-learn

43
推荐指数
3
解决办法
1万
查看次数

计算R中的AUC?

给定分数向量和实际类标签的向量,如何计算R语言或简单英语中二进制分类器的单数AUC度量?

"AUC:一个更好的测量......"的第9页似乎需要知道类标签,这里是MATLAB中我不明白的例子

R(Actual == 1))
Run Code Online (Sandbox Code Playgroud)

因为R(不要与R语言混淆)被定义为向量但是用作函数?

r machine-learning data-mining auc

42
推荐指数
7
解决办法
9万
查看次数

如何计算线性回归中的正则化参数

当我们有一个高度线性多项式用于拟合线性回归设置中的一组点时,为了防止过度拟合,我们使用正则化,并在成本函数中包含一个lambda参数.然后,该lambda用于更新梯度下降算法中的theta参数.

我的问题是我们如何计算这个lambda正则化参数?

regression machine-learning data-mining

40
推荐指数
3
解决办法
6万
查看次数

我们可以从客户端获取哪些信息?

我正在尝试编译可通过javascript访问的信息列表,例如:

  • 地理位置
  • IP地址
  • 浏览器软件
  • 退出位置
  • 入口位置

我知道用户可以改变任何这些信息,并且它的可靠性纯粹与信任有关,但我仍然对从客户端挖掘的其他信息感兴趣.

javascript data-mining data-retrieval

38
推荐指数
3
解决办法
5万
查看次数

如何提取文本中使用的关键字?

如何通过数据挖掘一堆文本来获取关键字?("雅各布史密斯"或"围栏")

是否有软件可以做到这一点?甚至半自动,如果它可以过滤掉简单的单词,如"the","and","或",那么我可以更快地找到主题.

indexing text data-mining keyword

36
推荐指数
4
解决办法
5万
查看次数

比较R与Matlab进行数据挖掘

我最近开始学习R,而不是开始用Matlab编写代码,主要是因为它是开源的.我目前在数据挖掘和机器学习领域工作.我发现在R中实现了许多机器学习算法,我仍在探索在R中实现的不同包.

我有一个简单的问题:你如何比较R和Matlab的数据挖掘应用,它的受欢迎程度,利弊,行业和学术接受度等?你会选择哪一个?为什么?

我针对各种指标对Matlab与R进行了各种比较,但我特别感兴趣的是能够得到它在数据挖掘和ML中的适用性的答案.由于这两种语言对我来说都很新,我只是想知道R是否是一个不错的选择.

我感谢任何建议.

matlab language-comparisons r machine-learning data-mining

35
推荐指数
2
解决办法
3万
查看次数

PCA或SVD在机器学习中的重要性

所有这些时间(特别是在Netflix竞赛中),我总是遇到这个博客(或排行榜论坛),他们提到如何通过对数据应用简单的SVD步骤帮助他们减少数据的稀疏性或者通常提高他们的算法的性能手.我想(很久以来),但我无法猜测为什么会如此.一般来说,我得到的数据非常嘈杂(这也是bigdata的有趣部分),然后我知道一些基本的功能扩展,如日志转换的东西,平均规范化.但是像SVD这样的东西有什么帮助.所以,假设我有一个巨大的用户评级电影矩阵......然后在这个矩阵中,我实现了一些推荐系统版本(比如协同过滤):

1) Without SVD
2) With SVD
Run Code Online (Sandbox Code Playgroud)

它是如何帮助谢谢的

machine-learning netflix data-mining svd bigdata

35
推荐指数
2
解决办法
2万
查看次数