Definition at line 83 of file TrainDataSrcKernelTable.h. References Impala::Core::Feature::FeatureTable::FindQuid(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get1(), Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Get2(), Impala::Core::Vector::VectorTem< ElemT >::GetData(), Impala::Core::Feature::FeatureTable::GetFeatureVectorLength(), Impala::Core::Table::QuidTable::GetIndex(), Impala::Core::Feature::FeatureTable::GetQuidTable(), ILOG_ERROR, svm_node::index, Impala::Core::Table::AnnotationTable::IsNegative(), Impala::Core::Table::AnnotationTable::IsPositive(), svm_problem::l, Impala::Core::Training::TrainDataSrc::mAnnotation, mTable, Impala::Core::Table::Table::Size(), svm_node::value, svm_problem::x, and svm_problem::y. Referenced by MakeSvmProblem(). 00084 { 00085 int vectorLength = mTable->GetFeatureVectorLength(); 00086 Table::QuidTable* quids = mTable->GetQuidTable(); 00087 svm_problem* problem = new svm_problem; 00088 problem->l = mask->Size(); 00089 problem->y = new double[problem->l]; 00090 problem->x = new struct svm_node *[problem->l]; 00091 struct svm_node* nodes = new struct svm_node[problem->l*(2+vectorLength)]; 00092 for(int i=0 ; i<problem->l ; i++) 00093 { 00094 Quid q = mask->Get1(i); 00095 problem->y[i] = 0; 00096 if(mAnnotation->IsPositive(q)) 00097 problem->y[i] = 1; 00098 else if(mAnnotation->IsNegative(q)) 00099 problem->y[i] = -1; 00100 00101 problem->x[i] = &nodes[i*(vectorLength+2)]; 00102 problem->x[i][0].index = 0; 00103 problem->x[i][0].value = quids->GetIndex(q)+1; 00104 int rank = mTable->FindQuid(q); 00105 if(rank >= mTable->Size()) 00106 ILOG_ERROR("couldn't find quid in mTable table"); 00107 Vector::VectorTem<double> vec = mTable->Get2(rank); 00108 const double* values = vec.GetData(); 00109 int j; 00110 for(j=0 ; j<vectorLength ; j++) 00111 { 00112 problem->x[i][j+1].index = j+1; 00113 problem->x[i][j+1].value = values[j]; 00114 } 00115 problem->x[i][j+1].index = -1; 00116 } 00117 return problem; 00118 }
Here is the call graph for this function:
|