javascript

java

python

c#

android

node.js

reactjs

c++

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

机器学习-神经网络训练中一个时代的意义

当我在阅读如何在pybrain中构建ANN时,他们说:

对网络进行一些培训。 通常你会设置一些东西   像这里的5

trainer.trainEpochs( 1 )

我寻找的是什么意思,然后得出结论,我们使用一个时期的数据来更新权重,如果我选择以5个时期作为pybrain建议来训练数据,则数据集将被分为5个子集,加权数将更新 最多5次。

我熟悉在线训练,每个样本数据或特征向量后都会更新权重,我的问题是如何确保5个纪元足以建立模型并设置权重? 这种方式对在线培训有什么优势? 在线培训中也使用了“时代”一词,这是否意味着一个特征向量?

trans by 2020-01-18T19:25:37Z

java-如何处理数字猜谜游戏(带有扭曲)算法?

我正在学习编程(Python和算法),并试图从事一个我觉得很有趣的项目。 我已经创建了一些基本的Python脚本,但是不确定如何为我尝试构建的游戏找到解决方案。

游戏的运作方式如下:

将为用户提供带有值的项目。 例如,

Apple = 1
Pears = 2
Oranges  = 3

然后,他们将有机会选择自己喜欢的任何组合(即100个苹果,20个梨和一个橙子)。 计算机获得的唯一输出是总价值(在此示例中,当前价值为143美元)。 计算机将尝试猜测它们所拥有的。 显然,第一轮将无法正确获得。

         Value    quantity(day1)    value(day1)
Apple      1        100                100
Pears      2         20                 40
Orange     3          1                  3
Total               121                143

下一轮用户可以修改其号码,但不能超过总数的5%(或我们可以选择的其他百分比。例如,我将使用5%)。 水果的价格可以(随机)变化,因此总价值也可以基于此变化(为简单起见,在此示例中,我不更改水果的价格)。 使用上面的示例,在游戏的第2天,用户在第3天返回了$ 152和$ 164的值。这是一个示例:

Quantity (day2)   %change (day2)    Value (day2)   Quantity (day3)   %change (day3)   Value(day3)
 104                                 104            106                                106
  21                                  42             23                                 46
   2                                   6              4                                 12
 127               4.96%             152            133               4.72%            164

*(我希望表格能正确显示,我必须手动将它们隔开,所以希望它不仅可以在屏幕上显示,如果无法正常工作,请告诉我,我将尝试上传屏幕截图。)

我正在尝试查看是否可以确定一段时间后的数量(假设用户将有耐心继续输入数字)。 我现在知道,我唯一的限制是总值不能超过5%,所以现在我的精度不能超过5%,因此用户将永远输入该值。

到目前为止我做了什么

