EdwardRaff / JSAT

Java Statistical Analysis Tool, a Java library for Machine Learning
GNU General Public License v3.0
788 stars 204 forks source link

IndexOutOfBoundsException for ClassificationDataSet.stratSet #65

Closed junphine closed 6 years ago

junphine commented 7 years ago

public List stratSet(int folds, Random rnd) { ArrayList cvList = new ArrayList();

    IntList rndOrder = new IntList();

    int curFold = 0;
    for(int c = 0; c < getClassSize(); c++)
    {
        List<DataPoint> subPoints = getSamples(c);
        rndOrder.clear();
        ListUtils.addRange(rndOrder, 0, subPoints.size(), 1);
        Collections.shuffle(rndOrder, rnd);

        for(int i : rndOrder)
        {
            cvList.get(curFold).datapoints.add(subPoints.get(i));
            cvList.get(curFold).category.add(c);
            curFold = (curFold + 1) % folds;
        }
    }

    return cvList;
}

I added these code: while(cvList.size()<folds){ ClassificationDataSet clone = new ClassificationDataSet(numNumerVals, categories, predicting.clone()); cvList.add(clone); }