小编Sar*_*rah的帖子

了解感知器

我刚刚开始了一个机器学习课,我们去了Perceptrons.对于家庭作业,我们应该:"选择适当的训练和测试两个维度的数据集(平面).使用10个数据点进行训练,5个进行测试."然后我们应该编写一个程序,使用感知器算法和输出:

  • 关于训练数据点是否可线性分离的评论
  • 关于测试点是否可线性分离的评论
  • 你最初选择的权重和常数
  • 最终解方程(决策边界)
  • 您的算法所做的权重更新总数
  • 在训练集上进行的迭代总数
  • 对训练数据以及测试数据的最终错误分类错误(如果有的话)

我已经多次阅读了本书的第一章,但我仍然无法完全理解感知器.

我知道你改变了权重,如果一个点被错误分类,直到没有错误分类,我想我无法理解的是

  1. 我如何使用测试数据以及它与训练数据的关系如何?
  2. 我怎么知道一个点是否被错误分类?
  3. 如何选择测试点,训练点,阈值或偏差?

如果没有我的书提供好的例子,我真的很难知道如何构成其中的一个.你可以告诉我,我很失落,任何帮助都会非常感激.

algorithm artificial-intelligence machine-learning perceptron neural-network

2
推荐指数
1
解决办法
2419
查看次数

我的Heap Sort代码在Java中有什么问题?

我正在尝试使用Java中的此数组创建和排序堆.我在maxHeap函数中不断获得数组索引超出范围的异常.代码似乎对我有意义,所以我不确定错误来自哪里.

谁知道我做错了什么?

 public static void main(String[] args) {
    int[] array = { 5, 16, 10, 7, 43, 12, 75, 33, 47, 3, 2489, 591, 6639, 557, 84, 9054, 17, 8841, 99, 701, 21, 78, 9, 36, 839};
    heapSort(array3);
    System.out.println("Heap Sort:");
    printArray(array3);
}

public static void createHeap(int []A){
    int n = A.length-1;
    for(int i=n/2;i>=0;i--){
        maxheap(A,i);
    }
}

public static void maxheap(int[] A, int i){ 
    int n = A.length;
    int largest;
    int left=2*i;
    int right=2*i+1;
    if(left <= n && A[left] > A[i]){ …
Run Code Online (Sandbox Code Playgroud)

java sorting heap heapsort

0
推荐指数
1
解决办法
1131
查看次数