The PrefixSpan algorithm

Поделиться
HTML-код
  • Опубликовано: 25 окт 2024

Комментарии • 40

  • @NazneenSultana-jh6bq
    @NazneenSultana-jh6bq Год назад +4

    Should we add one more step for c or not? please clarify

    • @philfv
      @philfv  Год назад +3

      Yes, you are right, after checking all patterns that starts with "a", and all patterns that starts with "b", PrefixSpan will check all patterns that starts with "c" by doing the same process. In this case, PrefixSpan will find no frequent patterns that starts with "c". This is why the step is ommitted in the video and also to keep the video short. But I should have made this more clear. Thanks for the feedback!

    • @philfv
      @philfv  Год назад +3

      Here is the updated Powerpoint with the step for C that is added:
      www.philippe-fournier-viger.com/COURSES/Pattern_mining/PrefixSpan_the_presentation.pdf

    • @NazneenSultana-jh6bq
      @NazneenSultana-jh6bq Год назад +2

      Thanks a lot for responding

  • @Mew__
    @Mew__ 2 года назад +4

    Very nice video reference; more thorough and more engaged than my professor!

  • @leonardodamiancazarestrejo637
    @leonardodamiancazarestrejo637 Год назад +2

    Thank you for the awesome explanation, greetings from Mexico

  • @philfv
    @philfv  2 года назад +8

    Errata: In step 7, in the projected database of , the support of is 4 instead of 3.

  • @uchoang9510
    @uchoang9510 2 года назад +3

    What a great video you provide Sir! You really help me understand the concept and it helps me a lot on my final. Thank you so much

  • @Ghost-ip3bx
    @Ghost-ip3bx 11 месяцев назад +1

    Best explanation ever, thank you!!!!

    • @philfv
      @philfv  11 месяцев назад +1

      Thanks! Happy you like it!

  • @xiylza7946
    @xiylza7946 2 года назад +4

    In step 7 in projected database of : Support of is 4 instead of 3.
    pl check and correct me if i am wrong

    • @philfv
      @philfv  2 года назад +1

      You are right. It should be 4. Thanks for reporting the error!

  • @NazneenSultana-jh6bq
    @NazneenSultana-jh6bq Год назад +3

    We must do the same for c right from the sequence DB? But then there will be no frequent patterns with c right?

    • @philfv
      @philfv  Год назад +1

      Philippe Fournier-Viger
      1 second ago
      Yes, you are right, after checking all patterns that starts with "a", and all patterns that starts with "b", PrefixSpan will check all patterns that starts with "c" by doing the same process. In this case, PrefixSpan will find no frequent patterns that starts with "c". This is why the step is ommitted in the video and also to keep the video short. But I should have made this more clear. Thanks for the feedback!

  • @AminPahlavani
    @AminPahlavani 2 года назад +3

    Great tutorial. Thank you so much for your explanation.

    • @philfv
      @philfv  2 года назад +2

      Thanks for watching! Appreciate your feedback!

  • @philfv
    @philfv  2 года назад +3

    Hope you enjoy this video!

  • @shirishamara1570
    @shirishamara1570 2 года назад +3

    Really great explanation sir

    • @philfv
      @philfv  2 года назад +1

      Thanks for watching. Happy you like it.

  • @satyabrata2006
    @satyabrata2006 2 года назад +3

    Extremely helpful Sir.

    • @philfv
      @philfv  2 года назад +1

      Glad to hear that

  • @KangPrayit
    @KangPrayit 2 года назад +3

    Thanks for the great videos sir. If we already have the result, for example with support: 3. How we could retrieve which rows in our sequence database? thanks.

    • @philfv
      @philfv  2 года назад +1

      Hi, Thanks. If you want to find which sequences of the database contains a pattern like you could write a simple algorithm. The algorithm would read each sequence. For a sequence, the algorithm would first try to find the first itemset {a}. Then after it is found, it would continue reading the sequence to find the second itemset {c}, and if there are more itemsets, it would continue to find the third one, etc. Then if all the itemsets are found, it is a match. By repeating this for all sequences of the database, you can find all the sequences that contains the pattern.
      It is not complicated to do that. Just a bit of programming. If you use my software SPMF, there is an algorithm called OCCUR which exactly do that. You can give a list of patterns to OCCUR and it will find the sequenes that contains each pattern and output them.
      Also, another option is modify an algorithm like PrefixSpan so that it will output the list of sequences containing each pattern. This is also not very hard to do. In my software SPMF, you have that option for some algorithms. It is called "show sequence IDs".

    • @philfv
      @philfv  2 года назад +1

      Thanks for watching ;-)

    • @KangPrayit
      @KangPrayit 2 года назад +2

      @@philfv thanks for the reply and providing us the software 😊.
      i already try your spmf software in python wrapping github.com/lolei/spmf-py and set the option "show sequence IDs". Its work!. Just curios if we already have the pattern and do the query. will try the OCCUR. once again thanks for the sharing sir.

  • @janszkylaszlo
    @janszkylaszlo 8 месяцев назад

    Can you make a video of the BIDE algorithm? I read the article of the authors of the algorithm, but as far as I remember some of the points were not clear.

    • @philfv
      @philfv  8 месяцев назад +2

      That paper is very tricky. It took me a long time to understand it when I first read it. As I remember, the problem is that it explains only the simple case in the paper where each itemset has a single item. But when we try to implement it for the general case, it becomes very complex to make it work.
      The implementation in SPMF of BIDE has a bug that I did not fix because it is too complicated to fix it, and there are other algorithms that find closed sequential patterns.
      But for BIDE, I actually spend weeks to do the first implementation in SPMF. Then, I try to redo it completely again from scratch to make it better but still had trouble with the general cases. It is not an easy algorithm to implement correctly for the general case.
      I dont think that I will make a video about BIDE now. But I will keep your suggestions. I might do it later or at least make a video about closed sequential pattern mining that outline the main idea.

  • @linasworlddz3319
    @linasworlddz3319 9 месяцев назад +1

    thanks a lot that was really helpful

  • @shirishamara1570
    @shirishamara1570 2 года назад +3

    Can u share an example on spade algorithm

    • @philfv
      @philfv  2 года назад +1

      Good evening, Thanks for your suggestions. I have some slides about the SPADE algorithm that I use for teaching. But I need to polish them a bit more to record a video about SPADE. I will keep your suggestion and try to make a video when I have time. In the mean time, if you want slides for SPADE, you can send me an e-mail to philfv8@yahoo.com and I can share my current slides with you.

  • @mouthfulofrecipes2380
    @mouthfulofrecipes2380 2 года назад +3

    Great tutorial sir.thank u 🙏🏻

  • @huongchuang2460
    @huongchuang2460 7 месяцев назад

    Have you ever add this algorithm to weka, I want do that but have many difficult. Do you suggest some way to solve that problem. Thank you so much

    • @philfv
      @philfv  7 месяцев назад

      Hi, you could check the SPMF wrapper for Weka that was developed by someone else:
      github.com/christopher-beckham/spmf-wrapper
      It could help you call the sequential pattern mining algorithms from SPMF such as PrefixSpan from within Weka. I did not try it but it may work.

  • @sungwonim61
    @sungwonim61 3 месяца назад

    Great Video!!

  • @mardzj
    @mardzj Год назад +2

    Good shit

  • @ahmedahmed-wz8qd
    @ahmedahmed-wz8qd 2 года назад +3

    thanks

    • @philfv
      @philfv  2 года назад +2

      Thanks for watching!

  • @iamadi1709
    @iamadi1709 8 месяцев назад

    worst

    • @frooeessaa
      @frooeessaa 7 месяцев назад

      what a weird thing to say on such a video

    • @philfv
      @philfv  7 месяцев назад +1

      I do these videos to share knowledge freely with students all over the world. Any constructive suggestions for improvements are welcome.