在研究了决策树一段时间后,我注意到有一个叫做 boosting 的小技术。我看到在正常情况下,它会提高决策树的准确性。
所以我只是想知道,为什么我们不简单地将这种提升纳入我们构建的每个决策树中?由于目前我们将 boosting 作为一种单独的技术离开,所以我在思考:使用 boosting 比仅使用单个决策树有什么缺点吗?
谢谢你帮助我!
artificial-intelligence machine-learning data-mining decision-tree
经过多年使用 SAS/SPSS 产品进行数据挖掘后,我刚刚开始使用 scikit-learn。我对 scikit-learn 和 pandas 的能力感到惊讶,但是有一件事我自己无法弄清楚。让我们假设我的训练数据是由整数构建的,其中一些编码分类值。有什么方法可以控制如何通过树或任何集成树(例如:ExtraTreesClassifier)算法解释变量?正确的方法是将变量类型从 int 更改为 object,或者我可以学习一个常见的技巧吗?
谢谢,迪拉
我理解了 VSM、TFIDF 和余弦相似度的概念,但是,在阅读 lucene 网站后,我仍然对 lucene 如何构建 VSM 并计算每个查询的相似度感到困惑。
据我了解,VSM 是一个矩阵,其中填充了每个术语的 TFIDF 值。当我尝试从一组文档构建 VSM 时,这个工具花了很长时间http://sourceforge.net/projects/wvtool/ 这与编码没有真正的关系,因为直观地构建大数据的 VSM 矩阵是耗时,但 lucene 似乎并非如此。
此外,使用预构建的 VSM,找到最相似的文档,这基本上是计算两个文档之间的相似度或查询与文档之间的相似度,通常很耗时(假设有数百万个文档,因为必须计算与其他人的相似度),但 lucene 似乎它真的很快。我想这也与它如何在内部构建 VSM 有关。如果可能,有人也可以解释一下吗?
所以请帮助我理解这里的两点:1. lucene 如何如此快速地构建 VSM,可用于计算相似度。2.为什么百万文档之间的lucene相似度计算这么快?
如果给出一个真实的例子,我将不胜感激。谢谢
目前,我正在使用 Orange 数据挖掘软件工具来试验我的数据。我们是否能够从 Python 脚本运行 Orange 而不是使用软件(我们可以编写一些 Python 代码来执行程序吗?)。我有一个 Python 脚本来生成数据文件。我想编写一个 Python 脚本来使用 Orange 的不同功能。那可能吗。我们有这方面的教程吗?谢谢
我正在使用 Apache Spark 开展多个项目,并且一直停留在异常/离群值检测部分。
我使用聚类技术来查找异常,其想法是异常/离群值将形成自己的聚类,这意味着被视为异常的数据点实际上是聚类中心。如果与数据量相关的异常值很少,则此方法有效,但如果有很多异常值,则此方法不起作用。到目前为止,这是我的代码:https: //github.com/Guillermo19/MyTest/blob/3511d33f5c7336adef04f2f93a69f1af7865e066/anomalyDetection.java
我确信我的离群点成为聚类中心的想法是正确的,但这取决于生成的聚类数量,并且到目前为止数据本身和聚类数量之间没有任何关系,所以我找不到一个根据可能的异常值的数量来增加聚类的方法。
我可以在程序中修复/修改哪些内容才能使用聚类正确显示异常值?
或者如果我可以使用不同的方法解决这个问题请告诉我。我个人认为聚类是查找异常值最可行、最好的方法之一......
编辑:这是我迄今为止一直在工作的数据,以及预期的异常结果:
第一个文件:
Name Size Records
File1 1000 104370
File2 997 103121
File3 1500 109123
File4 2170 113888
File5 2000 111974
File6 1820 110666
File7 1200 106771
File8 1500 108991
File9 1000 104007
File10 1300 107037
File11 1900 111109
File12 1430 108051
File13 1780 110006
File14 2010 114449
File15 2017 114889
File16 800 88812 //possible outlier. My program does indeed show this
File17 1307 107098
File18 1519 109321
File19 1641 110777
File20 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 CLVTools 包在 R 中进行 CLV 分析。根据作者的说法,这个包是 BTYD 包的改进版本。\n我没有使用这个包的经验,所以我确信这个问题可以很容易地解决。
\n我的数据由 client_id、transaction_date 和total_revenue 组成,其中每个观察代表一次客户购买。这是在我的环境中进行 CLV 分析所需的所有数据。
\n当我尝试使用该函数创建 CLV 数据对象时,出现问题clvdata()。\n我收到错误消息:
Error: Parameter estimation.split needs to indicate a point at least 2 periods before the last transaction!\nRun Code Online (Sandbox Code Playgroud)\n我无法找到任何解释为什么会发生这种情况,我的数据看起来与他们用于示例的数据相同。
\n这是clvdata()包含参数的函数:
clv.apparel <- clvdata(Data_for_CLV, \n date.format="ymd", \n time.unit = "week",\n estimation.split = 40,\n name.id = "Client_ID",\n name.date = "Transaction_Date",\n name.price = "Total_Revenue")\nRun Code Online (Sandbox Code Playgroud)\n- - - - 编辑 - - - -
\n删除后,estimate.split …
我正在尝试使用Perl API从网站中提取数据.我正在使用URI列表来从网站获取数据.
最初的问题是,如果没有可用于URI的数据,它将会死亡,我希望它跳过该特定的URI并转到下一个可用的URI.我曾经next unless ....;遇到过这个问题.
现在问题是我试图通过从API调用特定方法(称为标识符())来从Web提取特定数据.现在数据可用于URI,但是我正在寻找的特定数据(标识符)不可用而且它已经死亡.
我试着像这样使用eval {}
eval {
for $bar ($foo->identifiers()){
#do something
};
}
Run Code Online (Sandbox Code Playgroud)
当我使用eval {}时,我认为它会跳过错误并向前移动,但我不确定.因为它给出的错误是"响应中的内容类型无效:text/plain".
我手动检查了URI,虽然它没有标识符,但它有其余的数据.我希望这跳过并转移到下一个URI.我怎样才能做到这一点?
我得到了一位专家的回复: 当Perl遇到错误时,就像大多数语言一样,它会在调用上下文中按顺序运行,直到它找到一个可以处理错误的地方.Perl最基本的错误处理是eval {}(但是如果可以的话,我会使用Try :: Tiny,因为更清楚的是你正在进行错误处理而不是eval可以做的其他一些奇怪的事情).无论如何,当Perl命中eval {}时,整个eval {}退出,$&设置为错误.因此,在循环外部使用eval {}意味着错误将离开循环.如果将eval {}放在循环中,当发生错误时,eval {}将退出,但您将继续进行下一次迭代.就这么简单.
但实际上我得到的错误是响应中的无效内容类型:mycode第41行的text/html和我的代码中的第41行(我的程序)实际上是来自web的数据.我知道代码中没有错误,因为它适用于以前的uris.现在,我该如何修复此错误并继续前进到下一个uri?我的程序坚持这个错误.
从数学的角度来看,我正和某人谈论朴素贝叶斯分类器.我们讨论的是如果将大量概率相乘,最终原始类型如float或double将无法存储结果值,它只会变为零.
P(x1)*P(x2)*... =对于计算机来说太小的数字= 0
我采访过的人说,"解决方法"是记录概率,然后将它们加在一起.
log(P(x1))+ log(P(x2))+ ...
我理解了记录概率的优点,它增加了数字的大小,使它不会"脱落",但你怎么能在那之后将它们加在一起呢?是不是当你运行朴素贝叶斯时,只要你对所有分类"桶"一直这样做,你仍然可以在一天结束时找到最好的那个?
任何解释都表示赞赏.谢谢,
MJ
我已经阅读了很多文章,但我似乎没有得到关于什么是大数据的完全清楚的答案.在一个页面中,我看到"任何对您的使用来说更大的数据,都是大数据,即100 MB被认为是您邮箱的大数据,而不是您的硬盘".而另一篇文章说"大数据通常超过1 TB,不同的数量/种类/速度,不能存储在一个系统中".此外,该数据应存储在NOSQL数据库中,其中Hadoop用于转换数据.
此外,我一直在研究解决方案,并想知道我是否可以将其归类为大数据.以下解决方案的片段,
任何帮助将非常感激.谢谢 !
我正在寻找一种基于共享字母检测单词(文本字符串)相似性的方法.
我正在研究Hash函数,尤其是Rabin-Karp算法,以便在更大的字符串中找到类似的单词.
但它并不适用于我想要的案例:在我的案例中,基于德国银行,我认为"类似"的三个例子:"德意志银行","邮政银行"和"兰德银行".这三个人的名字中都有"银行"字样,但只有德意志银行将其作为单个字.因此,基本上根据共享字符来衡量单词的相似性.我认为应该有一个限制,如果可能的话,只应考虑≥4个字符的相似之处.
如果我只是在寻找"银行"这个词,我会硬编码.但我正在寻找一种方法来找到这样的相似名称/字符串,而不是首先知道它.
data-mining ×10
algorithm ×1
apache-spark ×1
api ×1
bigdata ×1
indexing ×1
lucene ×1
math ×1
orange ×1
perl ×1
python ×1
r ×1
scikit-learn ×1
similarity ×1
ssis ×1
tf-idf ×1