人们经常抛弃IR,ML和数据挖掘这两个术语,但我注意到它们之间有很多重叠.
对于那些在这些领域有经验的人来说,究竟是什么划清界限?
在最小二乘模型中,成本函数被定义为预测值和实际值之间的差的平方,作为输入的函数.
当我们进行逻辑回归时,我们将成本函数更改为对数函数,而不是将其定义为sigmoid函数(输出值)和实际输出之间差异的平方.
是否可以更改和定义我们自己的成本函数来确定参数?
我正在研究一种数据挖掘算法,我想从特征空间的特定点中选择一个随机方向.
如果我为[-1,1]中的每个n维选择一个随机数,然后将矢量标准化为长度1,我将在所有可能的方向上得到均匀分布?
我在理论上只是在这里说,因为计算机生成的随机数实际上并不是随机的.
random distribution data-mining uniform computational-geometry
任何人都可以指向一个可以聚类约100万个对象的层次聚类工具(最好是在python中)吗?我试过hcluster,还有橘子.
hcluster18k物体有问题.Orange能够在几秒钟内聚集18k个对象,但失败了100k对象(饱和内存并最终崩溃).
我在Ubuntu 11.10上运行64位Xeon CPU(2.53GHz)和8GB RAM + 3GB交换.
python cluster-analysis machine-learning hierarchical-clustering data-mining
更新:最后,我选择用于聚类我的大型数据集的解决方案是Anony-Mousse在下面提出的解决方案.也就是说,使用ELKI的DBSCAN实现我的聚类而不是scikit-learn.它可以从命令行运行,并通过适当的索引,在几个小时内完成此任务.使用GUI和小样本数据集来计算您想要使用的选项,然后前往城镇.值得研究.Anywho,请继续阅读我原始问题的描述和一些有趣的讨论.
我有一个包含大约250万个样本的数据集,每个样本都有35个特征(浮点值),我正在尝试聚类.我一直在尝试使用scikit-learn的DBSCAN实现,使用曼哈顿距离度量和从数据中提取的一些小随机样本估计的epsilon值.到现在为止还挺好.(这里是摘录,供参考)
db = DBSCAN(eps=40, min_samples=10, metric='cityblock').fit(mydata)
Run Code Online (Sandbox Code Playgroud)
我现在的问题是我很容易耗尽内存.(我目前正在使用16 GB RAM的机器)
我的问题是,DBSCAN是否在运行时动态计算成对距离矩阵,那是什么在吞噬我的记忆?(250万^ 2)*8字节显然是愚蠢的大,我会理解.我应该不使用这种fit()方法吗?更一般地说,有没有办法绕过这个问题,或者我一般在这里咆哮错误的树?
如果答案结果明显,请道歉.我已经困惑了几天.谢谢!
附录:如果有人能更明确地解释我fit(X)和fit_predict(X)我之间的区别,我也会感激 - 我担心我不太明白.
附录#2:可以肯定的是,我只是在一台拥有~550 GB RAM的机器上尝试了这个并且它仍然爆炸,所以我觉得DBSCAN可能会尝试制作成对距离矩阵或者我明显不想要的东西去做.我想现在最大的问题是如何阻止这种行为,或找到更适合我需要的其他方法.谢谢你在这里与我合作.
附录#3(!):我忘了附上追溯,就在这里,
Traceback (most recent call last):
File "tDBSCAN.py", line 34, in <module>
db = DBSCAN(eps=float(sys.argv[2]), min_samples=10, metric='cityblock').fit(mydata)
File "/home/jtownsend/.local/lib/python2.6/site-packages/sklearn/base.py", line 329, in fit_predict
self.fit(X)
File "/home/jtownsend/.local/lib/python2.6/site-packages/sklearn/cluster/dbscan_.py", line 186, in fit
**self.get_params())
File "/home/jtownsend/.local/lib/python2.6/site-packages/sklearn/cluster/dbscan_.py", line 69, in dbscan
D = pairwise_distances(X, metric=metric)
File "/home/jtownsend/.local/lib/python2.6/site-packages/sklearn/metrics/pairwise.py", line 651, in pairwise_distances
return func(X, Y, **kwds)
File "/home/jtownsend/.local/lib/python2.6/site-packages/sklearn/metrics/pairwise.py", line …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用scikit-learn来集群文本文档.总的来说,我找到了解决办法,但我遇到了具体问题.我发现的大多数例子都说明了使用scikit-learn和k-means作为聚类算法的聚类.在我的设置中采用k-means这些例子原则上是有效的.但是,k-means不适合,因为我不知道簇的数量.从我到目前为止所读到的内容 - 如果需要请在这里纠正我 - 在我的情况下,DBSCAN或MeanShift似乎更合适.scikit-learn网站提供了每个群集算法的示例.现在的问题是,对于DBSCAN和MeanShift,我得到了我无法理解的错误,更不用解决了.
我的最小代码如下:
docs = []
for item in [database]:
docs.append(item)
vectorizer = TfidfVectorizer(min_df=1)
X = vectorizer.fit_transform(docs)
X = X.todense() # <-- This line was needed to resolve the isse
db = DBSCAN(eps=0.3, min_samples=10).fit(X)
...
Run Code Online (Sandbox Code Playgroud)
(我的文档已经处理完毕,即已删除了停用词并且已应用了Porter Stemmer.)
当我运行此代码时,我在实例化DBSCAN并调用时收到以下错误fit():
...
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/dbscan_.py", line 248, in fit
clust = dbscan(X, **self.get_params())
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/dbscan_.py", line 86, in dbscan
n = X.shape[0]
IndexError: tuple index out of range
Run Code Online (Sandbox Code Playgroud)
单击该行dbscan_.py引发错误,我注意到以下行
...
X = np.asarray(X)
n = X.shape[0]
... …Run Code Online (Sandbox Code Playgroud) cluster-analysis machine-learning data-mining dbscan scikit-learn
根据我的理解,我认为PCA只能用于连续功能.但是,虽然试图理解onehot编码和标签编码之间的区别来自以下链接中的帖子:
何时使用One Hot Encoding vs LabelEncoder vs DictVectorizor?
它指出PCA之后的一个热编码是一种非常好的方法,这基本上意味着PCA应用于分类特征.因此困惑,请建议我一样.
在我的计算机科学学习期间,我爱上了人工智能的许多方面.从专家系统,神经网络到数据挖掘(分类).我想知道,如果我要专业地改变这种学术热情,那里有哪种人工智能相关的工作?
我打算用Java开发程序来提供诊断.数据集分为两部分,一部分用于培训,另一部分用于测试.我的程序应该学习从训练数据中分类(BTW其中包含30个问题的答案,每个新栏目,新行中的每个记录最后一栏将被诊断为0或1,在数据诊断栏的测试部分将为空 - 数据集包含大约1000条记录),然后在测试部分数据时进行预测:/
我从来没有做过任何类似的事情,所以我会感谢有关解决类似问题的任何建议或信息.
我在考虑Java机器学习库或Java数据挖掘包,但我不确定它是否正确的方向......?我仍然不确定如何应对这一挑战......
请指教.
祝一切顺利!
java groovy artificial-intelligence machine-learning data-mining
我有一个介于0和1之间的13.876(13,876)值的数组.我想sklearn.cluster.KMeans仅应用此向量来查找值被分组的不同群集.然而,似乎KMeans使用多维数组而不是一维数组.我想有一个技巧可以使它工作,但我不知道如何.我看到KMeans.fit()接受"X:array-like或sparse matrix,shape =(n_samples,n_features)",但它希望n_samples大于1
我尝试将我的数组放在np.zeros()矩阵上并运行KMeans,但是然后将所有非null值放在class 1上,其余的放在class 0上.
任何人都可以帮助在一维数组上运行此算法?非常感谢!
data-mining ×10
python ×4
scikit-learn ×4
dbscan ×2
distribution ×1
groovy ×1
java ×1
k-means ×1
random ×1
regression ×1
uniform ×1