다운로드된 lab_normal_equation.zip 파일을작업폴더로이동한후압축해제후작업하시길바랍니다. 압축해제하면폴더가 linux_mac 과 windows 로나눠져있습니다. 자신의 OS에맞는폴더로이동해서코드를수정해주시기바랍니다. linear_model.py 코드 구조

Similar documents
Lab - Gradient descent Copyright 2018 by Introduction [PDF 파일다운로드 ]() 이번랩은우리가강의를통해들은 Gradient descent 을활용하여 LinearRegression

Lab-Buildamatrix Copyright 2018 document created by Introduction PDF 파일다운로드 Machin Learning의두번째랩은 Pandas와 Numpy를활용하여 Rating M

Lab-Numpyinanutshell Copyright 2018 document created by Introduction PDF 파일다운로드 오래기다리셨습니다. 드디어 Machin Learning 강의첫번째 Lab Assi

Lab #4 - 화씨변환기 (fahrenheit_converter) Copyright 2015 document created by Introduction 4 주차강의 Lab Assignment 입니다. 이번 lab 은더짧고더

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

SBR-100S User Manual

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

23_Time-Series-Prediction

유니티 변수-함수.key

Microsoft Word _mentor_conf_output5.docx

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

JUNIT 실습및발표

데이터 시각화

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

OnTuneV3_Manager_Install

기술통계

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

NTD36HD Manual

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Web Scraper in 30 Minutes 강철

Microsoft PowerPoint - additional01.ppt [호환 모드]

ICAS CADWorx SPLM License 평가판설치가이드

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

PowerPoint 프레젠테이션

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

1

- 클래스를이용한 2개의계산기구현 class Calculator: def init (self): self.result = 0 def adder(self, num): self.result += num return self.result cal1 = Calculator()

Microsoft PowerPoint - e pptx

KAKAO AI REPORT Vol.01

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

!K_InDesginCS_NFH

Studuino소프트웨어 설치

PowerPoint 프레젠테이션

문서의 제목 나눔고딕B, 54pt

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

PowerPoint 프레젠테이션

Master Node 구축 Guide 가입후마스터노드구축에필요한서버를임대하여야합니다. 2. 원하시는서버가설치된국가선택후하단의이미지와같이 Server Type을 Ubuntu x 버전으로선택하시고마스터노드구

문서의 제목 나눔고딕B, 54pt

Windows 8에서 BioStar 1 설치하기

17장 클래스와 메소드

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

SBR-100S User Manual

슬라이드 1

API 매뉴얼

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Cubase AI installation guide

쉽게 풀어쓴 C 프로그래밍

Algorithm_Trading_Simple

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Index 1. Intro Install Connect Scratch 1.4 (Offline Editor) Scratch 2.0 (Online Editor) Connect f

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

JVM 메모리구조

dist=dat[:,2] # 기초통계량구하기 len(speed) # 데이터의개수 np.mean(speed) # 평균 np.var(speed) # 분산 np.std(speed) # 표준편차 np.max(speed) # 최대값 np.min(speed) # 최소값 np.me

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

JDK이클립스

UI TASK & KEY EVENT

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Internet Explorer 11 자동업데이트방지 사용자가이드 작성일 : Version 1.0


1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Artificial Intelligence: Assignment 5 Seung-Hoon Na December 15, Numpy: Tutorial 다음 자료를 참조하여 numpy기본을 공부하시오.

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

부서: 기획감사실 정책: 지방행정 역량 강화 단위: 군정운영 및 의회협력 행정협의회 분담금 20,000,000원*1식 20, 행사운영비 2,000 2,000 0 행정협의회 지원 2,000,000원*1식 2,000 의원상해 지원 36,000 36,

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Report Designer V3.0 사용설명서 2장

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

1. 아나콘다설치와주피터 1 Anaconda( 아나콘다 ) - Python 기반의데이터분석에필요한오픈소스를모아놓은개발플랫폼이다. - 가상환경관리자제공 / - 패키지관리자제공 2 아나콘다에포함된수준높은패키지관리자를통해서파이썬의효율성을극대화시켜활용할수있습니다. 3 아나콘다

PowerPoint 프레젠테이션

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

쉽게 풀어쓴 C 프로그래밊

JAVA 플랫폼 개발 환경 구축 및 활용

행자부 G4C

PowerPoint 프레젠테이션

문서의 제목 나눔고딕B, 54pt

Microsoft PowerPoint - gnu-w06-python_[실습]_day13-turtle-shape

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

adfasdfasfdasfasfadf

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft PowerPoint - chap06-2pointer.ppt

BEA_WebLogic.hwp

슬라이드 1

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

Transcription:

Lab-Normalequation Copyright 2018 by teamlab.gachon@gmail.com Introduction [PDF 파일다운로드 ]() 이번랩은우리가강의를통해들은 Normal equation을활용하여 LinearRegression 모듈을구현하는것을목표로한다. LinearRegression 모듈의구현을위해서는 numpy와 Python OOP의기본적인개념이해가필요하다. 혹시해당개념들이조금헷갈린다면다시복습을하고올것을추천한다. 이번랩을통해 scikitlearn이나 tensorflow 같은머신러닝라이브러리들이어떻게구성되는지조금이라도알게되면좋겠다. backend.ai 설치 숙제를제출하기앞서, 레블업의 backend.ai 를여러분의파이썬에설치하셔야합니다. 설치하는과정은매우 쉽습니다. 아래처럼터미널또는 cmd 창에서입력을하시면됩니다. pip install backend.ai-client 숙제 파일 (lab_normal_equation.zip) 다운로드 먼저해야할일은숙제파일을다운로드받는것입니다. 아래링크를다운로드하거나 Chrome 또는익스플 로러와같은웹브라우저주소창에아래주소를입력합니다. 링크 2_lab_bulid_matrix.zip https://s3.ap-northeast-2.amazonaws.com/teamlabgachon/mooc_pic/lab_normal_equation.zip 또는 Mac OS 에서는아래명령을쓰셔도됩니다. wget https://s3.ap-northeast-2.amazonaws.com/teamlab-gachon/mooc_pic/lab_normal

다운로드된 lab_normal_equation.zip 파일을작업폴더로이동한후압축해제후작업하시길바랍니다. 압축해제하면폴더가 linux_mac 과 windows 로나눠져있습니다. 자신의 OS에맞는폴더로이동해서코드를수정해주시기바랍니다. linear_model.py 코드 구조 본 Lab 은 LinearRegression 모듈을만들기위해 linear_model.py 라는 template 파일을제공합니다. 제공하는 template 파일은아래와같은구조를가지며각변수와함수의역할은아래테이블과같습니다. 이름종류개요 fit function Linear regression 모델을적합한다. Matrix X 와 Vector Y 가입력 값으로들어오면 Normal equation 을활용하여, weight 값을찾는다. predict function 적합된 Linear regression 모델을사용하여입력된 Matrix X 의예측 값을반환한다. 이때, 입력된 Matrix X 는별도의전처리가없는상태 로입력되는걸로가정한다. coef property normal equation 의결과생성된계수 (theta, weight) 값들을 numpy array 로저장한다. intercept property normal equation 의결과생성된절편 (theta_0, weight_0) 값을 scalar 로저장한다. import numpy as np class LinearRegression(object): def init (self, fit_intercept=true, copy_x=true): self.fit_intercept = fit_intercept self.copy_x = copy_x self._coef = None self._intercept = None self._new_x = None def fit(self, X, y): pass def predict(self, X): pass @property def coef(self): return self._coef

@property def intercept(self): return self._intercept Mission 이번랩부터는제출에의해서컴퓨터가직접채점을하는 auto-grading 문제와수강자가스스로문제를점검하는 self-grading 문제로나눠서진행된다. 본랩에서는 auto-grading 문제는 linear_model.py 의 LinearRegression class를수정하는것이고, self-grading 문제는스스로 ipynb 파일을만들어서제시된문제들을실제수행하는것이다. fit 함수 만들기 fit 함수는 Linear regression 모델을적합하는함수이다. 본함수는 Matrix X와 Vector Y가입력값으로들어오면 Normal equation을활용하여, weight값을찾는다. 이때, fit_intercept 설정에따라다른방시으로적합이실행이달라진다. 또한 fit을할때는입력되는 X의값은반드시새로운변수 (self._new_x) 에저장한후실행되어야한다. fit_intercept 가 True 일경우 : Matrix X 의 0 번째 Column 에값이 1 인 column vector 를추가한다. 단 fit_intercept 가 False 일경우의 Matrix X 의변수는 2 개이상일것이라고가정한다. fit 을할때는아래의 Normal equation 의공식을활용한다. 적합이종료된후각변수의계수 (coefficient 또는 weight값을의미 ) 는 self._coef와 self._intercept_coef 에저장된다. 이때 self._coef는 numpy array을각변수항의 weight값을저장한 1차원 vector이며, self._intercept_coef는상수항의 weight를저장한 scalar(float) 이다. 입력되는 parameter와리턴은아래정보를참고한다. Parameters ---------- X : numpy array, 2 차원 matrix 형태로 [n_samples,n_features] 구조를가진다 y : numpy array, 1 차원 vector 형태로 [n_targets] 의구조를가진다. Returns ------- self : 현재의인스턴스가리턴된다 predict 함수 만들기

