草庐IT

e_learning_system

全部标签

区块链安全理论与实践(Blockchain for Distributed Systems Security)阅读笔记D4——OM算法

OM算法拜占庭将军问题拜占庭将军问题是经典的共识问题之一。假设有NNN个拜占庭将军,每个人都指挥一个同样规模的军队,包围了一座地方城市。而拜占庭将军之间,是地理隔离的,他们之间只能通过信使送信进行交流。为了合作进攻,每个将军向其他将军送信传送消息进行投票来决定是否进攻。也就是说,每个将军会给其他N−1N-1N−1个将军派遣信使,信使会携带一个写着“进攻”或者“撤退”的信,当将军收到的“进攻”数量大于“撤退”数量的时候,就进攻,反之撤退。然而,敌军也不会坐以待毙,早已在将军的信使里面安插了间谍,他们通过送和原本的内容相反的信,来干扰投票。那么,我们通过设计一个什么样的算法,来使各个将军之间达成共

python - scikit-learn cross_val_predict 准确度分数是如何计算的?

cross_val_predict(参见doc,v0.18)是否使用如下代码所示的k-fold方法计算每个折叠的准确度并最终平均它们或不?cv=KFold(len(labels),n_folds=20)clf=SVC()ypred=cross_val_predict(clf,td,labels,cv=cv)accuracy=accuracy_score(labels,ypred)printaccuracy 最佳答案 不,它没有!根据crossvalidationdoc页面,cross_val_predict不返回任何分数,而只返回基

python - 使用 scikit learn 获取信息量最大的特征时遇到问题?

我试图从textualcorpus中获取信息量最大的特征。.从这个很好的回答question我知道这个任务可以按如下方式完成:defmost_informative_feature_for_class(vectorizer,classifier,classlabel,n=10):labelid=list(classifier.classes_).index(classlabel)feature_names=vectorizer.get_feature_names()topn=sorted(zip(classifier.coef_[labelid],feature_names))[-n:

python - 了解 scikit-learn KMeans 返回的 "score"

我对一组文本文档(大约100个)应用了聚类。我使用TfIdfVectorizer将它们转换为Tfidf向量,并将向量作为输入提供给scikitlearn.cluster.KMeans(n_clusters=2,init='k-means++',max_iter=100,n_init=10)。现在当我model.fit()printmodel.score()在我的向量上,如果所有文本文档都非常相似,我会得到一个非常小的值,如果文档非常不同,我会得到一个非常大的负值。我的基本目的是查找哪一组文档相似,但有人可以帮我理解这个model.score()值究竟意味着什么适合吗?我如何使用这个值来

python - 使用 Scikit-learn 计算信息增益

我正在使用Scikit-learn进行文本分类。我想针对(稀疏)文档术语矩阵中的一个类计算每个属性的信息增益。信息增益定义为H(Class)-H(Class|Attribute),其中H是熵。在weka中,这将使用InfoGainAttribute进行计算.但我在scikit-learn中没有找到这个度量。(suggested上面的信息增益公式与互信息的度量相同。这也符合wikipedia中的定义。是否可以在scikit-learn中对互信息使用特定设置来完成这项任务?) 最佳答案 你可以使用scikit-learn的mutual_

python - LogisticRegression.predict_proba 的 scikit-learn 返回值

LogisticRegression.predict_proba函数究竟返回什么?在我的示例中,我得到如下结果:[[4.65761066e-039.95342389e-01][9.75851270e-012.41487300e-02][9.99983374e-011.66258341e-05]]从其他计算中,我知道,使用sigmoid函数,第二列是概率。documentation说,第一列是n_samples,但那不可能,因为我的示例是评论,是文本而不是数字。文档还说,第二列是n_classes。这当然不可能,因为我只有两个类(即+1和-1),并且该函数应该是关于计算样本真正存在的概率

python - scikit-learn 适合大数据任务吗?

我正在处理一项涉及使用机器学习技术的TREC任务,其中数据集包含超过5TB的网络文档,计划从中提取词袋向量。scikit-learn有一组不错的功能,似乎符合我的需要,但我不知道它是否能很好地扩展以处理大数据。例如,HashingVectorizer是否能够处理5TB的文档,并行化是否可行?此外,对于大规模机器学习任务,还有哪些替代方案? 最佳答案 HashingVectorizer如果您将数据迭代地分block成批处理,例如适合内存的10k或100k个文档,那么HashingVectorizer将起作用。然后您可以将这批转换后的文

python - 为 Scikit-Learn 向量化 Pandas 数据框

假设我在Pandas中有一个如下所示的数据框:>my_dataframecol1col2AfooBbarCsomethingAfooAbarBfoo其中行表示实例,列输入特征(不显示目标标签,但这将用于分类任务),即我试图构建X出my_dataframe.我怎样才能有效地使用例如矢量化它?DictVectorizer?我是否需要先将DataFrame中的每个条目都转换为字典?(这就是上面链接中的示例中完成的方式)。有没有更有效的方法来做到这一点? 最佳答案 首先,我不知道您的示例数组中的哪些位置是特征,以及观察值在哪里。其次,Dic

python - 使用 scikit-learn 的 Web 应用程序

我在本地训练了一个sklearn分类器,我必须创建一个简单的Web应用程序来演示它的使用。我是网络应用程序开发的完全菜鸟,我不想浪费时间使用不支持我正在使用的模块的框架创建网络应用程序。您认为什么是完成这项任务的好方法?我应该使用什么网络应用开发框架(如果有的话)?我是否需要深入研究Heroku、django等内容,或者对于简单的科学演示是否有更简单、更快捷的解决方案?我的想法是获取我训练的分类器,在服务器上对其进行腌制和取消腌制,然后从服务器运行classify,但我不知道从哪里开始。 最佳答案 如果这只是为了演示,请离线训练您的

python - TensorFlow 分配内存 : Allocation of 38535168 exceeds 10% of system memory

使用ResNet50预训练的权重我正在尝试构建一个分类器。代码库完全在Keras高级TensorflowAPI中实现。完整代码发布在下面的GitHub链接中。源代码:ClassificationUsingRestNet50Architecture预训练模型的文件大小为94.7mb。我加载了预训练的文件new_model=Sequential()new_model.add(ResNet50(include_top=False,pooling='avg',weights=resnet_weight_paths))并拟合模型train_generator=data_generator.flo