knn.c

来自「使用具有增量学习的监控式学习方法。包括几个不同的分类算法。」· C语言 代码 · 共 84 行

C
84
字号
/* Copyright (C) 2001-2002  Mikael Ylikoski * See the accompanying file "README" for the full copyright notice *//** * @file * K-Nearest-Neighbour algorithm. * FIXME: fungerar inte * * @param  Mikael Ylikoski * @date   2001-2002 */#include <stdlib.h>#include "float.h"#include "knn.h"#include "multi.h"#include "utility.h"#include "varray.h"#include "vector.h"typedef struct {    int k;} knn_db;typedef struct {    varray *docs;} knn_class;/** * Create a new global state. * * @return  The classifier. */void *knn_new_db (const char *opts) {    knn_db *db;    db = my_malloc (sizeof(knn_db));    db->k = 5;    return db;}/** * Create a new knn class. */void *knn_new (void) {    knn_class *kc;    kc = my_malloc (sizeof(knn_class));    kc->docs = varray_new (10);    if (!kc->docs) {	free (kc);	return NULL;    }    return kc;}/** * Learn the vector v of class class. * * @return 0 if ok; non-zero otherwise. */intknn_learn (void *db, void *data, vector *v, int class) {    knn_class *kc;    if (class != 1)	return -1;    kc = (knn_class *)data;    varray_append (kc->docs, v);    return 0;}/** * FIXME om samma vektor finns flera g錸ger, skall d

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?