Test name | Executions per second |
---|---|
R.path | 2898219.8 Ops/sec |
native path | 16498848.0 Ops/sec |
pure native path | 17026860.0 Ops/sec |
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.1/ramda.min.js"></script>
var exercise = {
"data": {
"name": "전설의 포켓몬을 찾아라!",
"dataset_label": "포켓몬",
"datasets": [
{
"type": "pokemon",
"data": {
"name": "쥬벳",
"image": "pokemon/Zubat.png",
"stats": {
"hp": 40,
"attack": 45,
"defense": 35,
"sp_atk": 30,
"sp_def": 40,
"speed": 55
},
"type1": "poison"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "꼬부기",
"image": "pokemon/Squirtle.png",
"stats": {
"hp": 44,
"attack": 48,
"defense": 65,
"sp_atk": 50,
"sp_def": 64,
"speed": 43
},
"type1": "water"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "잠만보",
"image": "pokemon/Snorlax.png",
"stats": {
"hp": 160,
"attack": 110,
"defense": 65,
"sp_atk": 65,
"sp_def": 110,
"speed": 30
},
"type1": "normal"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "뮤츠",
"image": "pokemon/Mewtwo.png",
"stats": {
"hp": 106,
"attack": 110,
"defense": 90,
"sp_atk": 154,
"sp_def": 90,
"speed": 130
},
"type1": "psychic"
},
"label": "전설"
},
{
"type": "pokemon",
"data": {
"name": "피죤",
"image": "pokemon/Pidgey.png",
"stats": {
"hp": 40,
"attack": 45,
"defense": 40,
"sp_atk": 35,
"sp_def": 35,
"speed": 56
},
"type1": "flying"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "고라파덕",
"image": "pokemon/Psyduck.png",
"stats": {
"hp": 50,
"attack": 52,
"defense": 48,
"sp_atk": 65,
"sp_def": 50,
"speed": 55
},
"type1": "water"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "캐터피",
"image": "pokemon/Caterpie.png",
"stats": {
"hp": 45,
"attack": 30,
"defense": 35,
"sp_atk": 20,
"sp_def": 20,
"speed": 45
},
"type1": "bug"
},
"label": "일반"
}
],
"workspace_type": "pokemon_ex1",
"threshold": 50,
"dataset_name": "pokemon",
"initial_instruction": {
"1": {
"Pg1": "포켓몬과 그 능력치를 모아 놓은 포켓몬도감 목록을 가져왔습니다. 여기에는 일반 포켓몬과 전설의 포켓몬, 두 종류의 데이터가 있습니다. 한 포켓몬의 능력치가 주어졌을 때, 전설의 포켓몬 여부를 구분하는 머신러닝 모델을 만들려고 합니다.",
"img1": "http://localhost:1234/static/data/images/initial-instruction/courseC/exercise1.png",
"Link": "https://www.icon54.com",
"Tip1": "주어진 데이터 그대로 모델을 만들었을 때, 모델의 정확도를 확인해 봅시다."
}
},
"instructions": [
[
"주어진 포켓몬의 능력으로 전설의 포켓몬을 찾는 모델을 만드는 실습입니다."
]
],
"hint": "데이터의 가공없이 모델을 만들었을 때의 정확도를 알아봅시다.",
"mission_complete_message": "미션을 완료했습니다! 다른 데이터를 눌러보면서 결과를 확인해보세요",
"dataset_split": [
[
"training",
"학습 데이터"
],
[
"test",
"테스트 데이터"
]
],
"block_library": {
"dataset": [
{
"type": "input.array.ability",
"set": "training",
"name": "학습 데이터"
},
{
"type": "input.array.ability",
"set": "test",
"name": "테스트 데이터"
}
],
"model": [
{
"type": "layer.PokemonTiny",
"name": "model",
"text": "전설의 포켓몬을 구분하는 머신러닝 모델입니다."
}
]
},
"workspace_type_id": 20,
"accuracy_panel_required": true,
"data_type": "array"
},
"course": {
"id": "3",
"course_name": "Course 3",
"course_data": {
"lectures": {},
"quizzes": {
"selection": {
"question": "거짓말 측정기의 정확성을 높이려면?",
"quiz_type": "equal",
"order_sensitive": "False",
"instruction": "거짓말 측정기를 학습시킬 거짓말 데이터가 준비되어 있습니다. 각각의 데이터는 데이터의 양이 서로 다릅니다. 세 가지의 데이터 중 어떤 데이터를 학습시켰을 때 거짓말 측정기의 정확성이 가장 높을까요?",
"text": "거짓말 측정기의 정확성",
"blocks": [
{
"accuracy": "50%",
"text": [
"사자는 파충류야"
]
},
{
"accuracy": "77%",
"text": [
"사자는 파충류야",
"시드니는 호주의 수도야",
"스쿨버스는 파란색이야"
]
},
{
"accuracy": "96%",
"text": [
"사자는 파충류야",
"시드니는 호주의 수도야",
"스쿨버스는 파란색이야",
"만원권에는 이순신 장군이 있지",
"초등학교는 5년제야",
"블루베리는 주황색이야"
]
}
],
"answer": "96%"
},
"outlier": {
"question": "필요없는 데이터 지워보세요.",
"quiz_type": "compare",
"order_sensitive": "False",
"instruction": "평균적인 범위에서 크게 벗어나는 아웃라이어(Outlier) 데이터를 클릭해서 지워보세요.",
"text": "오차의 합",
"data": [
{
"outlier": false,
"axis": [
4,
8
]
},
{
"outlier": true,
"axis": [
2,
40
]
},
{
"outlier": false,
"axis": [
5,
23
]
},
{
"outlier": false,
"axis": [
6,
25
]
},
{
"outlier": false,
"axis": [
8,
27
]
},
{
"outlier": false,
"axis": [
10,
40
]
},
{
"outlier": false,
"axis": [
14,
42
]
},
{
"outlier": true,
"axis": [
12,
10
]
},
{
"outlier": true,
"axis": [
15,
80
]
},
{
"outlier": false,
"axis": [
17,
58
]
},
{
"outlier": false,
"axis": [
18,
70
]
}
],
"threshold": 10
},
"confusion_matrix": {
"question": "데이터 불균형: 혼동행렬 표 채우기",
"quiz_type": "equal",
"instruction": "사과를 분류하기 위한 분류기를 개발하였습니다. 사과와 바나나를 분류한 결과를 보고 혼동행렬 표를 채워보세요.(소수점 둘째자리에서 반올림)",
"text": [
"정밀도",
"재현율",
"정확성"
],
"order_sensitive": "True",
"data": {
"matrix": {
"data": [
[
"1",
"8"
],
[
"0",
"1"
]
],
"key": [
"예측",
"실제",
[
"사과",
"바나나"
]
]
},
"input_text": [
"정밀도",
"재현율",
"정확성"
]
},
"answer": [
"11.1",
"100",
"20"
]
}
},
"exercises": {
"pokemon_ex1": {
"name": "전설의 포켓몬을 찾아라!",
"dataset_label": "포켓몬",
"datasets": [
{
"type": "pokemon",
"data": {
"name": "쥬벳",
"image": "pokemon/Zubat.png",
"stats": {
"hp": 40,
"attack": 45,
"defense": 35,
"sp_atk": 30,
"sp_def": 40,
"speed": 55
},
"type1": "poison"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "꼬부기",
"image": "pokemon/Squirtle.png",
"stats": {
"hp": 44,
"attack": 48,
"defense": 65,
"sp_atk": 50,
"sp_def": 64,
"speed": 43
},
"type1": "water"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "잠만보",
"image": "pokemon/Snorlax.png",
"stats": {
"hp": 160,
"attack": 110,
"defense": 65,
"sp_atk": 65,
"sp_def": 110,
"speed": 30
},
"type1": "normal"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "뮤츠",
"image": "pokemon/Mewtwo.png",
"stats": {
"hp": 106,
"attack": 110,
"defense": 90,
"sp_atk": 154,
"sp_def": 90,
"speed": 130
},
"type1": "psychic"
},
"label": "전설"
},
{
"type": "pokemon",
"data": {
"name": "피죤",
"image": "pokemon/Pidgey.png",
"stats": {
"hp": 40,
"attack": 45,
"defense": 40,
"sp_atk": 35,
"sp_def": 35,
"speed": 56
},
"type1": "flying"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "고라파덕",
"image": "pokemon/Psyduck.png",
"stats": {
"hp": 50,
"attack": 52,
"defense": 48,
"sp_atk": 65,
"sp_def": 50,
"speed": 55
},
"type1": "water"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "캐터피",
"image": "pokemon/Caterpie.png",
"stats": {
"hp": 45,
"attack": 30,
"defense": 35,
"sp_atk": 20,
"sp_def": 20,
"speed": 45
},
"type1": "bug"
},
"label": "일반"
}
],
"workspace_type": "pokemon_ex1",
"threshold": 50,
"dataset_name": "pokemon",
"initial_instruction": {
"1": {
"Pg1": "포켓몬과 그 능력치를 모아 놓은 포켓몬도감 목록을 가져왔습니다. 여기에는 일반 포켓몬과 전설의 포켓몬, 두 종류의 데이터가 있습니다. 한 포켓몬의 능력치가 주어졌을 때, 전설의 포켓몬 여부를 구분하는 머신러닝 모델을 만들려고 합니다.",
"img1": "http://localhost:1234/static/data/images/initial-instruction/courseC/exercise1.png",
"Link": "https://www.icon54.com",
"Tip1": "주어진 데이터 그대로 모델을 만들었을 때, 모델의 정확도를 확인해 봅시다."
}
},
"instructions": [
[
"주어진 포켓몬의 능력으로 전설의 포켓몬을 찾는 모델을 만드는 실습입니다."
]
],
"hint": "데이터의 가공없이 모델을 만들었을 때의 정확도를 알아봅시다.",
"mission_complete_message": "미션을 완료했습니다! 다른 데이터를 눌러보면서 결과를 확인해보세요",
"dataset_split": [
[
"training",
"학습 데이터"
],
[
"test",
"테스트 데이터"
]
],
"block_library": {
"dataset": [
{
"type": "input.array.ability",
"set": "training",
"name": "학습 데이터"
},
{
"type": "input.array.ability",
"set": "test",
"name": "테스트 데이터"
}
],
"model": [
{
"type": "layer.PokemonTiny",
"name": "model",
"text": "전설의 포켓몬을 구분하는 머신러닝 모델입니다."
}
]
},
"workspace_type_id": 20,
"accuracy_panel_required": true,
"data_type": "array"
},
"pokemon_ex2": {
"name": "데이터를 가공해서 전설의 포켓몬을 찾아라!",
"dataset_label": "포켓몬",
"datasets": [
{
"type": "pokemon",
"data": {
"name": "쥬벳",
"image": "pokemon/Zubat.png",
"stats": {
"hp": 40,
"attack": 45,
"defense": 35,
"sp_atk": 30,
"sp_def": 40,
"speed": 55
},
"type1": "poison"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "꼬부기",
"image": "pokemon/Squirtle.png",
"stats": {
"hp": 44,
"attack": 48,
"defense": 65,
"sp_atk": 50,
"sp_def": 64,
"speed": 43
},
"type1": "water"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "잠만보",
"image": "pokemon/Snorlax.png",
"stats": {
"hp": 160,
"attack": 110,
"defense": 65,
"sp_atk": 65,
"sp_def": 110,
"speed": 30
},
"type1": "normal"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "뮤츠",
"image": "pokemon/Mewtwo.png",
"stats": {
"hp": 106,
"attack": 110,
"defense": 90,
"sp_atk": 154,
"sp_def": 90,
"speed": 130
},
"type1": "psychic"
},
"label": "전설"
},
{
"type": "pokemon",
"data": {
"name": "피죤",
"image": "pokemon/Pidgey.png",
"stats": {
"hp": 40,
"attack": 45,
"defense": 40,
"sp_atk": 35,
"sp_def": 35,
"speed": 56
},
"type1": "flying"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "고라파덕",
"image": "pokemon/Psyduck.png",
"stats": {
"hp": 50,
"attack": 52,
"defense": 48,
"sp_atk": 65,
"sp_def": 50,
"speed": 55
},
"type1": "water"
},
"label": "일반"
},
{
"type": "pokemon",
"data": {
"name": "캐터피",
"image": "pokemon/Caterpie.png",
"stats": {
"hp": 45,
"attack": 30,
"defense": 35,
"sp_atk": 20,
"sp_def": 20,
"speed": 45
},
"type1": "bug"
},
"label": "일반"
}
],
"workspace_type": "pokemon_ex2",
"threshold": 90,
"dataset_name": "pokemon",
"tutorial": [
{
"text": "아래 버튼을 클릭해서 데이터 가공하는 탭을 열어봐! 사용하지 않을 데이터는 선택 해제하면 돼."
}
],
"initial_instruction": {
"1": {
"Pg1": "포켓몬과 그 능력치를 모아 놓은 포켓몬도감 목록을 가져왔습니다. 여기에는 일반 포켓몬과 전설의 포켓몬, 두 종류의 데이터가 있습니다. 한 포켓몬의 능력치가 주어졌을 때, 전설의 포켓몬 여부를 구분하는 머신러닝 모델을 만들려고 합니다.",
"img1": "http://localhost:1234/static/data/images/initial-instruction/courseC/exercise1.png",
"Link": "https://www.icon54.com"
},
"2": {
"Pg1": "이 때, 학습 데이터 셋에서 정상적인 포켓몬 능력치 범위(0~200)를 벗어나는 이상치(아웃라이어)를 발견했습니다.",
"img1": "http://localhost:1234/static/data/images/initial-instruction/courseC/exercise2-2.png",
"Tip1": "아웃라이어를 제거하여 모델의 정확도를 높여봅시다."
}
},
"instructions": [
[
"지우가 얻은 데이터 중 이상치를 제거하여 전설의 포켓몬 찾는 모델의 정확도를 높여봅시다. (능력치 범위는 0 ~ 200입니다.)"
]
],
"hint": "데이터의 가공없이 모델을 만들었을 때의 정확도를 알아봅시다.",
"mission_complete_message": "미션을 완료했습니다! 다른 데이터를 눌러보면서 결과를 확인해보세요",
"dataset_split": [
[
"training",
"학습 데이터"
],
[
"test",
"테스트 데이터"
]
],
"block_library": {
"dataset": [
{
"type": "input.array.ability",
"set": "training",
"name": "학습 데이터"
},
{
"type": "input.array.ability",
"set": "test",
"name": "테스트 데이터"
}
],
"model": [
{
"type": "layer.PokemonTiny",
"name": "model",
"text": "전설의 포켓몬을 구분하는 머신러닝 모델입니다."
}
]
},
"workspace_type_id": 21,
"accuracy_panel_required": true,
"data_type": "array"
}
}
}
},
"tutorialPageSwitches": null
}
R.path(['course', 'course_data', 'exercises'])(exercise)
exercise?.course?.course_data?.exercises
exercise.course.course_data.exercises