Cha*_*ara 5 algorithm statistics artificial-intelligence machine-learning neural-network
我是人工神经网络的新手.
我对这样的应用感兴趣:

我有一大堆对象.每个对象有六个属性,由P1-P6表示.每个属性都有一个符号值.换句话说,在我的示例中,P1-P6可以具有来自集合{A,B,C,D,E,F}的值.它们不是数字.(假设A,B,C,D,E,F是颜色;那么你就会理解我的想法.)
现在,还有另一个我感兴趣的房产R.假设
R = {G1,G2,G3,G4,G5}
我需要为大量的P1-P6和相关的R训练一个系统.现在我想做以下几点.
我有一个对象,我知道P1到P6的值.我需要找到R(对象所属的组).
为了获得所需的R,我需要在P1-P6中拥有什么模式.作为R = G2的例子,我需要弄清楚P1-P6中的任何模式.
我的问题是:
为了分别实现1和2,我应该阅读和学习哪些理论/技术/技术?
您可以推荐哪些工具/库来进行模拟/实施/测试?
您描述问题的方式,您需要查找各种机器学习技巧.如果是我,我会尝试阅读关于k-NN(k Nearest Neighbors)的分类.当我说分类时,我的意思是如果你知道P1-P6就得到R. 这是一个非常简单的技术,在这里应该会有所帮助.
至于另一种方式,你基本上需要的是你的人口的代表性样本.这是我认为不常见的,但你可以尝试类似k-means聚类的东西.聚类方法通常是由自己决定的类的对象(属性R)的,但k均值聚类是在这种情况下冷静,因为你需要给它的对象类的(R的例如不同的可能值)的数量,并在端你得到一个代表性的样本.
在我看来,你绝对不应该选择任何非常复杂的技术(如神经网络),因为你的数据没有精确的数值解释,并且值不能逐渐解释.
推荐的工具实际上取决于您的基本编程语言.有一个很棒的工具叫做Orange基于Python,它是我选择这类工具的工具(特别是因为很容易用C/C++连接你的Python模块).如果您更喜欢Java,那么Weka您可以使用一个非常类似的工具.我认为Weka记录得更好一些,但我不喜欢Java,所以我从未尝试过.
这两个工具都有一个图形可点击界面,您可以在其中加载数据并完成分类,使用参数并检查使用不同技术和不同设置获得的输出类型.一旦你决定得到你需要的结果(或者如果你不喜欢图形界面),你也可以在编程时使用它们作为一种类型的库(Python for Orange和Java for Weka)并使分类成为一个更大的项目的一部分.
如果你查看Orange或Weka的文档,我想它会给你一些关于你可以用你拥有的数据做什么的想法,当你知道一些看起来很有趣并且适用于数据的技术时,也许您可以在这里获得更多关于特定方法的质量评论和信息,而不仅仅是搜索一般建议.
您应该检查分类算法(人工智能的一部分),尤其是最近邻算法。您的问题可以通过不同的技术来解决,这些技术都有不同的优点和缺点。
但是,我不知道人工智能中有任何方法可以实现双向分类(或者换句话说,同时实现先决条件 1 和 2)。由于到目前为止您想要做的就是进行 P1..P6 <=> R 的双向映射,因此我建议仅使用映射表而不是人工智能算法。如果您不确切知道您的哪些样本属于 P1..P6 中的 A..E 类别,那么人工智能会发挥很大作用。
如果你坚持使用人工智能,我建议首先看看感知器。感知器由输入、中间和输出神经元组成。对于您的示例,您将拥有输入神经元 P1a..P1e、P2a..P2e... 和五个输出神经元 R1..R5。训练后,您应该能够输入 P1..P6 并获得适当的 R1..R5 作为输出。
至于框架和技术,我只知道 Visual Studio 的商业智能套件,尽管还有很多其他的人工智能框架。由于我没有使用过它们中的任何一个(我总是自己用 C/C++ 编写它们),所以我不能推荐它们。
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |