mirror of
https://github.com/Relintai/pmlpp.git
synced 2024-12-21 14:56:47 +01:00
Converted more methods.
This commit is contained in:
parent
c8b93a107b
commit
ef1dcef324
@ -14,20 +14,17 @@
|
||||
#include <map>
|
||||
#include <random>
|
||||
|
||||
/*
|
||||
std::vector<std::vector<real_t>> MLPPLinAlg::gramMatrix(std::vector<std::vector<real_t>> A) {
|
||||
return matmult(transpose(A), A); // AtA
|
||||
Ref<MLPPMatrix> MLPPLinAlg::gram_matrix(const Ref<MLPPMatrix> &A) {
|
||||
return A->transposen()->multn(A); // AtA
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
bool MLPPLinAlg::linearIndependenceChecker(std::vector<std::vector<real_t>> A) {
|
||||
if (det(gramMatrix(A), A.size()) == 0) {
|
||||
bool MLPPLinAlg::linear_independence_checker(const Ref<MLPPMatrix> &A) {
|
||||
if (gram_matrix(A)->det(A->size().y) == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
Ref<MLPPMatrix> MLPPLinAlg::gaussian_noise(int n, int m) {
|
||||
std::random_device rd;
|
||||
|
@ -37,8 +37,8 @@ class MLPPLinAlg : public Reference {
|
||||
public:
|
||||
// MATRIX FUNCTIONS
|
||||
|
||||
//std::vector<std::vector<real_t>> gramMatrix(std::vector<std::vector<real_t>> A);
|
||||
//bool linearIndependenceChecker(std::vector<std::vector<real_t>> A);
|
||||
Ref<MLPPMatrix> gram_matrix(const Ref<MLPPMatrix> &A);
|
||||
bool linear_independence_checker(const Ref<MLPPMatrix> &A);
|
||||
|
||||
Ref<MLPPMatrix> gaussian_noise(int n, int m);
|
||||
|
||||
|
@ -1269,7 +1269,6 @@ void MLPPTests::test_numerical_analysis() {
|
||||
// Checks for numerical analysis class.
|
||||
MLPPNumericalAnalysis num_an;
|
||||
|
||||
/*
|
||||
//1
|
||||
PLOG_MSG("num_an.quadratic_approximationr(f, 0, 1)");
|
||||
PLOG_MSG(String::num(num_an.quadratic_approximationr(f, 0, 1)));
|
||||
@ -1282,13 +1281,11 @@ void MLPPTests::test_numerical_analysis() {
|
||||
PLOG_MSG("f(1.001)");
|
||||
PLOG_MSG(String::num(f(1.001)));
|
||||
|
||||
|
||||
Ref<MLPPVector> v30;
|
||||
v30.instance();
|
||||
v30->resize(3);
|
||||
v30->fill(0);
|
||||
|
||||
|
||||
Ref<MLPPVector> v31;
|
||||
v31.instance();
|
||||
v31->resize(3);
|
||||
@ -1298,7 +1295,6 @@ void MLPPTests::test_numerical_analysis() {
|
||||
PLOG_MSG("num_an.quadratic_approximationv(f_mv, v30, v31)");
|
||||
PLOG_MSG(String::num(num_an.quadratic_approximationv(f_mv, v30, v31)));
|
||||
|
||||
|
||||
const real_t iqi_arr[] = { 100, 2, 1.5 };
|
||||
Ref<MLPPVector> iqi(memnew(MLPPVector(iqi_arr, 3)));
|
||||
|
||||
@ -1316,7 +1312,6 @@ void MLPPTests::test_numerical_analysis() {
|
||||
PLOG_MSG("num_an.inv_quadratic_interpolation(&f, iqi, 10)");
|
||||
PLOG_MSG(String::num(num_an.inv_quadratic_interpolation(&f, iqi, 10)));
|
||||
|
||||
|
||||
Ref<MLPPVector> v21;
|
||||
v21.instance();
|
||||
v21->resize(2);
|
||||
@ -1351,7 +1346,6 @@ void MLPPTests::test_numerical_analysis() {
|
||||
//128000015514730496
|
||||
PLOG_MSG("num_an.num_diff_3v(&f_mv, nd3v, 0, 0, 0)");
|
||||
PLOG_MSG(String::num(num_an.num_diff_3v(&f_mv, nd3v, 0, 0, 0)));
|
||||
*/
|
||||
|
||||
Ref<MLPPVector> v31t;
|
||||
v31t.instance();
|
||||
@ -1434,16 +1428,6 @@ void MLPPTests::test_numerical_analysis() {
|
||||
PLOG_MSG("tensor->tensor_vec_mult(tvm)");
|
||||
PLOG_MSG(tensor->tensor_vec_mult(tvm)->to_string());
|
||||
|
||||
Ref<MLPPVector> v30;
|
||||
v30.instance();
|
||||
v30->resize(3);
|
||||
v30->fill(0);
|
||||
|
||||
Ref<MLPPVector> v31;
|
||||
v31.instance();
|
||||
v31->resize(3);
|
||||
v31->fill(1);
|
||||
|
||||
//1.00001
|
||||
PLOG_MSG("num_an.cubic_approximationv(f_mv, v30, v31)");
|
||||
PLOG_MSG(String::num(num_an.cubic_approximationv(f_mv, v30, v31)));
|
||||
@ -1537,16 +1521,19 @@ void MLPPTests::test_support_vector_classification_kernel(bool ui) {
|
||||
|
||||
MLPPDualSVC kernelSVM(dt->get_input(), dt->get_output(), 1000);
|
||||
kernelSVM.gradient_descent(0.0001, 20, ui);
|
||||
|
||||
//SCORE: 0.372583
|
||||
PLOG_MSG("SCORE: " + String::num(kernelSVM.score()));
|
||||
|
||||
/*
|
||||
std::vector<std::vector<real_t>> linearlyIndependentMat = {
|
||||
std::vector<std::vector<real_t>> linearly_independent_mat_arr = {
|
||||
{ 1, 2, 3, 4 },
|
||||
{ 2345384, 4444, 6111, 55 }
|
||||
};
|
||||
Ref<MLPPMatrix> linearly_independent_mat(memnew(MLPPMatrix(linearly_independent_mat_arr)));
|
||||
|
||||
std::cout << "True of false: linearly independent?: " << std::boolalpha << alg.linearIndependenceChecker(linearlyIndependentMat) << std::endl;
|
||||
*/
|
||||
//true
|
||||
PLOG_MSG("alg.linear_independence_checker(linearly_independent_mat)");
|
||||
PLOG_MSG(String::bool_str(alg.linear_independence_checker(linearly_independent_mat)));
|
||||
}
|
||||
|
||||
void MLPPTests::test_mlpp_vector() {
|
||||
|
Loading…
Reference in New Issue
Block a user