Questions tagged «machine-learning»

有关机器学习算法的实现问题。有关机器学习的一般问题应发布到其特定社区。


7
是否有关于如何将数据集划分为训练集和验证集的经验法则?
是否有关于如何将数据最佳地分为训练和验证集的经验法则?建议采用50/50的均分方式吗?还是相对于验证数据,拥有更多的训练数据是否有明显的优势(反之亦然)?还是这个选择几乎取决于应用程序? 我主要分别使用了80%/ 20%的训练和验证数据,但我选择该部门时没有任何原则性的理由。能在机器学习方面有更多经验的人可以给我建议吗?

6
将分类器保存到scikit-learn中的磁盘
如何保存经过训练的朴素贝叶斯分类器到磁盘并用于预测数据? 我有来自scikit-learn网站的以下示例程序: from sklearn import datasets iris = datasets.load_iris() from sklearn.naive_bayes import GaussianNB gnb = GaussianNB() y_pred = gnb.fit(iris.data, iris.target).predict(iris.data) print "Number of mislabeled points : %d" % (iris.target != y_pred).sum()


14
高维数据中的最近邻居?
几天前,我已经问了一个问题,该问题是如何找到给定向量的最近邻居。我的向量现在是21维,在继续下一步之前,因为我既不是机器学习也不是数学领域的专家,所以我开始问自己一些基本问题: 欧几里得距离是一个很好的度量标准,可以用来首先找到最近的邻居?如果没有,我有什么选择? 另外,如何确定用于确定k个邻居的正确阈值?是否可以进行一些分析以找出该值? 以前,有人建议我使用kd-Trees,但Wikipedia页面上明确指出,对于高维,kd-Tree几乎等同于蛮力搜索。在那种情况下,有效地找到一百万个点数据集中的最近邻居的最佳方法是什么? 有人可以澄清上面的一些(或全部)问题吗?

11
为什么binary_crossentropy和categorical_crossentropy对同一问题给出不同的性能?
我正在尝试训练CNN以按主题对文本进行分类。当我使用二进制交叉熵时,我的精度约为80%,而使用分类交叉熵时,我的精度约为50%。 我不明白为什么会这样。这是一个多类问题,这是否意味着我必须使用分类交叉熵,而具有二进制交叉熵的结果却毫无意义? model.add(embedding_layer) model.add(Dropout(0.25)) # convolution layers model.add(Conv1D(nb_filter=32, filter_length=4, border_mode='valid', activation='relu')) model.add(MaxPooling1D(pool_length=2)) # dense layers model.add(Flatten()) model.add(Dense(256)) model.add(Dropout(0.25)) model.add(Activation('relu')) # output layer model.add(Dense(len(class_id_index))) model.add(Activation('softmax')) 然后我将其categorical_crossentropy作为损失函数像这样编译它: model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) 要么 model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 从直觉上讲,为什么我要使用分类交叉熵是合理的,我不明白为什么使用二进制得到好的结果,而使用分类不好的原因。




5
如何将数据分为3组(训练,验证和测试)?
我有一个熊猫数据框,我希望将其分为3组。我知道使用train_test_split从sklearn.cross_validation,一个可以在两个集(训练集和测试)分割数据。但是,我找不到将数据分为三组的任何解决方案。最好是,我想拥有原始数据的索引。 我知道一种解决方法是使用train_test_split两次并以某种方式调整索引。但是,是否存在更标准/内置的方式将数据分为3组而不是2组?

4
TensorFlow,为什么选择python语言?
我最近开始研究深度学习和其他ML技术,并开始寻找简化构建网络并对其进行培训的框架,然后我发现TensorFlow在该领域经验不足,对我来说,速度似乎是如果与深度学习一起工作,那么使大型机器学习系统变得更大的重要因素,那么为什么Google选择python来制造TensorFlow?用一种可以编译且无法解释的语言来编写代码会更好吗? 使用Python而不是像C ++这样的语言进行机器学习有什么优势?

