[ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 09.11.15 21:10
Оценка: 42 (8) +2
Привет!

Для своих нужд написал небольшую библиотеку для анализа паттернов.
https://github.com/ABaboshin/FrequentDataMining

Реализовано (generic):
1. Apriori.
2. FPGrowth.
3. fast discovery of association rules Agarwal.

Есть два небольших примера: консольное приложение и Xamarin iOS приложение.

Лицензия — MIT.
Re: [ann] small frequent pattern mining library
От: pugv Россия  
Дата: 11.11.15 12:04
Оценка:
Закомментированные Console.WriteLine глаза режут.

А так — зачет!
Re: [ann] small frequent pattern mining library
От: hardcase Пират http://nemerle.org
Дата: 11.11.15 12:17
Оценка: 8 (1)
Здравствуйте, Андрей Бабошин, Вы писали:

Здорово!

Есть такое пожелание. Ограничения на T слишком сильные:
where T : IComparable<T>, IEquatable<T>


Я бы предоставил возможность пользователю указать руками функцию сравнения T.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 11.11.15 12:32
Оценка:
Здравствуйте, pugv, Вы писали:

P>Закомментированные Console.WriteLine глаза режут.


P>А так — зачет!


Тесты писать было лень, а отлаживаться как-то надо было

Уберу. Спасибо.
Re[2]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 11.11.15 12:33
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, Андрей Бабошин, Вы писали:


H>Здорово!


H>Есть такое пожелание. Ограничения на T слишком сильные:

H>
where T : IComparable<T>, IEquatable<T>


H>Я бы предоставил возможность пользователю указать руками функцию сравнения T.


Ок, попробую сделать в ближайшее время.
Re[3]: [ann] small frequent pattern mining library
От: pugv Россия  
Дата: 11.11.15 12:46
Оценка:
Здравствуйте, Андрей Бабошин, Вы писали:

АБ> Тесты писать было лень, а отлаживаться как-то надо было


Ну дык есть Debug.
А отключение кусков кода комментариями... моветон, имхо. Лучше так:
#if temporary_disabled // А вот тут комментарий зачем это было сделано
    
#endif

Но это я так, предираюсь. Заревьюился.
Re: [ann] small frequent pattern mining library
От: Gattaka Россия  
Дата: 11.11.15 17:27
Оценка:
Совсем недавно искал и к моему удивлению не нашел ничего приличного!
ИМХО стоит написать статейку на codeproject.com
Re[2]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 11.11.15 18:05
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>Совсем недавно искал и к моему удивлению не нашел ничего приличного!

G>ИМХО стоит написать статейку на codeproject.com

Вот я именно по этой причине и написла своё. И завидовал чёрной завистью ява-разработчикам.
Re: [ann] small frequent pattern mining library
От: xy012111  
Дата: 11.11.15 18:32
Оценка:
Здравствуйте, Андрей Бабошин, Вы писали:

АБ>Для своих нужд написал небольшую библиотеку для анализа паттернов.

АБ>https://github.com/ABaboshin/FrequentDataMining

А на каком объёме данных вы пробовали и реально используете библиотеку? На первый взгляд кроме прочего эстетического бросаются в глаза
        public static bool Equal<T>(this List<T> a, List<T> b) where T : IEquatable<T>, IComparable<T>
        {
            if (a.Count() != b.Count())
            {
                return false;
            }

            var n1 = new Sorter<T>().Sort(a).ToList();
            var n2 = new Sorter<T>().Sort(b).ToList();

            for (var i = 0; i < n1.Count(); i++)
            {
                if (!n1[i].Equals(n2[i]))
                {
                    return false;
                }
            }

            return true;
        }

    internal class Sorter<T> where T : IComparable<T>
    {
        public List<T> Sort(List<T> token) {
            var tmp = token.ToList();
            tmp.Sort();
            return tmp;
        }
    }


Некоторые невнимательности в количестве обходов коллекций
Re[2]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 11.11.15 22:12
Оценка:
Здравствуйте, xy012111, Вы писали:


X>Некоторые невнимательности в количестве обходов коллекций


Спасибо! Данных у меня пока и правда было немного (ну и руки из одного места ) ).
Этим я займусь.
Re[2]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 11.11.15 22:21
Оценка: +1
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, Андрей Бабошин, Вы писали:


H>Здорово!


H>Есть такое пожелание. Ограничения на T слишком сильные:

H>
where T : IComparable<T>, IEquatable<T>


H>Я бы предоставил возможность пользователю указать руками функцию сравнения T.


Заимплементил.
Re[3]: [ann] small frequent pattern mining library
От: xy012111  
Дата: 11.11.15 23:40
Оценка:
Здравствуйте, Андрей Бабошин, Вы писали:

X>>Некоторые невнимательности в количестве обходов коллекций


АБ>Спасибо! Данных у меня пока и правда было немного (ну и руки из одного места ) ).

АБ>Этим я займусь.

Спасибо! А то у меня вот тоже обработка данных делается, а с математикой ни-бум-бум, но хочется думать, что калькулятор будет работать на столько быстро, на сколько это возможно
Re[4]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 12.11.15 22:57
Оценка:
Здравствуйте, xy012111, Вы писали:

X>Спасибо! А то у меня вот тоже обработка данных делается, а с математикой ни-бум-бум, но хочется думать, что калькулятор будет работать на столько быстро, на сколько это возможно


На IEnumerable я перешёл, так же поправлен баг в FPGrowth, который приводил к падению.
Re[5]: [ann] small frequent pattern mining library
От: xy012111  
Дата: 13.11.15 00:10
Оценка: :)
Здравствуйте, Андрей Бабошин, Вы писали:

АБ>На IEnumerable я перешёл, так же поправлен баг в FPGrowth, который приводил к падению.


Вижу. Но стало ещё хуже Сами найдёте?

  Подсказка
Имея в АПИ IEnumerable преступно пробегать по нему более чем один раз.
Re[6]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 13.11.15 00:31
Оценка:
Здравствуйте, xy012111, Вы писали:

X>Вижу. Но стало ещё хуже Сами найдёте?


X>
  Подсказка
X>Имея в АПИ IEnumerable преступно пробегать по нему более чем один раз.


Буду думать над своим поведением
Re[6]: [ann] small frequent pattern mining library
От: Андрей Бабошин Германия http://andreybaboshin.livejournal.com/
Дата: 14.11.15 22:24
Оценка:
Здравствуйте, xy012111, Вы писали:

Я поменял интерфейс: теперь алгоритмы не возвращают и не принимают данные как list/ienumerable, пользователь должен реализовать в своём коде интерфейсы для чтения и записи данных.
И самое главное — существенно улучшены скорость работы и потребления памяти. enumearble теперь только один раз энумеруется.

Первая реализация была просто
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.