到目前为止,这是我的解决方案(不多)。 基本上,我采用所有值并找出它们的所有可能组合(本部分已完成)。 然后,我将所有可能的组合作为字典放入数据库(例如,对于$ 143,可能会有一个字典条目{apple:143,Pears:0,Oranges:0} ..一直到{apple :0,Pears:1,Oranges:47}。每当我得到一个新号码时,我都会这样做,因此我会列出所有可能性。

这是我被困的地方。 在使用上述规则时,如何找出最佳解决方案? 我认为我需要一个适应度函数,该函数可以自动比较两天的数据并删除与前几天的数据相差5%以上的所有可能性。

问题:

因此,我的问题是用户更改了总数,并获得了所有概率的列表,我该如何处理呢? 我需要学习什么? 是否有适用的算法或可以使用的理论? 或者,为了帮助我理解我的错误,您能否建议我可以添加哪些规则以使该目标变得可行(如果它不处于当前状态。我正在考虑添加更多水果并说他们必须选择至少3个,等等。)? 另外,我对遗传算法只有一个模糊的理解,但是我想如果可以使用的话我可以在这里使用它们?

我非常渴望学习,因此任何建议或技巧都将不胜感激(只是请不要告诉我这个游戏是不可能的)。

更新:获得很难解决的反馈。 因此,我想我会在游戏中添加另一个条件,即不会干扰玩家的行为(游戏对他们而言保持不变),但是每天水果的价值都会改变价格(随机)。 这样会更容易解决吗? 因为在5%的移动范围内,并且某些水果值发生了变化,所以随着时间的推移,只有少数几种组合是可能的。

第1天,一切皆有可能,并且达到足够近的范围几乎是不可能的,但是由于水果价格会发生变化,并且用户只能选择5%的变化,因此(随着时间的推移)不应将范围缩小。 在上面的示例中,如果价格波动足够大,我想我可以蛮力提出一个可以让我猜出一个范围的解决方案,但我试图找出是否有更优雅的解决方案或其他解决方案来将范围缩小 时间。

UPDATE2:在阅读并询问后,我相信这是一个隐含的马尔可夫/维特比问题,可以追踪水果价格以及总金额的变化(对最后一个数据点加权最重)。 我不确定如何应用这种关系。 我认为是这种情况,可能是错误的,但至少我开始怀疑这是某种类型的机器学习问题。

更新3:我创建了一个测试用例(具有较小的数字)和一个生成器,以帮助自动执行用户生成的数据,并且我试图从中创建图形以查看更可能的情况。

这是代码,以及总值和关于用户实际收获数量的注释。

#!/usr/bin/env python
import itertools

# Fruit price data
fruitPriceDay1 = {'Apple':1, 'Pears':2, 'Oranges':3}
fruitPriceDay2 = {'Apple':2, 'Pears':3, 'Oranges':4}
fruitPriceDay3 = {'Apple':2, 'Pears':4, 'Oranges':5}

# Generate possibilities for testing (warning...will not scale with large numbers)
def possibilityGenerator(target_sum, apple, pears, oranges):
    allDayPossible = {}
    counter = 1
    apple_range = range(0, target_sum + 1, apple)
    pears_range = range(0, target_sum + 1, pears)
    oranges_range = range(0, target_sum + 1, oranges)
    for i, j, k in itertools.product(apple_range, pears_range, oranges_range):
        if i + j + k == target_sum:
            currentPossible = {}

            #print counter
            #print 'Apple', ':', i/apple, ',', 'Pears', ':', j/pears, ',', 'Oranges', ':', k/oranges
            currentPossible['apple'] = i/apple
            currentPossible['pears'] = j/pears
            currentPossible['oranges'] = k/oranges

            #print currentPossible
            allDayPossible[counter] = currentPossible
            counter = counter +1
    return allDayPossible

# Total sum being returned by user for value of fruits
totalSumDay1=26 # Computer does not know this but users quantities are apple: 20, pears 3, oranges 0 at the current prices of the day
totalSumDay2=51 # Computer does not know this but users quantities are apple: 21, pears 3, oranges 0 at the current prices of the day
totalSumDay3=61 # Computer does not know this but users quantities are apple: 20, pears 4, oranges 1 at the current prices of the day
graph = {}
graph['day1'] = possibilityGenerator(totalSumDay1, fruitPriceDay1['Apple'], fruitPriceDay1['Pears'], fruitPriceDay1['Oranges'] )
graph['day2'] = possibilityGenerator(totalSumDay2, fruitPriceDay2['Apple'], fruitPriceDay2['Pears'], fruitPriceDay2['Oranges'] )
graph['day3'] = possibilityGenerator(totalSumDay3, fruitPriceDay3['Apple'], fruitPriceDay3['Pears'], fruitPriceDay3['Oranges'] )

# Sample of dict = 1 : {'oranges': 0, 'apple': 0, 'pears': 0}..70 : {'oranges': 8, 'apple': 26, 'pears': 13}
print graph
trans by 2020-01-14T15:04:05Z

ios-将视觉VNTextObservation转换为字符串

我正在查看Apple的Vision API文档,并且在Vision中看到了几个与文本检测有关的类:

1)Vision

2)Vision

看起来他们可以检测到字符,但是我看不到对字符执行任何操作的方法。 一旦检测到字符,您将如何将其转换为Vision可以解释的字符?

