0 Star 0 Fork 0

魏士杰/outlier-detection-cpp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
example.cpp 1.95 KB
一键复制 编辑 原始数据 按行查看 历史
魏士杰 提交于 2021-04-27 13:06 . edit example
#include <random>
#include <functional>
#include "detection.hpp"
int main() {
svm_cxx one_class_svm(2);
std::random_device source;
std::vector<unsigned long int> random_data(42);
std::generate(random_data.begin(), random_data.end(), std::ref(source));
std::seed_seq seeds(random_data.begin(), random_data.end());
std::mt19937 gen(seeds);
std::uniform_real_distribution<double> uniform_dist(-8, 8);
std::normal_distribution<double> normal_dist{0,1};
dataframe<double> train_set(2);
dataframe<double> test_set_true(2);
dataframe<double> test_set_false(2);
for (int i = 0; i < 100; ++i) {
train_set.append({0.3 * normal_dist(gen)+2,0.3 * normal_dist(gen)+2});
train_set.append({0.3 * normal_dist(gen)-2,0.3 * normal_dist(gen)-2});
}
for (int i = 0; i < 20; ++i) {
test_set_true.append({0.3 * normal_dist(gen)+2,0.3 * normal_dist(gen)+2});
test_set_true.append({0.3 * normal_dist(gen)-2,0.3 * normal_dist(gen)-2});
test_set_false.append({uniform_dist(gen),uniform_dist(gen)});
test_set_false.append({uniform_dist(gen),uniform_dist(gen)});
}
standard_scaler<double> scaler(train_set);
scaler.transform(train_set);
scaler.transform(test_set_true);
scaler.transform(test_set_false);
one_class_svm.one_class_svm_param_init();
double accuracy = one_class_svm.train(train_set, {}, 1);
std::cout << "Validation accuracy of training dataset = " << accuracy << "%" << std::endl;
if (!one_class_svm.save_model("../model/one_class_svm_cxx"))
std::cout << "Save model successfully\n";
if (!one_class_svm.load_model("../model/one_class_svm_cxx"))
std::cout << "Loading model successfully\n";
std::cout << "Validation accuracy of test true dataset = " << one_class_svm.clf_validation(test_set_true) << "%\n";
std::cout << "Validation accuracy of test false dataset = " << 100 - one_class_svm.clf_validation(test_set_false) << "%\n";
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/flamealpha/outlier-detection-cpp.git
git@gitee.com:flamealpha/outlier-detection-cpp.git
flamealpha
outlier-detection-cpp
outlier-detection-cpp
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385