#machine-learning #super #online

感知机

一个使用感知机的超快在线学习库

2个版本

0.1.1 2020年2月18日
0.1.0 2020年2月18日

#482 in 机器学习

MIT 许可证

8KB
62 代码行

使用感知机进行超快在线学习。它允许你在训练模型的同时进行预测,并使用集成方法提高预测准确性。

背景

感知机是一种相对简单且快速的机器学习算法。它具有以下特点:

  • 没有超参数(无需调整),
  • 使用集成方法具有良好的泛化能力,
  • 整体具有良好的分类准确率。

用法

   use perceptron::*;

   fn and_works() {
       let examples = vec!((vec!(-1.0, 1.0), false), (vec!(-1.0, -1.0), false), (vec!(1.0, -1.0), false), (vec!(1.0, 1.0), true));
       let perceptron = (1..100).fold(Perceptron::new(2), 
			|pepoch, _epoch| examples.iter().fold(pepoch, 
			|pexample, example| pexample.train(example.0.clone(), example.1).unwrap()));

       println!("{:?}", perceptron);

       assert_eq!(perceptron.predict(examples[0].0.clone()), examples[0].1);
       assert_eq!(perceptron.predict(examples[1].0.clone()), examples[1].1);
       assert_eq!(perceptron.predict(examples[2].0.clone()), examples[2].1);
       assert_eq!(perceptron.predict(examples[3].0.clone()), examples[3].1);
   }

依赖关系

~0.7–1.4MB
~33K SLoC