Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <eigen3/Eigen/Dense>
- #include <vector>
- #include <limits>
- #include <algorithm>
- using Eigen::Matrix;
- using Eigen::Dynamic;
- using std::numeric_limits;
- using std::random_shuffle;
- using std::vector;
- using std::pair;
- template<typename DataType, typename LabelType, class RandomAccessIterator,
- class DotCallback, class AddCallback>
- int liblinear_cs_train(RandomAccessIterator first, RandomAccessIterator last)
- {
- typedef Matrix<DataType,Dynamic,1> VectorXt;
- typedef vector<unsigned int> ActiveSet;
- unsigned int iteration = 0;
- unsigned int n_iteration = 10;
- unsigned int n_classes = 2;
- unsigned int n_vectors = 3;
- unsigned int n_features = 2;
- ActiveSet active_set;
- unsigned int active_set_size;
- VectorXt QD(last-first);
- for (unsigned int i=0; first!=last; ++first)
- {
- QD[i] = DotCallback(*first);
- }
- VectorXt G(n_classes);
- while (iteration < n_iteration)
- {
- double stopping = - numeric_limits<double>::min();
- random_shuffle(active_set.begin(),active_set.begin()+active_set_size);
- for (ActiveSet::const_iterator iterator=active_set.begin();
- iterator!=active_set.end(); ++iterator)
- {
- unsigned int i = (*iterator);
- double Ai = QD[i];
- if (Ai > 0)
- {
- }
- }
- ++iteration;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement