All

    [스파크 완벽 가이드] Part 2. 구조적 API: DataFrame, SQL, Dataset

    [스파크 완벽 가이드] Part 2. 구조적 API: DataFrame, SQL, Dataset

    CHAPTER 4. 구조적 API 개요 구조적 API는 비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 유형의 데이터를 처리할 수 있다. 구조적 API에는 세 가지 분산 컬렉션 API가 있다; Dataset, DataFrame, SQL 테이블과 뷰 배치와 스트리밍 처리에서 구조적 API를 사용할 수 있고, 배치 작업과 스트리밍 작업을 서로서로 쉽게 변환할 수 있다. 스키마는 DataFrame의 컬럼명과 데이터 타입을 정의한다. 이는 데이터소스에서 얻거나 직접 정의할 수 있다. 본질적으로 DataFrame은 '비타입형'으로 런타임에 스키마와 비교하며, Dataset은 '타입형'으로 컴파일 타임에 스키마와 비교한다. 스파크의 DataFrame은 Row 타입으로..

    [스파크 완벽 가이드] Part 1. 빅데이터와 스파크 간단히 살펴보기

    [스파크 완벽 가이드] Part 1. 빅데이터와 스파크 간단히 살펴보기

    CHAPTER 1. 아파치 스파크란? 스파크는 통합 컴퓨팅 엔진이며, 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합 스파크는 네 가지 언어(파이썬, 자바, 스칼라, R)을 지원하며 SQL뿐만 아니라 스트리밍, 머신러닝에 이르기까지 넓은 범위의 라이브러리를 제공 스파크는 저장소 시스템의 데이터를 연산하는 역할만 수행할 뿐 영구 저장소 역할은 수행하지 않음 스파크의 등장 배경 하드웨어의 성능 향상은 2005년경에 멈췄음 → 성능 향상을 위해 병렬 처리가 필요함 결과적으로 데이터 수집 비용은 극히 저렴해졌지만, 데이터는 클러스터에서 처리해야 할 만큼 거대해짐 기존 데이터 처리 애플리케이션의 전통적인 프로그래밍 모델이 한계점이 도래 → 스파크 탄생 스파크 실행하기 jupyter에서 제공하는 공식 d..

    YSCEC 크롤러2

    YSCEC 크롤러2

    YSCEC-CRAWLER2 /와이섹 크롤러/ 와이섹 크롤/ 크롤링/ 와이섹 연세대학교 지식창조 커뮤니티라는 거창한 이름의 사이트가 있습니다. 이 사이트는 연세대학교 재학생들의 강의 공지와 강의 자료들이 올라오는 사이트인데, 매일매일 로그인하고 수강하는 과목의 자료들이 업로드 되었는지 확인하는 작업이 여간 귀찮은게 아닙니다. 그래서 이번 개강을 맞아 나 대신 매일매일 와이섹 내용을 체크해주는 크롤러를 다시금 개발하게 되었습니다. 이전에 YSCEC-CRAWLER 를 올렸었는데, 이에 관한 내용은 다음 링크에서 확인해보시기 바랍니다. 블로그 : http://dytis.tistory.com/6깃허브 : https://github.com/pfldy2850/YSCEC-CRAWLER 개발환경 NodeJSES7 문법으..

    [ML lec 08] Deep Neural Nets for Everyone

    우리 인류의 궁극적인 꿈이라고 하는 것이 바로 우리를 대신해서 골치아픈 문제를 생각해주는 기계를 만들자라고 할 수 있습니다. 따라서 우리의 뇌와 같은 모습을 만들고자했고, 뇌에 대해서 공부를 하게되었습니다. 뇌를 공부하였더니, 굉장히 복잡하게 연결되있어서 놀랐고 또 연결된 부분부분들을 자세하게 봤더니 뉴런이라고 불리는 유닛이 너무나 단순하게 동작이 되었습니다. 봤더니 어떤 인풋이 있고, 길이에 따라 신호의 양이 달라졌습니다. 따라서 X*W으로 둘 수 있고. 이 것들이 다 합쳐지고, 어떤 bias가 더해져서 그것이 그 다음으로 전달되더라... 이 다 모여있는 값이 어떤 값 이상이 되면 활성화되고, 그렇지 않으면 활성화가 되지 않습니다. 이런 것에 영감을 받아서, 수학적으로 만들어낸 모델이 뉴럴 넽입니다. ..

    [ML lec 07] Application & Tips

    이번 포스트에서는 머신러닝 알고리즘을 실제로 사용하는데 있어서, 몇가지 팁을 알려드리겠습니다. 크게 러닝 레이트를 조정하는 방법과 전처리 방법 그리고 오버피팅을 방지하는 방법에 대해서 이야기하겠습니다. 우리가 cost function을 정의하고 그 cost function을 최소화하는 것에 Gradient descent 알고리즘을 사용해왔습니다. Gradient descent 알고리즘에서 우리는 Learning rate를 지정해주게 되는데요, 이 때 Learning rate를 잘 정하는 것이 중요합니다. Learning rate란 그래프를 내려가는 것의 step과 같습니다. 만약 step이 너무 크다면, 그래프 바깥으로 나가버리거나, 계속 주위를 맴돌게 되는 상황이 만들어질 수도 있습니다. 이것을 ove..

    [ML lec 06] Softmax Regression

    [ML lec 06] Softmax Regression

    이번에는 여러개의 Class가 있을 때, 그것을 예측하는 Multinomial Classification 중에서도 가장 많이 사용되는 Softmax Classification을 알아보겠습니다. 지난번 포스트에서 Logistic regression classification이라는 것에 대해서 알아봤습니다. 자세한 내용은 지난번 포스트를 참고해주세요. 아무튼 이 Logistic regression classification은 Binary classification에 사용됩니다. 기본적으로 서로 다른 데이터들을 구분하는 것인데, 아래와 같이 생각할 수 있습니다. 이러한 아이디어를 Multinomial classification에 적용을 시킬수 있습니다. 아래와 같은 데이터가 있다고 가정합니다. 여기에서 Bin..

    [ML lec 05] Logistic Classification

    [ML lec 05] Logistic Classification

    이번 포스트는 Logistic Classification에 대해서 다루도록 하겠습니다. 본론에 들어가기 앞서, 이전의 Linear Regression에 대해서 Remind해보겠습니다. Linear regression에서는 가설을 H(x) = WX + b 로 세웠고, 여기에 대해서 Cost function과 이 Cost를 minimize하기 위해 Gradient decent라는 optimizer를 사용하였습니다. 이 것 세가지만 있으면 Linear Regression을 잘 이해할 수 있고, 구현할 수 있습니다. Classification도 이것과 굉장히 유사합니다. Classification이 다른 점은 이전의 Regression이 어떤 numeric한 변수를 예측하는 것이었다면, Classificatio..

    [ML lec 04] multi-variable linear regression (*new)

    [ML lec 04] multi-variable linear regression (*new)

    이번 포스트에서는 지난번 Linear regression에 이어서, 하나의 변수가 아니라 여러개의 multi-varaible을 사용하는 방법에 대해서 포스트하겠습니다. 우선 포스트를 시작하기 전에 지난번에 올렸던 내용을 복습해보겠습니다. Linear regression을 설계하기 위해선 세가지가 필요합니다. 우선 Hypothesis가 있는데요, Linear regression에서는 H(x) = Wx + b로 가설을 세우게됩니다. 다음으로는 이 가설이 얼마나 맞는지에 대해서 판단하는 Cost function이 필요합니다. 마지막으로는 이 Cost를 최적화하는 Gradient Descent Algorithm이 필요합니다. 여기까지에 대해서 완벽히 이해하셨으면, 이번 포스트 내용에 대한 기초적인 이해는 충분하..

    [ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명

    [ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명

    이번 포스트에서는 지난 포스트에서 말했던, cost function을 어떻게 최소화해서 최종적으로 Linear Regression 학습을 마치는 지에 대해서 다루겠습니다. 지난 포스트에서처럼 우리의 Hypothesis는 다음과 같습니다. 그럼 x = 1, 2, 3, y = 1, 2, 3인 데이터가 있다고 생각하고, cost를 구해봅시다. 우선 H(x) = Wx + b 에서 b는 없다고 생각하고, 계산을 해봅니다. 계산을 해보면 다음과 같이 나오게 됩니다. 각각은 W = 1, cost(W) = 0W = 0, cost(W) = 4.67W = 2, cost(W) = 4.67 이 되어집니다. 이 때 그래프는 다음과 같이 그려지게 됩니다. 이 때, 우리가 구해야 하는 것은 Cost의 최솟값입니다. 따라서 이 그래..

    [ML lec 02] Linear Regression

    [ML lec 02] Linear Regression

    이론 우리가 Supervised Learning을 할 때에, 학생이 몇시간 정도 공부를 했더니 얼마정도의 성적을 받았다는 데이터를 학습을 하게됩니다. 여기서 우리가 예측을 하고자하는 최종적인 목표가 0~100의 범위를 가지는 값입니다. 이런 종류의 학습을 Supervised Learning 중에서도 regression이라고 합니다. 설명을 간단히 하기 위해서, 데이터셋을 다음과 같이 간단하게 두어 보겠습니다. 이 데이터를 그래프로 그려보면 오른쪽 그래프와 같이 표현됩니다. 그래서 우리가 이 regression 모델을 학습한다는 것은 어떠한 하나의 가설을 세울 필요가 있습니다. "어떤 Linear한 모델이 우리 데이터에 맞을 것이다" 라는 가설 하에 생성된 모델이 바로 Linear regression입니다..