Skip to content

Latest commit

 

History

History
327 lines (235 loc) · 19.2 KB

File metadata and controls

327 lines (235 loc) · 19.2 KB

소개

이 실습에서는 Alpha Office의 데이터 과학자 / ML 전문가인 해미라는 인물에서 시작합니다. 해미는 분석을 위해 데이터를 추출하고 준비하는 데 지난 몇 년 동안 대부분의 시간을 보냈습니다. 많은 양의 데이터를 추출하고 처리해야한다는 것은 작업을 끝내기 위해 기다리는 시간과 데이터 분석에 소요되는 시간을 거의 소비하지 않는다는 것을 의미합니다. 다른 클라우드 솔루션은 더욱 복잡하며 장소에서 데이터를 분석하기위한 직접적인 프로세스가 없습니다. 그녀는 오라클을 살펴보기 시작했고 ADWC의 간단한 SQL 명령이 친숙하고 플랫폼의 모든 성능 기능을 활용하여 매우 빠르게 실행된다는 것을 알게되었습니다. 일단 그녀는 유입 데이터에 즉시 학습 모델을 적용 할 수 있고 최종 사용자 분석가에게 마이닝 결과를 즉시 조회할 수 있도록 할 수 있습니다. 따라서 데이터 준비, 분석 및 게시주기가 크게 단축됩니다. 또한 사용자가 익숙한 분석/보고 데이터 시각화 도구 세트에 대한 변경 사항이 없음을 의미합니다.

오픈소스 아파치 제플린에 대한 문서는 링크를 참조하세요. Apache Zeppelin based collaboration environment 이 협업 환경을 통해 실시간으로 다른 팀과 협업하고, ML 처리 과정을 검토하고, 프로세스를 합치고, 문서를 작성하는 등 다양한 작업을 할 수 있습니다. 이번 lab은 대부분 Oracle ML 인터페이스를 사용할 것이며 오라클 데이터베이스 안에 내장되어 있는 Machine Learning 알고리즘을 사용할 것입니다. 머신러닝 알고리즘은 이 링크를 참조하세요. Oracle Advanced Analytics documentation.

목표

  • Apache Zepplin notebook을 임포트합니다.
  • 오라클 머신러닝 알고리즘에 친숙해 집니다.
  • 좋은 신용도를 가진 고객을 예측하는 머신러닝 모델을 정의하고 적용해봅니다.

필요한 툴

  • Oracle SQL Developer (Lab 100을 보고 SQL Developer 설치 및 설정 방법을 참고하세요.)

Steps

Credit Score 데이터를 Object Storage에 업로드하기

STEP 1: lab 300과 lab 400에 사용할 zip 파일을 다운로드합니다. 안에는 필요한 모든 파일이 들어 있습니다.

다운로드 링크를 클릭하세요. install.zip

다운로드 받은 zip파일은 압축을 풀고 추후 lab에서 활용합니다.

STEP 2: 오라클 클라우드 SIGN IN

  • 로그인이 안되어 있다면 로그인합니다.

enter image description here

enter image description here

enter image description here

  • compute을 클릭합니다.

enter image description here

enter image description here

STEP 3: adwc 버켓을 생성하고 데이터를 업로드합니다.

enter image description here

  • adwc 라는 이름을 가진 버켓을 생성합니다. compartment는 default로 설정되는 root compartment를 선택합니다.(ManagedCompartmentForPaaS는 선택하면 안됩니다.) enter image description here

    enter image description here

  • adwc 버켓을 선택하고 install.zip 파일에서 압축 푼 폴더에 있는 credit_scoring_100k.csv 파일을 업로드합니다.

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

  • import 프로세스를 위해 object 의 URL을 복사합니다. enter image description here

    enter image description here

  • OCI Object Storage의 파일을 ADWC에 로드하기 위해서는 사용자 증명(authentication)이 필요합니다. ADWC와 Object Storage간 communication을 위해서는 Swift Protocol을 사용하며 오라클 클라우드에서는 이를 Auth Token으로 명칭하고 있습니다. 메뉴바에서 [Identity -> Users]를 클릭합니다. enter image description here

  • username을 클릭합니다. 이 username은 추후 ADWC에서 credential을 생성할 때 사용하기 때문에 기억해 둡시다. (또는 따로 메모)

enter image description here

  • 왼쪽 메뉴에서 Auth Tokens을 클릭하여 Token을 생성합니다. enter image description here

    enter image description here

    enter image description here

    enter image description here

