Click here to Skip to main content
15,891,375 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I need to recognize a pattern in the following diagram/example:

Image Link

I need to recognize that students spend a lot of time studying for 40-55mins ON Monday, Tues, wed. And rarely studies on another date and so forth. Can I use Machine Learning to do this or is there an easier and efficient way?
Posted

I'm no AI expert but I'd say AI isn't required to solve this and most probably wouldn't be the quickest way. I would try this approach:

Imagine a cube - axis X is the day of the week, axis Y is the time spent studying and axis Z is the frequency of that happening (reflecting the "mostly" and "rarely" in your graph).

You implement the cube as a 3-dimensional array of Integers, the Y axis obviously having a size of 7 and for the X and Z axis you choose some size that seems reasonable to you (maybe increments of 30 minutes for X and frequencies of once a week, twice a week, ..., every day for Z).

Then you simply fill in your sample points into the cube by incrementing the Integers at the according indices by one (initially zero).

Finally you can find concentrations (maxima) of studying-activity by "moving" a "window" (a smaller cube) through that cube and summing up the Integers in that window. Example: Let's say your cube has the dimensions of (X,Y,Z) = 6,7,7 (6 steps of 30 minutes, Monday through Sunday, 1-7 times per week). The "window-cube" could have the dimensions of 2,2,2 and you move it through the cube within 3 nested for-loops, each increasing one of the coordinates, starting at 0,0,0. You sum up the values of the Integers in the cube that overlap with the window-cube (which will require some more nested for-loops) and store that value in some other structure together with the coordinates of the window-cube at that point. When you're done, you sort the results by the sum and you have your results. You could experiment with different window-sizes and -shapes (e.g. a window of 1,1,1 or 1,1,7 or 6,1,1 or what have you).

If you try this and it worked for you, please drop a comment, I'd be interested to hear about it :)
 
Share this answer
 
Is the graph image what you actually have as input (i.e., you have image files as the input)?
Or do you have the data points that were used to generate the image(s)?

If you really want to learn about Machine Learning and Classification systems, check out the Free, introductory Machine Learning online course from Caltech![^]
It won't give you the code, but you'll learn lots about how to do it yourself!
If you try taking the course, I suggest using Octave (a free Matlab-compatible system)[^] for practicing and homework.
 
Share this answer
 
Comments
Member 11065384 24-Feb-15 0:35am    
I have the data sir, as in, I have data such as: A specific student studied Math for 2 hours on Monday, 1 hour and 50 minutes on Tuesday, 2 hours and 10 minutes on Wednesday. She also studied for 5 hours on Thursday. So in this case, the algorithm should be focusing on the most 'dense' area on the graph, which is the 3 points that are close to each other :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900