적합된 Linear regression 모델을사용하여입력된 Matrix X 의예측값을반환한다. 이때, 입력된 Matrix X 는별도의전처리가없는상태로입력되는걸로가정한다. fit_intercept 가 True 일경우 : Matrix X 의 0 번째 Column 에값이 1 인 column vector 를추가한다. predict 함수는다음수식을사용한다. 입력되는 parameter 와리턴은아래정보를참고한다. Parameters ---------- X : numpy array, 2 차원 matrix 형태로 [n_samples,n_features] 구조를가진다 Returns ------- y : numpy array, 예측된값을 1 차원 vector 형태로 [n_predicted_targets] 의구조를가진다. 구현 모듈 테스트하기 여러분이만들모듈이잘작동하는지테스트하기위해서이제 ipynb 파일을만들어쥬피터노트북에서실행 해보겠습니다. 모듈 호출하기 먼저우리가사용할모듈을호출한다. 기본적으로 pandas 와 numpy 를호출한다. linear_model 모듈을 호출하기위해서는 import linear_model 명령을사용한다. 단여기서 linear_model.py 파일이자주 바꾸니 imp 모듈을활용하여, 파일이바뀌고다시저장될때 reload 할수있도록하여야한다. import pandas as pd import numpy as np import linear_model import imp imp.reload(linear_model) 데이터 불러하기 첫번째데이터는 one variable 의형태를 test.py 파일이다. 파일을 pandas 로호출하면아래와같은구조 를확인할수있다.

df = pd.read_csv("./test.csv") df.head() x y 0 77 79.775152 1 21 23.177279 2 22 25.609262 3 20 17.857388 4 36 41.849864 numpydata 구성하기 pandas 로부터필요한데이터를구성한다. X = df["x"].values.reshape(-1,1) y = df["y"].values Model 생성하기 LinearRegression 클래스를사용해서모델을생성한다. lr = linear_model.linearregression(fit_intercept=true) lr.fit(x, y) lr.intercept # -0.46181077366099998 lr.coef # array([ 1.01433536]) lr.predict(x)[:10] array([ 77.64201157, 20.83923168, 21.85356704, 19.82489633, 36.05426201, 14.75321955, 62.42698124, 95.90004796, 19.82489633, 4.609866 ]) ModelValidation

구현한 LinearRegression 클래스와 scikit-learn 의 linear regression 클래스로만든결과물을비교한다. from sklearn import linear_model sk_lr = linear_model.linearregression(normalize=false) sk_lr.fit(x, y) sk_lr.intercept_ # -0.46181077366117762 sk_lr.coef_ # array([ 1.01433536]) np.isclose(lr.coef, sk_lr.coef_) #True df_test = pd.read_csv("./train.csv") df_test.head() X_test = df["x"].values.reshape(-1,1) lr.predict(x_test)[:5] # array([ 23.88223775, 50.25495698, 14.75321955, 38.082932 lr.predict(x_test)[:5] # array([ 23.88223775, 50.25495698, 14.75321955, 38.082932 Multiplevariable 동일한과정으로다변수일경우에도작동할수있는지확인한다. df = pd.read_csv("./mlr09.csv") df.head() height_in_feet weight_in_pounds successful_field_goals percent_o 0 6.8 225 0.442 0.672 1 6.3 180 0.435 0.797 2 6.4 190 0.456 0.761 3 6.2 180 0.416 0.651 4 6.9 205 0.449 0.900 y = df["average_points_scored"].values X = df.iloc[:,:-1].values mu_x = np.mean(x, axis=0) std_x = np.std(x, axis=0)

rescaled_x = (X - mu_x) / std_x # RESCALED Fitting 실행하기 lr.fit(rescaled_x, y) lr.coef # array([-1.67779283, 0.28359762, 2.68586629, 1.12816882]) lr.intercept # 11.790740740740738 sk_lr.fit(rescaled_x, y) sk_lr.coef_ # array([-1.67779283, 0.28359762, 2.68586629, 1.12816882]) sk_lr.intercept_ # 11.790740740740736 숙제 template 파일 제출하기 ( 윈도우의 경우 ) 1. windows + r 를누르고 cmd 입력후확인을클릭합니다. 2. 작업을수행한폴더로이동합니다. 3. 밑에명령어를 cmd 창에입력합니다. install.bat submit.bat [YOUR_HASH_KEY] 숙제 template 파일 제출하기 (MacorLinux) 1. 터미널을구동합니다. 2. 작업을수행한디렉토리로로이동합니다. 3. 밑에 bash 창을입력합니다. bash install.sh bash submit.sh [YOUR_HASH_KEY] backend.ai 서비스의업데이트에의해실행전반드시 bash install.sh 또는 install.bat 수 행을바랍니다. NextWork 드디어우리는 Numpy 를가지고 Machine Learning 의첫번째알고리즘을구현해보았다. 비교적쉬운숙

제였지만 Matrix 다루기쉽지않은분들은상당히헷갈린숙제일것이다. 실제로여러분이짠코드는 scikitlearn 의기본 LinearRegression Class 와크게다르지않다. 자부심을가지고한발씩나아가보자!! Humanknowledgebelongstotheworld - from movie 'Password' -