这是一个简短概述Vision的帖子。

感谢您的阅读。

trans by 2020-01-08T12:28:38Z

机器学习-标准化此选项卡中的功能

这已经成为一个令人沮丧的问题,但是我在Coursera的讨论中已经提出了问题,他们不会有所帮助。 下面是问题:

enter image description here

我现在已经6次弄错了。 如何规范化功能? 提示就是我所要的。

我假设x_2 ^(2)的值为5184,除非我添加1的x_0列,他们没有提到,但是他在讲授创建设计矩阵X的演讲中肯定提到了。在这种情况下,x_2 ^(2)将是值72。假设一个或另一个正确(我正在玩一个猜谜游戏),我应该使用什么对其进行归一化? 他讨论了在讲座中进行标准化的3种不同方法:一种使用最大值,另一种使用最大值和最小值之间的范围/差异,另一种使用标准偏差-他们希望答案正确到百分之一。 我要使用哪一个? 这真令人困惑。

trans by 2020-01-08T03:31:20Z

机器学习-带标签的数据和未带标签的数据有什么区别?

他在塞巴斯蒂安·瑟鲁姆(Sebastian Thrum)的这段视频中说,监督学习适用于“标记”数据,无监督学习适用于“未标记”数据。 他是什么意思? 谷歌搜索“带标签的数据与未带标签的数据”返回了大量关于该主题的学术论文。 我只想知道基本区别。

trans by 2020-01-06T16:26:15Z

python-如何在Numpy中实现ReLU功能

我想创建一个简单的神经网络,并希望使用ReLU函数。 有人可以告诉我如何使用numpy实现该功能的线索。谢谢你的时间!

trans by 2020-01-05T14:53:26Z

Java-R集成?

我有一个Java应用程序,需要执行偏最小二乘回归。 似乎那里没有PLSR的Java实现。 Weka在某些时候可能有类似的东西,但是在API中已不再存在。 另一方面,我发现了一个很好的R实现,这给它带来了额外的好处。 我要复制其结果的人员使用了它,这意味着由于PLSR实施方式的差异,出现错误的可能性较小。

问题是:是否有足够好的(且易于使用)的程序包使Java能够调用R,将一些参数传递给函数并回读结果? 我的另一个选择是将Java派生R放入进程中,然后对其进行监视。 数据将被读取并写入磁盘。 您会推荐两个中的哪一个? 我是否错过了明显的第三种选择?

trans by 2020-01-03T00:49:01Z

机器学习-卷积神经N中的批次归一化

我是卷积神经网络的新手,只是对特征图以及如何在图像上进行卷积以提取特征有所了解。 我很高兴知道在CNN中应用批处理规范化的一些细节。

