Пример #1
0
import sys
sys.path.append('../')
import numpy as np
from pyBKT.models import Model
np.seterr(divide='ignore', invalid='ignore')

skills = ["Percent Of", "Addition and Subtraction Integers", "Conversion of Fraction Decimals Percents", "Volume Rectangular Prism", "Venn Diagram", "Equation Solving Two or Fewer Steps", "Volume Cylinder", "Multiplication and Division Integers", "Area Rectangle", "Addition and Subtraction Fractions", ]

model = Model(seed = 0, num_fits = 1)
print("BKT")
print(model.crossvalidate(data_path = "data/as.csv", skills = skills, metric = "rmse")["rmse"].values)
print()
print("Item Learning Effect")
print(model.crossvalidate(data_path = "data/as.csv", skills = skills, multilearn = "problem_id", metric = "rmse")["rmse"].values)
Пример #2
0
import numpy as np
from pyBKT.models import Model
np.seterr(divide='ignore', invalid='ignore')

skills = [
    "Percent Of",
    "Addition and Subtraction Integers",
    "Conversion of Fraction Decimals Percents",
    "Volume Rectangular Prism",
    "Venn Diagram",
    "Equation Solving Two or Fewer Steps",
    "Volume Cylinder",
    "Multiplication and Division Integers",
    "Area Rectangle",
    "Addition and Subtraction Fractions",
]

model = Model(seed=0, num_fits=20)
print("BKT")
#print(model.crossvalidate(data_path = "data/as.csv", skills = skills, metric = "auc"))
print(
    model.crossvalidate(data_path="data/as.csv", skills=skills, metric="rmse"))
print()
print("KT-IDEM")
#print(model.crossvalidate(data_path = "data/as.csv", skills = skills, multigs = True, metric = "auc"))
print(
    model.crossvalidate(data_path="data/as.csv",
                        skills=skills,
                        multigs=True,
                        metric="rmse"))
Пример #3
0
import sys
sys.path.append('../')
import numpy as np
from pyBKT.models import Model
np.seterr(divide='ignore', invalid='ignore')

#only one skill is shown due to the high time complexity needed to fit the item order effect model
skills = ["Venn Diagram"]

model = Model(seed=0, num_fits=10)
print("BKT")
print(
    model.crossvalidate(data_path="data/as.csv", skills=skills, metric="rmse"))
print()
print("Item Order Effect")
print(
    model.crossvalidate(data_path="data/as.csv",
                        skills=skills,
                        multipair=True,
                        metric="rmse")["rmse"].values)
Пример #4
0
import sys
sys.path.append('../')
import numpy as np
from pyBKT.models import Model
np.seterr(divide='ignore', invalid='ignore')

#only one skill is shown due to the high time complexity needed to fit the item order effect model
skills = ["Venn Diagram"]

model = Model(seed = 0, num_fits = 5)
print("BKT")
print(model.crossvalidate(data_path = "data/as.csv", skills = skills, metric = "rmse"))
print(model.params())
print()
print("Item Order Effect")
print(model.crossvalidate(data_path = "data/as.csv", skills = skills, multipair = True, metric = "rmse"))
print(model.params().to_string())
Пример #5
0
import sys
sys.path.append('../')
import numpy as np
from pyBKT.models import Model
np.seterr(divide='ignore', invalid='ignore')

model = Model(seed=0, num_fits=20)
model.fit(data_path="data/builder_train_preprocessed.csv")
model.evaluate(data_path="data/builder_test_preprocessed.csv")

model2 = Model(seed=0, num_fits=20)
model2.fit(data_path="data/builder_train_preprocessed.csv", forgets=True)
model2.evaluate(data_path="data/builder_test_preprocessed.csv")
Пример #6
0
def prediction_code():
    data = pd.read_csv('updated_data.csv')
    model = Model(seed=42, num_fits=6)
    data['skill_name'] = data['subCategory']
    model.fit(data=data)
    return model
Пример #7
0
maes = []
all_files.sort()
for i in all_files:
    if i == "README.txt" or i == ".DS_Store":
        continue

    print("Creating model for ", i)

    df0 = pd.read_csv("./data/glops-exact-processed/" + i)
    seq_length = round(len(df0) / len(df0["user_id"].unique()))
    df_train = (df0.groupby('user_id').apply(
        lambda x: x.iloc[:-1] if len(x) > 1 else x).reset_index(drop=True)
                )  #remove all but last element

    model = Model(num_fits=10, seed=2020)

    model.fit(data=df_train)
    predictions = model.predict(data=df0)

    y_pred = predictions["correct_predictions"][seq_length - 1::seq_length]
    y_true = df0["correct"][seq_length - 1::seq_length]
    bkt_mae = sk.mean_absolute_error(y_true, y_pred)

    df0 = pd.read_csv("./data/glops-exact-processed/" + i)
    seq_length = round(len(df0) / len(df0["user_id"].unique()))
    df_train = (df0.groupby('user_id').apply(
        lambda x: x.iloc[:-1] if len(x) > 1 else x).reset_index(drop=True)
                )  #remove all but last element
    model2 = Model(num_fits=10, seed=2020)