c# - 线性分开两组

标签 c# c algorithm

我有三个数组(它是用 C 编写的,但这并不重要,它可以是任何语言):

  float x[] = {
        0.72, 0.91, 0.46, 0.03, 0.12, 0.96, 0.79, 0.46, 0.66, 0.72, 0.35, -0.16,
        -0.04, -0.11, 0.31, 0.00, -0.43, 0.57, -0.47, -0.72, -0.57, -0.25,
        0.47, -0.12, -0.58, -0.48, -0.79, -0.42, -0.76, -0.77
  };

  float y[] = {
        0.82, -0.69, 0.80, 0.93, 0.25, 0.47, -0.75, 0.98, 0.24, -0.15, 0.01,
        0.84, 0.68, 0.10, -0.96, -0.26, -0.65, -0.97, -0.03, -0.64, 0.15, -0.43,
        -0.88, -0.90, 0.62, 0.05, -0.92, -0.09, 0.65, -0.76      
  };

  int outputs[] = {
      -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
  };

前两个数组是一个点在二维平面上的X和Y坐标。

第三个数组决定点是来自集合 1 还是集合 -1。

我需要一种算法来线性分离这两组点。 IE。它应该从这个等式返回 a 和 b 系数:

y = a*x + b

这是一个一般的直线方程。

请看这里的第一张图片:

http://dynamicnotions.blogspot.com/2008/09/single-layer-perceptron.html

为了更好地理解我需要什么。

最佳答案

我已经查看了第一页上的图表,但我仍然不清楚您实际想要的结果是什么。我的猜测是您想要最佳系数来近似“最适合”两组点的线性线?看来你的感知器的“神经网络”已经做到了。可能有助于澄清?

关于c# - 线性分开两组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695135/

相关文章:

c - LED 保持亮起。不会打开和关闭

python - 找到前n条边,广度优先搜索

c# - 如何在 C# 中将带参数的函数绑定(bind)到包中

c# - 将用户文本框输入(数字)放入定义的数组大小并输出?

c# - 从 ItemsControl 中删除项目

c - 请解释一下下面的C代码?

将源代码从 ARMv5 编译到 ARMv6

java - 如何优化算法以能够在java中确定10位长素数

c++ - 合并图中的线性顶点链(在 C++ 中)

c# - 在 C# 中创建动态字符串