我阅读了这篇论文[https://arxiv.org/pdf/1502.03167v3.pdf],可以理解应用于数据的BN算法,但最后他们提到,将其应用于CNN时需要进行一些修改:

对于卷积层,我们还希望归一化服从卷积属性-以便以相同的方式对同一要素图的不同元素在不同位置进行归一化。 为了实现这一目标,我们在所有位置上以小批量的方式联合标准化了所有激活。 在Alg。 在图1中,我们将B作为特征图上所有小批量和空间位置的所有值的集合–因此,对于大小为m的小批量和大小为p×q的特征图,我们使用effec -大小为m'= | B |的小批量生产 = m·pq。 我们每个特征图而不是每个激活都学习一对参数γ(k)和β(k)。 海藻 对图2进行类似的修改,以便在推理过程中BN变换将相同的线性变换应用于给定特征图中的每个激活。

他们说的时候我很困惑“因此,以相同的方式对同一要素图的不同元素在不同位置进行标准化”

我知道要素地图的含义,每个要素地图中的权重都是不同的元素。 但是我不明白什么是位置或空间位置。

我完全听不懂下面的句子“在Alg。1中,我们让B为跨小批量元素和空间位置的要素地图中所有值的集合”

如果有人能用更简单的方式详细阐述并向我解释,我将非常高兴

trans by 2019-12-30T13:38:44Z

.net-在F#中用于机器学习的资源

我已经学习了使用Matlab作为原型设计工具的机器学习课程。 由于我沉迷于F#,所以我想继续在F#中进行机器学习。

我可能想在原型和生产中都使用F#,因此机器学习框架将是一个不错的开始。 否则,我可以从一系列库开始:

  • 高度优化的线性代数库
  • 统计包
  • 可视化库(允许绘制图表,与图表,图表进行交互...)
  • 并行计算工具箱(类似于Matlab并行计算工具箱)

对我来说,最重要的资源是书籍,博客文章和有关以功能编程语言(F#/ OCaml / Haskell ...)进行机器学习的在线课程。

谁能建议这些资源? 谢谢。


编辑:

这是基于以下答案的摘要:

机器学习框架:

  • Infer.NET:用于具有良好F#支持的图形模型中的贝叶斯推理的.NET框架。
  • WekaSharper:围绕流行的数据挖掘框架Weka的F#包装器。
  • Microsoft Sho:.NET平台上用于数据分析(包括矩阵运算,优化和可视化)的持续环境开发。

相关库:

  • Math.NET数字:内部使用Intel MKL和AMD ACML进行矩阵运算并支持统计功能。

  • Microsoft Solver Foundation:一个很好的线性编程和优化任务框架。

  • FSharpChart:F#中一个不错的数据可视化库。

阅读清单:

  • 数值计算:从F#中的机器学习开始非常好,并介绍了在F#中使用这些数学库的各种工具和技巧/窍门。
  • F#和数据挖掘博客:强烈推荐“数值计算”一章的作者Yin Zhu。
  • 用F#替代机器学习的Octave / Matlab:Gustavo刚开始使用F#作为开发工具开始一系列博客文章。 很高兴看到许多库被插入在一起。
  • F#中的“机器学习在行动”示例:Mathias已将一些示例从Python转换为F#。 它们在Github中可用。
  • Hal Daume的主页:Hal在OCaml中编写了许多机器学习库。 如果您不确定函数式编程不适用于机器学习,您会感到放心。

也欢迎任何其他指示或建议。

trans by 2019-12-29T08:30:32Z

Python脚本中的错误“预期的2D数组,取而代之的是1D数组:”?

我正在按照本教程进行ML预测:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style

style.use("ggplot")
from sklearn import svm

x = [1, 5, 1.5, 8, 1, 9]
y = [2, 8, 1.8, 8, 0.6, 11]

plt.scatter(x,y)
plt.show()

X = np.array([[1,2],
             [5,8],
             [1.5,1.8],
             [8,8],
             [1,0.6],
             [9,11]])

y = [0,1,0,1,0,1]
X.reshape(1, -1)

clf = svm.SVC(kernel='linear', C = 1.0)
clf.fit(X,y)

print(clf.predict([0.58,0.76]))

我正在使用Python 3.6,但收到错误消息“预期的2D数组,而是获取1D数组:”我认为该脚本适用于旧版本,但我不知道如何将其转换为3.6版本。

已经尝试使用:

X.reshape(1, -1)
trans by 2019-12-29T04:10:03Z

语言不可知论-随机森林中什么是袋装错误?

什么是“随机森林”中的出库错误?它是在随机森林中找到正确数量的树木的最佳参数吗?

trans by 2019-12-26T05:11:52Z

机器学习-梯度下降和牛顿的梯度下降有什么区别?

我了解“梯度下降”功能。 基本上,它试图通过缓慢地沿着曲线向下移动来朝向局部最优解。 我想了解平面梯度下降与牛顿法之间的实际区别是什么?

我在Wikipedia上读到了这条短线:“牛顿法使用曲率信息采取更直接的路线。” 这直观上是什么意思?

trans by 2019-11-17T06:28:31Z

算法-SVM-硬边距还是软边距?

给定线性可分离的数据集,使用硬边距SVM而不是软边距SVM是否一定更好?

trans by 2019-11-16T22:59:49Z

nlp-用于情感分析的训练数据

我在哪里可以获得在公司范围内已被分类为正面/负面情绪的文档集? 我想要一大堆文档,这些文档为公司提供评论,例如分析师和媒体对公司的评论。

我发现语料库对产品和电影都有评论。 业务领域是否有语料库,包括与业务语言相匹配的公司评论?

trans by 2019-11-16T20:16:09Z

人工智能-输入数量可变时如何使用神经网络?

我所看到的神经网络的所有示例都是针对一组固定的输入,这些输入对于图像和固定长度的数据非常有效。 您如何处理长度可变的数据,例如句子,查询或源代码? 有没有一种方法可以将可变长度的数据编码为固定长度的输入,并且仍然获得神经网络的泛化特性?

trans by 2019-11-11T18:53:22Z

使用python和numpy进行梯度下降

def gradient(X_norm,y,theta,alpha,m,n,num_it):
    temp=np.array(np.zeros_like(theta,float))
    for i in range(0,num_it):
        h=np.dot(X_norm,theta)
        #temp[j]=theta[j]-(alpha/m)*(  np.sum( (h-y)*X_norm[:,j][np.newaxis,:] )  )
        temp[0]=theta[0]-(alpha/m)*(np.sum(h-y))
        temp[1]=theta[1]-(alpha/m)*(np.sum((h-y)*X_norm[:,1]))
        theta=temp
    return theta



X_norm,mean,std=featureScale(X)
#length of X (number of rows)
m=len(X)
X_norm=np.array([np.ones(m),X_norm])
n,m=np.shape(X_norm)
num_it=1500
alpha=0.01
theta=np.zeros(n,float)[:,np.newaxis]
X_norm=X_norm.transpose()
theta=gradient(X_norm,y,theta,alpha,m,n,num_it)
print theta

我上面的代码中的theta是100.2 100.2,但是在matlab中应该是100.2 61.09

trans by 2019-11-10T13:53:40Z

java-Porter和Lancaster提取算法的主要区别和好处是什么?

我正在处理Java中的文档分类任务。

强烈推荐这两种算法,每种算法都有什么优点和缺点,并且在自然语言处理任务的文献中更常用?

trans by 2019-11-08T14:20:50Z

机器学习-时间序列中的模式识别

通过处理时间序列图,我想检测类似于以下内容的模式:

enter image description here

以示例时间序列为例,我希望能够检测到此处标记的模式:

enter image description here

我需要使用哪种AI算法(我假设是机器学习技术)? 我可以使用任何库(C / C ++)吗?

trans by 2019-11-07T16:49:16Z

python-使用sklearn在PCA中恢复featured_variance_ratio_的特征名称

我正在尝试从使用scikit-learn完成的PCA中恢复,这些功能被选择为相关功能。

IRIS数据集的经典示例。

import pandas as pd
import pylab as pl
from sklearn import datasets
from sklearn.decomposition import PCA

# load dataset
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)

# normalize data
df_norm = (df - df.mean()) / df.std()

# PCA
pca = PCA(n_components=2)
pca.fit_transform(df_norm.values)
print pca.explained_variance_ratio_

这返回

In [42]: pca.explained_variance_ratio_
Out[42]: array([ 0.72770452,  0.23030523])

如何恢复数据集中哪两个特征允许这两个已解释的方差?换句话说,我如何在iris.feature_names中获取此功能的索引?

In [47]: print iris.feature_names
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

在此先感谢您的帮助。

trans by 2019-11-03T00:36:32Z

理解Scikit CountVectoriz中的min_df和max_df

我有五个输入到CountVectorizer的文本文件。 当为CountVectorizer实例指定min_df和max_df时,最小/最大文档频率到底是什么意思? 是某个单词在其特定文本文件中的出现频率,还是整个整体语料库(5个txt文件)中该单词的出现频率?

当min_df和max_df作为整数或浮点数提供时有何不同?

该文档似乎没有提供详尽的解释,也没有提供示例来演示min_df和/或max_df的用法。 有人可以提供说明min_df或max_df的解释或示例。

trans by 2019-10-25T14:22:19Z

1 2 3 4 5 6 7 下一页 共7页