Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions al_outerloop/controllers/bkt.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ def next_problem(self,student=None):
elif len(unmastered_kcs) == max_unmastered_kcs: # We'll choose randomly among problems with the same number of unmastered skills
problem_with_unmastered_kcs.append(problem)
else:
problem_with_unmastered_kcs.append(problem)
problem_with_max_unmastered_kcs.append(problem)

if len(problem_with_unmastered_kcs) == 0:
self.test_mode = True;
Expand All @@ -267,4 +267,4 @@ def next_problem(self,student=None):
else:
print("Problems in training ( total number =", len(self.problems_asked),")")
print(self.problems_asked)
return None # done training
return None # done training
218 changes: 218 additions & 0 deletions examples/Parameter-estimate-values.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
<parameters>
<parameter>
<id>1</id>
<type>skill</type>
<name>M JCommTable6.R0C0</name>
<intercept>0.0007567684</intercept>
<slope>0.1484043711</slope>
<slip>0.0663688968</slip>
<guess>0.3000000000</guess>
</parameter>
<parameter>
<id>2</id>
<type>skill</type>
<name>M JCommTable6.R1C0</name>
<intercept>0.0001053167</intercept>
<slope>0.2546773440</slope>
<slip>0.0427399450</slip>
<guess>0.2660533366</guess>
</parameter>
<parameter>
<id>3</id>
<type>skill</type>
<name>M JCommTable4.R0C0</name>
<intercept>0.0000009567</intercept>
<slope>0.3819492506</slope>
<slip>0.0502076043</slip>
<guess>0.1399547127</guess>
</parameter>
<parameter>
<id>4</id>
<type>skill</type>
<name>M JCommTable5.R1C0</name>
<intercept>0.0008853693</intercept>
<slope>0.1935411349</slope>
<slip>0.0693928237</slip>
<guess>0.3000000000</guess>
</parameter>
<parameter>
<id>5</id>
<type>skill</type>
<name>M done</name>
<intercept>0.0000090318</intercept>
<slope>0.1803580735</slope>
<slip>0.0302020949</slip>
<guess>0.3000000000</guess>
</parameter>
<parameter>
<id>6</id>
<type>skill</type>
<name>M JCommTable4.R1C0</name>
<intercept>0.0272924026</intercept>
<slope>0.1427033392</slope>
<slip>0.0565474593</slip>
<guess>0.3000000000</guess>
</parameter>
<parameter>
<id>7</id>
<type>skill</type>
<name>M JCommTable8.R0C0</name>
<intercept>0.0000000137</intercept>
<slope>0.1855100406</slope>
<slip>0.0419376468</slip>
<guess>0.1438380179</guess>
</parameter>
<parameter>
<id>8</id>
<type>skill</type>
<name>AD JCommTable4.R0C0</name>
<intercept>0.0000093497</intercept>
<slope>0.1810679154</slope>
<slip>0.2435815960</slip>
<guess>0.0852545644</guess>
</parameter>
<parameter>
<id>9</id>
<type>skill</type>
<name>AD JCommTable4.R1C0</name>
<intercept>0.0000480931</intercept>
<slope>0.1917027063</slope>
<slip>0.1958493692</slip>
<guess>0.0677372449</guess>
</parameter>
<parameter>
<id>10</id>
<type>skill</type>
<name>AD JCommTable5.R0C0</name>
<intercept>0.0000000001</intercept>
<slope>0.0792575857</slope>
<slip>0.2151947519</slip>
<guess>0.1337396767</guess>
</parameter>
<parameter>
<id>11</id>
<type>skill</type>
<name>AD JCommTable5.R1C0</name>
<intercept>0.0000000067</intercept>
<slope>0.1360588059</slope>
<slip>0.1695478455</slip>
<guess>0.0808771533</guess>
</parameter>
<parameter>
<id>12</id>
<type>skill</type>
<name>AD JCommTable6.R0C0</name>
<intercept>0.0000000000</intercept>
<slope>0.0570964492</slope>
<slip>0.1796634650</slip>
<guess>0.1668333742</guess>
</parameter>
<parameter>
<id>13</id>
<type>skill</type>
<name>AD JCommTable6.R1C0</name>
<intercept>0.0000000000</intercept>
<slope>0.0557092283</slope>
<slip>0.1740477574</slip>
<guess>0.1802833023</guess>
</parameter>
<parameter>
<id>14</id>
<type>skill</type>
<name>AD JCommTable8.R0C0</name>
<intercept>0.0034713733</intercept>
<slope>0.3533298337</slope>
<slip>0.2343257941</slip>
<guess>0.0611253901</guess>
</parameter>
<parameter>
<id>15</id>
<type>skill</type>
<name>AD done</name>
<intercept>0.0026084325</intercept>
<slope>0.1596133208</slope>
<slip>0.0962795982</slip>
<guess>0.3000000000</guess>
</parameter>
<parameter>
<id>16</id>
<type>skill</type>
<name>M JCommTable5.R0C0</name>
<intercept>0.8052918388</intercept>
<slope>0.9545715122</slope>
<slip>0.2508795315</slip>
<guess>0.3000000000</guess>
</parameter>
<parameter>
<id>17</id>
<type>skill</type>
<name>AS JCommTable4.R0C0</name>
<intercept>0.0431727719</intercept>
<slope>0.3033639712</slope>
<slip>0.1045680555</slip>
<guess>0.0957464999</guess>
</parameter>
<parameter>
<id>18</id>
<type>skill</type>
<name>AS JCommTable6.R1C0</name>
<intercept>0.0016154726</intercept>
<slope>0.3450209451</slope>
<slip>0.2057141398</slip>
<guess>0.1240814474</guess>
</parameter>
<parameter>
<id>19</id>
<type>skill</type>
<name>AS JCommTable8.R0C0</name>
<intercept>0.0001982199</intercept>
<slope>0.3006631873</slope>
<slip>0.1903939990</slip>
<guess>0.0680437210</guess>
</parameter>
<parameter>
<id>20</id>
<type>skill</type>
<name>AS JCommTable6.R0C0</name>
<intercept>0.0000140955</intercept>
<slope>0.3029393908</slope>
<slip>0.0960732688</slip>
<guess>0.0990673738</guess>
</parameter>
<parameter>
<id>21</id>
<type>skill</type>
<name>AS done</name>
<intercept>0.0000835337</intercept>
<slope>0.2357927131</slope>
<slip>0.1009954653</slip>
<guess>0.2715311518</guess>
</parameter>
<parameter>
<id>22</id>
<type>skill</type>
<name>AS JCommTable4.R1C0</name>
<intercept>0.0000000641</intercept>
<slope>0.3608876131</slope>
<slip>0.1409748456</slip>
<guess>0.1127237400</guess>
</parameter>
<parameter>
<id>23</id>
<type>skill</type>
<name>AS JCommTable5.R1C0</name>
<intercept>0.2004787265</intercept>
<slope>0.5026235723</slope>
<slip>0.0629429996</slip>
<guess>0.1287449636</guess>
</parameter>
<parameter>
<id>24</id>
<type>skill</type>
<name>AS JCommTable5.R0C0</name>
<intercept>0.1048389532</intercept>
<slope>0.5375606231</slope>
<slip>0.1785523451</slip>
<guess>0.0381825880</guess>
</parameter>
</parameters>
Binary file added examples/bkt_fitted_parameters.txt
Binary file not shown.
Binary file added examples/model_params_1.p
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"args": {
"planner" : "numba",
"search_depth" : 2,
"when_learner": "trestle",
"when_learner": "decisiontree",
"where_learner": "FastMostSpecific",
"state_variablization" : "whereappend",
"strip_attrs" : ["to_left","to_right","above","below","type","id","offsetParent","dom_class"],
Expand All @@ -25,8 +25,8 @@
},
"training_set1": [
{
"agent_name": "BKT Controller",
"repetitions" : 100,
"agent_name": "Default BKT Controller",
"repetitions" : 30,
"outer_loop_controller" : {
"type" : "BKT",
"args" : {
Expand Down
98 changes: 98 additions & 0 deletions examples/outer_loop_test_bkt_revise1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"set_params" : {
"agent" : {
"agent_type": "ModularAgent",
"stay_active": true,
"dont_save": true,
"args": {
"planner" : "numba",
"search_depth" : 2,
"when_learner": "decisiontree",
"where_learner": "FastMostSpecific",
"state_variablization" : "whereappend",
"strip_attrs" : ["to_left","to_right","above","below","type","id","offsetParent","dom_class"],
"when_args" : {
"cross_rhs_inference" : "none"
},
"function_set" : ["RipFloatValue","Add",
"Subtract","Numerator_Multiply", "Cross_Multiply",
"Divide"],
"feature_set" : ["Equals"],
}
},
"HTML": "tutors/FractionArithmetic/fraction_arithmetic.html",
"abs_qf_paths": true
},
"training_set1": [
{
"agent_name": "BKT Controller",
"repetitions" : 30,
"outer_loop_controller" : {
"type" : "BKT",
"args" : {
"bkt_probs" :
{
"AD check_convert" : {"known": 0.1, "learn": 0.05, "guess": 0.05, "slip": 0.02},

"AD num3" : {"known": 0.0000093497, "learn": 0.1810679154, "guess": 0.0852545644, "slip": 0.2435815960},
"AD den3" : {"known": 0.0000480931, "learn": 0.1917027063, "guess": 0.0677372449, "slip": 0.1958493692},
"AD num4" : {"known": 0.0000000001, "learn": 0.0792575857, "guess": 0.1337396767, "slip": 0.2151947519},
"AD den4" : {"known": 0.0000000067, "learn": 0.1360588059, "guess": 0.0808771533, "slip": 0.1695478455},
"AD num5" : {"known": 0.0000000000, "learn": 0.0570964492, "guess": 0.1668333742, "slip": 0.1796634650},
"AD den5" : {"known": 0.0000000000, "learn": 0.0557092283, "guess": 0.1802833023, "slip": 0.1740477574},
"AD done" : {"known": 0.0026084325, "learn": 0.1596133208, "guess": 0.3000000000, "slip": 0.0962795982 },

"AS num3" : {"known": 0.0431727719, "learn": 0.3033639712, "guess": 0.0957464999, "slip": 0.1045680555},
"AS den3" : {"known": 0.0000000641, "learn": 0.3608876131, "guess": 0.1127237400, "slip": 0.1409748456},
"AS num4" : {"known": 0.1048389532, "learn": 0.5375606231, "guess": 0.0381825880, "slip": 0.1785523451},
"AS den4" : {"known": 0.2004787265, "learn": 0.5026235723, "guess": 0.1287449636, "slip": 0.0629429996},
"AS num5" : {"known": 0.0000140955, "learn": 0.3029393908, "guess": 0.0990673738, "slip": 0.0960732688 },
"AS den5" : {"known": 0.0016154726, "learn": 0.3450209451, "guess": 0.1240814474, "slip": 0.2057141398},
"AS done" : {"known": 0.0000835337, "learn": 0.2357927131, "guess": 0.2715311518, "slip": 0.1009954653},

"M num3" : {"known": 0.0000009567, "learn": 0.3819492506, "guess": 0.1399547127, "slip": 0.0502076043},
"M den3" : {"known": 0.0272924026, "learn": 0.1427033392, "guess": 0.3000000000, "slip": 0.0565474593},
"M num4" : {"known": 0.8052918388, "learn": 0.9545715122, "guess": 0.3000000000, "slip": 0.2508795315},
"M den4" : {"known": 0.0008853693, "learn": 0.1935411349, "guess": 0.3000000000, "slip": 0.0693928237},
"M num5" : {"known": 0.0007567684, "learn": 0.1484043711, "guess": 0.3000000000, "slip": 0.0663688968},
"M den5" : {"known": 0.0001053167, "learn": 0.2546773440, "guess": 0.2660533366, "slip": 0.0427399450},
"M done" : {"known": 0.0000090318, "learn": 0.1803580735, "guess": 0.3000000000, "slip": 0.0302020949},

},
"interface_to_kcs" : {
"check_convert" : ["AD check_convert"],
"done" : ["AD done", "AS done", "M done"],
"JCommTable4.R0C0" : ["AD num3", "AS num3", "M num3"],
"JCommTable4.R1C0" : ["AD den3", "AS den3", "M den3"],
"JCommTable5.R0C0" : ["AD num4", "AS num4", "M num4"],
"JCommTable5.R1C0" : ["AD den4", "AS den4", "M den4"],
"JCommTable6.R0C0" : ["AD num5", "AS num5", "M num5"],
"JCommTable6.R1C0" : ["AD den5", "AS den5", "M den5"],
}
},
"problem_set": {
"concatenate" : [
{"glob" :
{"key" : "question_file",
"pattern": "tutors/FractionArithmetic/mass_production_brds/AD*",
"obj_template" : {"kc_list" : ["AD check_convert","AD den3","AD num3","AD den4","AD num4","AD den5","AD num5","AD done"]}
}
},
{"glob" :
{"key" : "question_file",
"pattern": "tutors/FractionArithmetic/mass_production_brds/AS*",
"obj_template" : {"kc_list" : ["AS den3","AS num3","AS den4","AS num4","AS den5","AS num5","AS done"]}
}
},
{"glob" :
{"key" : "question_file",
"pattern": "tutors/FractionArithmetic/mass_production_brds/M*",
"obj_template" : {"kc_list" : ["M den3","M num3","M den4","M num4","M den5","M num5","M done"]}
}
}
]
}
},
}
]
}
Loading