#include <missingvalues.h>
template<Numeric NumericType>
class Cosan::MissingValues< NumericType >
Definition at line 13 of file missingvalues.h.
◆ MissingValues() [1/2]
template<Numeric NumericType>
◆ MissingValues() [2/2]
template<Numeric NumericType>
◆ fit()
template<Numeric NumericType>
Definition at line 21 of file missingvalues.h.
22 fmt::print(
"*********************************\n");
23 fmt::print(
"Begin cleaning up missing data!\n");
24 std::set<gsl::index> MissingIdxX;
25 for (
auto & each: RD.GetIdxmissingX()){
26 MissingIdxX.insert(RD.GetRawToNumIdx()[each[1]]);
28 bool HasMissingIdxY = RD.GetIdxmissingY().size()==0 ? false :
true;
29 CosanMatrix<NumericType> X = RD.GetInput();
31 for (
auto &i : MissingIdxX ){
32 gsl::index _numofMissing = X.col(i).array().isNaN().template cast<NumericType>().sum();
33 fmt::print(
"For X Column {:d} has {:d} missing value(s).\n",i,_numofMissing);
34 NumericType mean = X.col(i).unaryExpr([](
NumericType v) {
return std::isnan(v)? 0 : v; }).sum()/(X.rows()-_numofMissing);
35 fmt::print(
"Fill the missing/nan entry with the column mean={:f}.\n",mean);
36 X.col(i) = X.col(i).array().isNaN().select(0,X.col(i)).array()+mean*(X.col(i).array().isNaN().template cast<NumericType>());
39 if (HasMissingIdxY==
true){
41 CosanMatrix<NumericType> Y = RD.GetTarget();
42 gsl::index _numofMissing = Y.col(i).array().isNaN().template cast<NumericType>().sum();
43 fmt::print(
"For Y has {:d} missing value(s).\n",_numofMissing);
45 NumericType mean = Y.col(i).unaryExpr([](
NumericType v) {
return std::isnan(v)? 0 : v; }).sum()/(Y.rows()-_numofMissing);
46 fmt::print(
"Fill the missing/nan entry with the column mean={:f}.\n",mean);
47 Y.col(i) = Y.col(i).array().isNaN().select(0,Y.col(i)).array()+mean*(Y.col(i).array().isNaN().template cast<NumericType>());
53 fmt::print(
"End of cleaning process\n");
54 fmt::print(
"*********************************\n");
The documentation for this class was generated from the following file: