lccasagrande / Deep-Knowledge-Tracing

An implementation of the Deep Knowledge Tracing (DKT) using Tensorflow 2.0
MIT License
94 stars 38 forks source link

What is the reason for doing shift for the features (1 timestep) ? #15

Open bernardoleite opened 2 years ago

bernardoleite commented 2 years ago

Hi there! Thanks for your implementation.

I would like to clarify a doubt, if possible. From the data_util.py file we can observe:

# Step 4 - Convert to a sequence per user id and shift features 1 timestep
seq = df.groupby('user_id').apply(
    lambda r: (
        r['skill_with_answer'].values[:-1],
        r['skill'].values[1:],
        r['correct'].values[1:],
    )
)

I could not understand the reason for making that shift. Can you clarify? Thanks in advance.

Blackbird95x commented 2 years ago

Hey there! i currently working on my Implementation, my first ever ML model ever, and im glad Mr. Cassagrande did an amazing Job on his implementation. Thats why I try to understand and get it to my use case. but I cant wrap my head arround it. I dont quite understand why you would drop a datapoint. Maybe you got some clarity over the problem over the time and would help me to understand