复习得是不是有点烦躁?练习题太少?这里提供批量生成人智导练习题的工具
首先配置环境
pip install -r requirements.txt
模仿 2021 年的期末考题,随机生成一道训练集大小为 3 的二元 SVM 问题及其逐步骤的详细解答。
输出可以结合 Typora 进行阅读。
见 example/svm_*.md
。
python svm.py
筛选SVM生成的题目和答案,避免生成如下牛马答案(X)
运行步骤,首先使用脚本生成1000个答案(实在等不及了按 Ctrl + c 停止)
./repeat
然后执行 filter.py 程序
python filter.py
你将获得类似如下提示信息
精选优质题库: 14 / 105 题,值得你拥有!
题目和解答的模板见 template/svm_problem.md
和 template/svm_solution.md
。
"range": 随机取样范围,将在 [-range, range] 中的整数中随机取样生成向量
"kernels": 可供选择的核函数。"repr" 是函数运算时执行的代码,"str" 是LaTex格式的函数表达
"random": 是否随机生成
困了,介绍略。生成的文件见 doc/decision_tree_**.md
。二阶摆烂,解答和题目糊到一个文件里了。
python decision.py
TODO
随机生成一道 Alpha-Beta 剪枝题目及其解答。
生成时先生成一颗满树,然后随机删除子树,直到叶子数足够少。约束条件见配置。然后试着给树叶赋值,如果赋值 200 次后仍然剪枝次数太少,就重新生成,直到树的剪枝数足够多,同时叶子也足够少为止。
(如果条件比较苛刻可能反复生成十几次才能达到要求qwq
python tree.py
运行后会根据 settings.json
中的配置,将题目和解答生成到 img
目录下。其中,todo_**.jpg
是题目,done_**.jpg
是解答,**
是生成是使用的随机数种子。
运行时,输出平均分支数,节点数和剪枝数。
运行过程中输出
tree.py:93: RuntimeWarning: Couldn't reach some vertices at src/paths/unweighted.c:368
path = graph.get_shortest_paths(0, nd)[0]
是预期内的行为。
"max_ch": 最大分枝数
"layers": 层数
"max_leaves": 叶子数上限
"min_clip": 剪枝次数下限
"show_clip_count": 是否在stdout输出有多少剪枝
"distinguish_max_min": 图中是否区分极大极小节点
"save_path": 生成图片保存路径
TOOD
TODO