8
什么时候应该使用遗传算法而不是神经网络?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 是否有经验法则(或一组示例)来确定何时使用遗传算法而不是神经网络(反之亦然)来解决问题? 我知道在某些情况下可以将两种方法混合使用,但是我正在寻找两种方法之间的高级比较。


7
如何使用视觉输入训练人工神经网络来玩Diablo 2?
我目前正在尝试让ANN玩电子游戏,并且希望能从这里的美好社区得到一些帮助。 我已经选择了《暗黑破坏神2》,因此游戏是实时的,并且是从等轴测的角度来看,玩家可以控制相机居中放置的单个化身。 具体来说,任务是获得角色x经验值,而角色的生命值不会降低到0,而经验值是通过杀死怪物获得的。这是一个玩法示例: 现在,由于我希望网络仅基于它从屏幕上的像素获得的信息进行操作,因此它必须学习非常丰富的表示形式才能有效地进行游戏,因为这大概需要(至少是隐式地)知道如何将游戏世界分为对象以及如何与它们交互。 所有这些信息都必须以某种方式传到网上。我一辈子都想不起来如何训练这个东西。我唯一的想法是拥有一个单独的程序,从屏幕上直观地从游戏中提取某些本来是好事/坏事(例如健康,黄金,经验),然后在强化学习过程中使用该统计信息。我认为这将是答案的一部分,但我认为这还不够。从原始的视觉输入到面向目标的行为的抽象层次太多,以至于有限的反馈无法在我的一生中训练网络。 因此,我的问题是:您可以想到哪些其他方法来训练网络至少完成此任务的一部分?最好不要制作成千上万个带有标记的示例。 只是提供一些指导:我正在寻找增强学习的其他来源和/或在这种情况下提取有用信息的任何无监督方法。或采用监督算法,如果您可以想到一种无需手动标记就可以从游戏世界中获取标记数据的方法。 更新(04/27/12): 奇怪的是,我仍在努力,似乎正在取得进展。使ANN控制器正常工作的最大秘密是使用适合该任务的最先进的ANN架构。因此,我一直在使用由因式条件受限的玻尔兹曼机器组成的深度置信网,该机器以无监督的方式(在我玩游戏的视频中)进行了无监督的训练,然后通过时差反向传播(即使用标准的强化学习)进行了微调。前馈ANN)。 仍然在寻找更有价值的输入,特别是在实时选择动作以及如何为ANN处理编码彩色图像方面:-) 更新(10/21/15): 只是想起了我曾经回问过这个问题,并以为我应该提到这不再是一个疯狂的主意。自从我上次更新以来,DeepMind发表了他们的自然论文,内容涉及通过视觉输入让神经网络玩Atari游戏。确实,阻止我使用他们的体系结构玩《暗黑破坏神2》的一个有限子集的唯一原因是缺乏对基础游戏引擎的访问。渲染到屏幕然后将其重定向到网络实在太慢了,无法在合理的时间内进行训练。因此,我们可能不会很快看到这种机器人在玩Diablo 2,只是因为它会玩开源或具有对渲染目标的API访问权限的东西。(也许是地震?)

20
如何在Python中进行热编码?
我有一个80%分类变量的机器学习分类问题。如果要使用一些分类器进行分类,是否必须使用一种热编码?我可以在没有编码的情况下将数据传递给分类器吗? 我正在尝试进行以下功能选择: 我读了火车文件: num_rows_to_read = 10000 train_small = pd.read_csv("../../dataset/train.csv", nrows=num_rows_to_read) 我将类别特征的类型更改为“类别”: non_categorial_features = ['orig_destination_distance', 'srch_adults_cnt', 'srch_children_cnt', 'srch_rm_cnt', 'cnt'] for categorical_feature in list(train_small.columns): if categorical_feature not in non_categorial_features: train_small[categorical_feature] = train_small[categorical_feature].astype('category') 我使用一种热编码: train_small_with_dummies = pd.get_dummies(train_small, sparse=True) 问题是,尽管我使用的是坚固的机器,但第3部分经常卡住。 因此,没有一种热编码,我就无法进行任何特征选择来确定特征的重要性。 您有什么推荐的吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.