如果我需要促进数据的提取来自各种(非API)互联网资源,是否有将简化具有开发者编写可重用的,但源特定解析器大规模的过程的框架型溶液?
我是R的新手,无法弄清楚我在下面的代码中可能做错了什么以及如何加快速度.我有一个数据集,并希望添加一个包含从两列数据计算的平均值的列.请看下面的代码(警告:可能需要一些时间来阅读我的问题,但代码在R中正常运行):
首先让我定义一个数据集df(我再次为代码的长描述道歉)
> df<-data.frame(prediction=sample(c(0,1),10,TRUE),subject=sample(c("car","dog","man","tree","book"),10,TRUE))
> df
prediction subject
1 0 man
2 1 dog
3 0 man
4 1 tree
5 1 car
6 1 tree
7 1 dog
8 0 tree
9 1 tree
10 1 tree
Run Code Online (Sandbox Code Playgroud)
接下来,我将一个名为subjectRate的新列添加到df中
df$subjectRate <- with(df,ave(prediction,subject))
> df
prediction subject subjectRate
1 0 man 0.0
2 1 dog 1.0
3 0 man 0.0
4 1 tree 0.8
5 1 car 1.0
6 1 tree 0.8
7 1 dog 1.0
8 …Run Code Online (Sandbox Code Playgroud) 我正在使用Weka的J48(C4.5)决策树分类器.一般来说,对于决策树,一旦你击中叶子就能确定分类概率分布吗?我知道Naive Bayes,每次分类尝试都会产生分类分布.
如果可以使用决策树,那么Weka J48树是否可以使用此功能?我也可以尝试实现自己的树.
ID3算法使用"信息增益"度量.
C4.5使用"增益比"度量,即信息增益除以SplitInfo,而SplitInfo对于分割,其中记录在不同结果之间均匀分配,否则为低.
我的问题是:
这有助于解决信息增益偏向于具有多种结果的分裂的问题?我看不出原因.SplitInfo甚至没有考虑结果的数量,只考虑分裂中的记录分布.
很可能是结果数量较少(比如2),并且记录在这两种结果之间平均分配.在这种情况下,SplitInfo高,增益比率低,C4.5选择的结果很少.
另一方面,可能是结果数量较少,但分布远不均匀.在这种情况下,SplitInfo低,增益比率高,并且更有可能选择具有许多结果的分裂.
我错过了什么?
我读到k-means算法只收敛到局部最小值而不是全局最小值.为什么是这样?我可以从逻辑上思考初始化如何影响最终的聚类,并且有可能进行次优聚类,但我没有找到任何可以在数学上证明这一点的东西.
另外,为什么k-means是一个迭代过程?我们难道不能将目标函数wrt部分区分为质心,将其等于零以找到最小化此函数的质心吗?为什么我们必须使用梯度下降来逐步达到最小值?
我想对使用python和scikits.learn的最佳聚类技术提出一些建议.我们的数据来自表型微阵列,其测量细胞在各种底物上的代谢活性随时间的变化.输出是一系列S形曲线,我们通过拟合到S形函数来提取一系列曲线参数.
我们希望使用固定数量的聚类通过聚类来"排列"此活动曲线.目前我们正在使用包提供的k-means算法,其中(init ='random',k = 10,n_init = 100,max_iter = 1000).输入是一个矩阵,每个样本有n_samples和5个参数.样本数量可以变化,但通常约为数千(即5'000).聚类似乎是高效和有效的,但我将不胜感激任何关于不同方法或对聚类质量进行评估的最佳方法的建议.
这里有几个可能有用的图表:
输入参数的散点图(其中一些非常相关),单个样本的颜色相对于指定的簇.

提取输入参数的sigmoid曲线,其颜色相对于其指定的簇

编辑
下面是一些肘部图和每个簇数的轮廓得分.

例如,当我在R(pROC包)中使用multiclass.roc函数时,我通过随机林训练了一个数据集,这是我的代码:
# randomForest & pROC packages should be installed:
# install.packages(c('randomForest', 'pROC'))
data(iris)
library(randomForest)
library(pROC)
set.seed(1000)
# 3-class in response variable
rf = randomForest(Species~., data = iris, ntree = 100)
# predict(.., type = 'prob') returns a probability matrix
multiclass.roc(iris$Species, predict(rf, iris, type = 'prob'))
Run Code Online (Sandbox Code Playgroud)
结果是:
Call:
multiclass.roc.default(response = iris$Species, predictor = predict(rf,
iris, type = "prob"))
Data: predict(rf, iris, type = "prob") with 3 levels of iris$Species: setosa,
versicolor, virginica.
Multi-class area under the curve: 0.5142
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?谢谢!!!
"pROC"参考:http …
昨天我了解到余弦相似度,定义为

可以有效地测量两个向量的相似程度.
我发现这里的定义使用L2范数来标准化和的点积,A而B我感兴趣的是为什么不使用A和B分母中的L1范数?
我的老师告诉我,如果我在分母中使用L1范数,那么余弦相似度不会是1 A=B.然后,我进一步问他,如果我修改余弦相似度定义如下,与原始模型相比,修改后的模型有哪些优缺点?
如果A!= B,则sim(A,B)=(A*B)/(|| A || 1*|| B || 1)
如果A == B,则sim(A,B)= 1
如果有人能给我一些解释,我将不胜感激.
cluster-analysis distance similarity data-mining cosine-similarity
我想使用Python Tweepy请求有关特定主题的推文(例如:“ cancer”)。但是通常,例如只能通过特定的日期指定其时间。
startSince = '2014-10-01'
endUntil = '2014-10-02'
for tweet in tweepy.Cursor(api.search, q="cancer",
since=startSince, until=endUntil).items(999999999):
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以指定时间,以便我收集2014-10-01 00:00:00和2014-10-02 12:00:00之间的“癌症”推文?这是为我的学术研究而准备的:我能够收集上个月的癌症推文,但是由于癌症认识月份的突然爆发,“乳腺癌”推文的数量激增了我的脚本,我必须在不同的时间段收集它们,如果无法很快找到,我将无法检索2014年10月1日的推文。
我阅读有关的n-gram和我想知道是否存在,当实践的情况下,单克会优于使用双克(或更高的n-gram).据我所知,N越大,计算概率和建立向量空间的复杂性就越大.但除此之外,还有其他原因(例如与数据类型有关)吗?
data-mining ×10
python ×2
r ×2
convergence ×1
dataframe ×1
distance ×1
gradient ×1
k-means ×1
math ×1
n-gram ×1
nlp ×1
performance ×1
python-2.7 ×1
roc ×1
scikit-learn ×1
similarity ×1
statistics ×1
text-parsing ×1
tweepy ×1
twitter ×1
weka ×1