본문 바로가기
AI 및 데이터 분석

Dataiku - 레시피 활용 (1)

by riML 2023. 6. 2.
아래의 튜토리얼 내용은 dataiku academy 자료를 참고하여 제작되었습니다.

안녕하세요.

Dataiku Prepare 레시피를 활용한 데이터 전처리를 시작해보도록 하겠습니다 : )

 



Dataiku 레시피는 데이터셋에 적용되는 변환 단계 또는 처리 로직을 포함합니다.

레시피를 사용하면 데이터셋의 데이터를 처리하고 변환할 수 있습니다.

 

시각적 레시피(Visual Recipe):
- 가장 일반적인 데이터 변환 작업을 수행하는 데 사용
- 그래픽 사용자 인터페이스(GUI)로 작업 수행 (버튼으로 쉽게!)
- 팀 내 모든 구성원이 사용하고 이해하기 쉬움


코드 레시피(Code Recipe):

- Python, R, SQL 등의 언어를 사용하여 사용자 정의 처리 로직을 작성 가능
- 자유롭게 데이터 처리 작업을 수행할 수 있으며, 다양한 기능과 라이브러리를 활용 할 수 있음
- 고급 사용자나 특정 작업을 수행해야 하는 경우에 적합
- 데이터 처리 작업에 대한 완전한 자유도를 제공


플러그인 레시피(Plugin Recipe):
- 데이터이쿠의 기능을 확장하기 위한 방법으로 사용
- 개발자가 작성한 코드를 사용하여 특정 기능이나 알고리즘을 추가
- 플러그인은 기존 기능을 확장하거나 사용자 정의 기능을 추가하는 데 사용
- 시각적 인터페이스를 제공하면서 코드 레시피의 자유로움을 유지


지난 글에서 사용한 Basic 101 프로젝트를 이어서 진행합니다!

visual recipe 중 "prepare recipe"를 이용하여 데이터를 변환시켜 보도록 하겠습니다 : )

 

먼저, order dataset을 열어주세요.

화면 상단 우측의 작업(Actions) 버튼이나 더하기(+) 표시를 클릭하여 오른쪽 사이드바를 확장합니다.
작업 사이드바의 Visual recipes 부분에서 Prepare를 선택합니다.

대부분의 시각적 레시피에서는 입력 데이터셋과 레시피가 생성할 출력 데이터셋의 이름을 제공해야 합니다.


Input dataset은 레시피에 적용할 데이터 셋을 선택한 것이고,

Output dataset은 레시피 적용 후 변환한 데이터 셋을 담는 공간 입니다.

Store into의 값을 설정하여 출력 데이터가 저장될 위치를 결정할 수도 있습니다. (예제에서는 로컬 파일시스템에 저장)


CREATE RECIPE 버튼을 클릭해주세요.

 

 

먼저, 열의 순서를 변경해봅시다.
order_id 열을 pages_visited 열 앞으로 드래그합니다. 작업을 수행하고 나면, 이 작업을 설명하는 단계가 레시피의 스크립트에 자동으로 추가됩니다.

 

Analyze 창은 데이터의 샘플을 기반으로 열 데이터에 대한 요약 정보를 제공합니다. 또한 다양한 데이터 클렌징 작업을 수행할 수 있도록 합니다.

 

White T-Shirt M 와 Wh Tshirt M 의 경우, 같은 의미의 하얀색 티셔츠 M 이지만 표기가 두 가지 방식으로 되어 있습니다. 따라서 카테고리를 정리해보도록 하겠습니다!


tshirt_category 열 이름을 클릭하고 드롭다운 메뉴에서 Analyze를 선택합니다.

 

White T-Shirt M과 Wh Tshirt M을 선택하고,  "Mass Actions" 드롭다운 메뉴에서 Merge selected를 선택합니다.
값을 White T-Shirt M으로 대체하도록 선택하고 Merge를 클릭합니다.

Black T-shirt M / BL Tshirt M 

White T-shirt F / Wf Tshirt F

Black T-shirt F / Bl Tshirt F

같은 방식으로 다른 카테고리에 대해서도 동일한 과정을 반복하여 최종적으로 여섯 개의 카테고리만 남도록 합니다.

 

Analyze 창을 닫고 Prepare 스크립트에 Replace 단계가 추가된 것을 확인하세요. 이 단계에서 4개의 값을 대체하면 샘플의 517개 행이 영향을 받습니다. 스크립트에서 직접 reaplce 기능을 이용하여 생성할 수도 있지만, Analyze 창은 빠르고 직관적인 단축키를 제공하여 이 단계를 쉽게 작성하도록 도움을 줍니다.

 

 

이제 order_date를 처리해 봅시다. 현재 order_date 열의 저장 유형은 문자열이지만, dataiku가 추론한 의미는 분석되지 않은 날짜입니다. 제대로 된 날짜로 처리하기 위해 파싱해 보겠습니다. order_date 열의 드롭다운을 열고, Parse date를 선택하세요.

 

스마트 날짜 대화 상자에는 날짜의 가장 가능성 있는 형식과 데이터셋의 일부 샘플 값을 기준으로 파싱된 날짜가 어떻게 보일지가 표시됩니다. yyyy/MM/dd 형식을 선택하고, Use Date Format을 클릭하세요.


order_date_parsed라는 새로운 열이 생성됩니다. 원래 날짜 열을 삭제하고 새로운 열의 이름을 변경해 보겠습니다.

order_date 열 헤더 드롭다운을 클릭하고, Delete를 선택하세요.
order_date_parsed 열 헤더 드롭다운을 클릭하고, Rename을 선택하세요.
이름을 order_date로 지정하고, OK를 클릭하세요.

 

스크립트의 각 단계를 확인해봅니다. : )

 

마지막으로, 각 티셔츠 주문 금액을 계산하기 위해 Formula 단계를 사용해 보겠습니다.

Dataiku의 Formula는 계산, 문자열 조작 등을 수행하기 위한 표현 언어입니다.

노란색 +Add a New Step 버튼을 클릭하고, Formula를 검색 후 선택하세요.

새로운 출력 열의 이름으로 total을 입력하고,  Expression 필드에 tshirt_price * tshirt_quantity를 입력하세요 
열 헤더를 클릭하여 tshirt_price 및 tshirt_quantity 열을 제거하세요. (컬럼 선택 후 , Delete)

이제 데이터 준비가 완료되었으므로, 전체 입력 데이터셋에서 레시피를 실행해야 합니다.
페이지 왼쪽 하단에 있는 Run을 클릭하세요! (녹색 버튼)

 

Run 을 클릭하기 전까지는 데이터셋에 대하여 아직 작업이 수행되지 않은 상태입니다. sample 로 보여지는 데이터는 단순히 미리보기 입니다! 작업을 완료하면 Run 버튼을 눌러야 출력 데이터 세트가 생성 됩니다 : )

Flow 화면에서 진행상황을 확인 할 수 있습니다. 왼쪽 상단에서 Flow를 누르거나, 단축키 G+F로 이동가능합니다.

작업이 완료되면, 출력 데이터셋인 orders_prepared가 생성됩니다. 


Prepare 레시피를 활용하여 간단히 데이터 전처리를 진행해보았습니다.

궁금한 내용 있으시면, 댓글로 질문 남겨주세요 : )