STEP 4: Database Credential 생성하기

  • Object Store의 데이터에 액세스하려면 OCI Object Store 계정 및 Auth 토큰을 사용하여 데이터베이스 사용자가 Object Store로 인증 할 수 있어야합니다. Autonomous Data Warehouse에는 이러한 암호화된 정보를 저장하는 CREDENTIAL 오브젝트를 생성합니다. 이 정보는 사용자 스키마에만 사용할 수 있습니다.

  • SQL Developer에서 사용자로 연결하여 이것을 복사하여 SQL Developer 워크 시트에 붙여 넣으십시오. Oracle Cloud Infrastructure Object Storage 서비스의 authentication을 지정하십시오. 사용자 이름은 OCI 사용자 이름 (이전 단계에서 Identity -> Users 에 등록된 username)과 이전 단계에서 생성 한 OCI 객체 저장소 인증 토큰이됩니다. 이 예에서는 OBJ_STORE_CRED라는 이름의 새로운 오브젝트가 작성됩니다. 다음 단계에서 이 오브젝트 이름을 참조합니다.

  • SQLDeveloper에 다음을 붙여 넣습니다.

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'adwc_token',
    username => '<your cloud username>',
    password => '<generated auth token>'
  );
END;
/

enter image description here

  • 이제 Object Storage에 데이터를 로드할 준비가 되었습니다.

5단계 : dbms_cloud.copy_data 패키지를 사용하여 데이터로드

  • 먼저 테이블을 만듭니다. SQLDeveloper에 다음을 입력하세요.
create table admin.credit_scoring_100k 
   (	customer_id number(38,0), 
	age number(4,0), 
	income number(38,0), 
	marital_status varchar2(26 byte), 
	number_of_liables number(3,0), 
	wealth varchar2(4000 byte), 
	education_level varchar2(26 byte), 
	tenure number(4,0), 
	loan_type varchar2(26 byte), 
	loan_amount number(38,0), 
	loan_length number(5,0), 
	gender varchar2(26 byte), 
	region varchar2(26 byte), 
	current_address_duration number(5,0), 
	residental_status varchar2(26 byte), 
	number_of_prior_loans number(3,0), 
	number_of_current_accounts number(3,0), 
	number_of_saving_accounts number(3,0), 
	occupation varchar2(26 byte), 
	has_checking_account varchar2(26 byte), 
	credit_history varchar2(26 byte), 
	present_employment_since varchar2(26 byte), 
	fixed_income_rate number(4,1), 
	debtor_guarantors varchar2(26 byte), 
	has_own_phone_no varchar2(26 byte), 
	has_same_phone_no_since number(4,0), 
	is_foreign_worker varchar2(26 byte), 
	number_of_open_accounts number(3,0), 
	number_of_closed_accounts number(3,0), 
	number_of_inactive_accounts number(3,0), 
	number_of_inquiries number(3,0), 
	highest_credit_card_limit number(7,0), 
	credit_card_utilization_rate number(4,1), 
	delinquency_status varchar2(26 byte), 
	new_bankruptcy varchar2(26 byte), 
	number_of_collections number(3,0), 
	max_cc_spent_amount number(7,0), 
	max_cc_spent_amount_prev number(7,0), 
	has_collateral varchar2(26 byte), 
	family_size number(3,0), 
	city_size varchar2(26 byte), 
	fathers_job varchar2(26 byte), 
	mothers_job varchar2(26 byte), 
	most_spending_type varchar2(26 byte), 
	second_most_spending_type varchar2(26 byte), 
	third_most_spending_type varchar2(26 byte), 
	school_friends_percentage number(3,1), 
	job_friends_percentage number(3,1), 
	number_of_protestor_likes number(4,0), 
	no_of_protestor_comments number(3,0), 
	no_of_linkedin_contacts number(5,0), 
	average_job_changing_period number(4,0), 
	no_of_debtors_on_fb number(3,0), 
	no_of_recruiters_on_linkedin number(4,0), 
	no_of_total_endorsements number(4,0), 
	no_of_followers_on_twitter number(5,0), 
	mode_job_of_contacts varchar2(26 byte), 
	average_no_of_retweets number(4,0), 
	facebook_influence_score number(3,1), 
	percentage_phd_on_linkedin number(4,0), 
	percentage_masters number(4,0), 
	percentage_ug number(4,0), 
	percentage_high_school number(4,0), 
	percentage_other number(4,0), 
	is_posted_sth_within_a_month varchar2(26 byte), 
	most_popular_post_category varchar2(26 byte), 
	interest_rate number(4,1), 
	earnings number(4,1), 
	unemployment_index number(5,1), 
	production_index number(6,1), 
	housing_index number(7,2), 
	consumer_confidence_index number(4,2), 
	inflation_rate number(5,2), 
	customer_value_segment varchar2(26 byte), 
	customer_dmg_segment varchar2(26 byte), 
	customer_lifetime_value number(8,0), 
	churn_rate_of_cc1 number(4,1), 
	churn_rate_of_cc2 number(4,1), 
	churn_rate_of_ccn number(5,2), 
	churn_rate_of_account_no1 number(4,1), 
	churn_rate__of_account_no2 number(4,1), 
	churn_rate_of_account_non number(4,2), 
	health_score number(3,0), 
	customer_depth number(3,0), 
	lifecycle_stage number(38,0), 
	credit_score_bin varchar2(100 byte)
   );

	 grant select any table to public;

