ここでの私の解決策: http://www.mediafire.com/?rzrhvc71musz793
238 行目のファイル Apriori.cs で、「追加情報: インデックスが範囲外でした。負でなく、コレクションのサイズよりも小さい必要があります」というエラーが表示されます。
private List<Rule> GenerateRules()
{
var rules = new List<Rule>();
foreach (var item in _allFrequentItems)
{
if (item.val.Count > 1)
{
int maxCombinationLength = item.val.Count / 2;
GenerateCombination(item.val, maxCombinationLength, ref rules);
}
}
return rules;
}
private void GenerateCombination(List<int> item, int combinationLength, ref List<Rule> rules)
{
int itemLength = item.Count;
switch (itemLength)
{
case 2:
AddItem(new List<int>(){item[0]}, item, ref rules);
break;
case 3:
for (int i = 0; i < itemLength; i++)
{
AddItem(new List<int>{item[i]}, item, ref rules);
}
break;
default:
for (int i = 0; i < itemLength; i++)
{
GetCombinationRecursive(new List<int>() { item[i] }, item, combinationLength, ref rules);
}
break;
}
}
GenerateRules() で item.val.Count>1 をチェックし、GenerateCombination itemLength = item.Count ..なぜ私のデバッグで item.Count =1 、 itemLength =3 ????