<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
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
R.path | |
native path | |
pure native path |
Test name | Executions per second |
---|---|
R.path | 2898219.8 Ops/sec |
native path | 16498848.0 Ops/sec |
pure native path | 17026860.0 Ops/sec |
I'll do my best to help you with the provided JSON data.
It appears that this is a data object containing information about an exercise or tutorial in a Pokémon game development environment. Here's a summary of what I've extracted from the data:
Exercise Data
exercise
: An array of objects containing various properties, including course
, course_data
, and exercises
.course
: The course name (e.g., "courseC").course_data
: The exercise ID.exercises
: An array of objects containing information about the exercises in the course.Benchmark Results
The data also includes benchmark results for three test cases:
R.path(['course', 'course_data', 'exercises'])(exercise)
: A benchmarking result for a function that uses the R.path
function to access nested properties in the exercise object.exercise?.course?.course_data?.exercises
: A benchmarking result for a native JavaScript path expression that accesses the same nested properties as the previous test case.exercise.course.course_data.exercises
: A benchmarking result for a pure native path expression that accesses the same nested properties as the previous two test cases.The latest benchmark results are also provided, which show varying execution times for each test case across different browsers and devices.
Please let me know if you'd like me to extract any specific information from this data or if you have further questions!