enter image description here

  • 테이블을 마우스 우클릭하여 테이블 목록을 새로고침 합니다. enter image description here

  • 다음의 코드를 실행하세요.

begin
 dbms_cloud.copy_data(
    table_name =>'credit_scoring_100k',
    credential_name =>'adwc_token',
    file_uri_list => 'https://objectstorage.<your data center - eg us-ashburn-1>/n/<your tenant - eg dgcameron2>/adwc/o/credit_scoring_100k.csv',
    format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true', 'dateformat' value 'YYYY-MM-DD HH24:MI:SS', 'blankasnull' value 'true', 'delimiter' value ',', 'skipheaders' value '1')
 );
end;
/

enter image description here

  • 왼쪽 메뉴의 테이블을 선택하여 데이터 탭을 선택, 데이터가 잘 로드되었는지 확인합니다. enter image description here

Oracle Machine Learning에 로그인합니다.

  • 이제 해미가 데이터 로드를 완료하였으므로 Oracle Cloud Console에 로그인한 다음 Machine Learning Console에 로그인 하겠습니다.

  • 클라우드 콘솔에 로그인이 안되어 있다면 로그인합니다. enter image description here

    enter image description here

    enter image description here

  • compute을 클릭합니다.

enter image description here

enter image description here

  • 왼쪽 메뉴바에서 [Autonomous Data Warehouse]를 클릭합니다.

  • 서비스 콘솔을 선택합니다.

  • Administration 메뉴의 [Manage Oracle ML Users]를 클릭합니다. enter image description here

  • 인스턴스를 만들 때 할당한 admin/password 로 로그인합니다. enter image description here

  • 새로운 ML user를 만듭니다. adwc_ws 유저가 사용할 패스워드를 지정합니다. (Alpha2018___) enter image description here

    enter image description here

  • 오른쪽 상단의 홈 아이콘을 클릭합니다.

enter image description here

  • adwc_ws암호 로 로그인하십시오 Alpha2018___. enter image description here

  • ML 콘솔을 살펴보면서 화면 및 기능에 친숙해져 봅니다. 예제 파일을 담고 있는 Examples 메뉴를 클릭합니다. enter image description here

  • 다양한 예제 파일들이 있습니다. 오라클 ML(Machine Learning)을 배울 수 있는 가장 좋은 방법 입니다. 예제를 통해 각 알고리즘을 다루는 방식을 연습하는 것이 좋습니다. enter image description here

  • 우리는 새로운 ML Notebook을 만들것 입니다. 왼쪽 상단의 아이콘을 클릭하면 메뉴가 다시 나타납니다. 그 다음 [Notebook]을 선택합니다.

enter image description here

enter image description here

  • 사전에 구축된 노트북을 가져와 실습에서 사용하겠습니다. [Import]를 클릭합니다. enter image description here

  • 실습 앞단에서 다운로드 받은 폴더에 Credit_Score_Prediction4.json 파일을 선택합니다. enter image description here

  • import한 노트북을 선택합니다.

enter image description here

  • 작업을 시작하기 전에 Interpreter binding을 설정합니다. 톱니바퀴 아이콘을 클릭하여 dbname_high 를 선택하고 저장합니다.

enter image description here

  • 이 실습의 나머지는 아래와 같이 대화식으로 수행됩니다. 각 paragraph를 실행하여 단계를 진행합니다.
  • 샘플 코드에 대한 설명은 모두 주석 및 markdown으로 적어 놓았습니다. 참고해서 실습을 진행하시면 되겠습니다.
  • 아래는 편의를 위한 스크린샷이니 참고하시기 바랍니다.
  • 이 과정은 데이터 전처리부터 모델 생성, 모델 평가, 새로운 데이터에 모델 적용, OLTP 애플리케이션에서 사용하는 단독 레코드에 모델 적용하기 등의 전 과정을 포함합니다.

  • 전체를 실행하고 lab 400으로 넘어갑니다.