일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- 딥러닝
- recursion
- 선형대수
- RNN
- Sort
- 그래프이론
- NumPy
- 텐서플로
- collections
- codingthematrix
- 코딩더매트릭스
- 알고리즘
- yarn
- C언어
- effective python
- scrapy
- 하둡2
- 하이브
- hadoop2
- LSTM
- hive
- python
- HelloWorld
- GRU
- graph
- 주식분석
- tensorflow
- C
- Java
- Today
- Total
목록Study (184)
EXCELSIOR
하이브는 효율적인 쿼리문 수행을 위해 버킷이라는 데이터 모델을 제공한다. 버킷은 버킷 칼럼 해시를 기준으로 데이터를 지정된 개수의 파일로 분리해서 저장한다. 버킷은 테이블을 생성할 때 다음과 같은 형태로 선언한다. CLUSTERED BY (칼럼) INTO 버킷 개수 BUCKETS; 버킷을 사용하면 쿼리의 성능을 향상시킬 수 있다. 예를 들어, 조인키로 버킷을 생성해두면 생성된 버킷 중 필요한 버킷만 조회하면 되기 때문에 디렉터리 전체를 풀스캔하는 것보다 훨씬 빠르게 작업을 처리할 수 있다. 또한 버킷을 이용하면 데이터 샘플링을 이용한 다양한 쿼리를 수행할 수 있다. 그럼 이제 실제 버킷을 생성해보도록 하자. 다음의 테이블 생성은 UniqueCarrier 칼럼을 대상으로 20개의 버킷을 생성한다. hive..
맵리듀스로 조인을 구현하려면 몇십 줄의 클래스를 작성해야하지만, 하이브를 이용하면 쿼리문을 통해 간단하게 조인을 할 수 있다.단, 다음의 제약사항이 있다.하이브는 EQ조인만 지원한다. EQ조인은 두 테이블 대상으로 동일성을 비교한 후, 그 결과를 기준으로 조인하는 것이다. 이 조인에서는 조인 서술자로 등호(=)만 사용할 수 있다.하이브는 FROM 절에 테이블 하나만 지정할 수 있고, ON 키워드를 사용해 조인을 처리해야 한다.이번 포스팅에서는 교재에 나와있는대로 하이브의 조인 기능을 사용해 항공 운항 지연 데이터와 항공사 코드 테이블을 조인해 볼 것이다. 먼저, 항공사 코드 데이터를 저장하기 위한 테이블을 생성한다. (항공사 코드 데이터는 http://stat-computing.org/dataexpo/2..
규칙기반학습(Rule-Based Learning) 주어진 입력에 대해서 결과값을 도출하는 방법으로 if-then 방식이라고도 한다. 확고한 규칙(rule)에 따라 학습 및 예측을 하는 방법이다. 좀 더 자세히 이해하기 위해 대표적인 예제인 기상데이터를 가지고 알아보도록 하자. 날씨에 따라 나가서 놀 것인지 아닌지 결정하는 예제이다. 위의 예제는 많은 가설(h)들이 존재한다. 예를 들어, 일 때 EnjoySpt는 yes라는 가설을 세울 수 있다. 여기서 ‘?’는 don’t care를 의미한다. Find-S Algorithm 위의 예제에서 EnjoySpt가 yes일 조건을 최대한 만족할 수 있는 가설을 찾기 위해 Find-S 알고리즘을 사용하여 찾을 수 있다. Initialize h to the most s..
1. 문제2016년 1월 1일은 금요일입니다. 2016년 A월 B일은 무슨 요일일까요?두 수 A,B를 입력받아 A월 B일이 무슨 요일인지 출력하는 getDayName 함수를 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 를 출력해주면 됩니다. 예를 들어 A=5, B=24가 입력된다면 5월 24일은 화요일이므로 TUE를 반환하면 됩니다. 2. 풀이1) 내가 작성한 코드datetime을 import하여 weekday() 함수를 사용하여 풀었다. import datetime def getDayName(a,b): answer = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'] num = datetime.date(2..
1. 왜 Naive Bayes Classifier인가?먼저 베이즈 분류기(bayes Classifier)는 베이즈 이론(bayes theorem)에 기반한다. 분류 알고리즘의 성능 비교를 연구하는 학자들은 의사결정나무나 신경망과 비슷한 성능을 가지느 단순 베이즈 분류기(Naive Bayes Classifier)간단한 베이즈 분류기를 발견하게 된다. 단순 베이즈 분류기는 주어진 클래스의 한 속성 값이 다른 속성의 값과 상호독립임을 가정한다. 이 가정을 클래스 조건부 독립(class conditional independence)라고 한다. 이 가정은 계산과정을 간단하게 하므로 그런의미에서 단순(naive) 하다고 한다.(클래스 조건부 독립에 대해서는 밑에서 설명을 참고) 2. 베이즈 정리(Bayes theo..
1. 데이터 업로드 하이브는 로컬 파일 시스템에 있는 데이터와 HDFS에 저장도니 데이터를 모두 업로드 할 수 있다. 여기서는 항공운항통계 데이터 파일을 업로드 하겠다. (항공운항데이터는 http://stat-computing.org/dataexpo/2009/에서 다운로드 받을 수 있다.) 하이브 CLI에서 다음과 같이 LOAD DATA를 입력한다. OVERWRITE INTO 절은 중복된 데이터가 있어도 무시하고 입력한다는 의미이다. PARTITION 절은 파티션 키인 delayYear 값을 2008로 설정해 데이터를 입력하는 설정이다. 앞에 포스팅한 글에서 테이블을 생성할 때 파티션을 설정했는데, 데이터를 업로드할 때 PARTITION절을 설정하지 않으면 LOAD DATA 실행 시 오류가 발생한다. h..
1. 개념 Merge sort는 분할정복법을 사용하여 정렬하는 알고리즘이다.1) 분할: 해결하고자 하는 문제를 작은 크기의 동일한 문제들로 분할2) 정복: 각각의 작은 문제를 순환적으로 해결3) 합병: 작은 문제의 해를 합하여(merge) 원래 문제에 대한 해를 구함 2. Pseudocodemerge(A[ ], p, r){ ▷ A[p...r]을 정렬한다.if(p < r) then {q ← (p+q)/2; ---------------① ▷ p, q의 중간 지점 계산mergeSort(A, p, q); --------② ▷ 전반부 정렬mergeSort(A, q+1, r); --------③ ▷ 후반부 정렬merge(A, p, q, r); -----------④ ▷ 합병} } merge(A[ ], p, q, r..
1. Selection Sort1) 개념각 루프마다 - 최대의 원소르 찾는다. - 최대의 원소와 맨 오른쪽 원소를 교환한다. - 맨 오른쪽 원소를 제외한다. 하나의 원소만 남을 때 까지 위의 루프를 반복한다.[출처: 권오흠, 영리한 프로그래밍을 위한 알고리즘 강좌] 2) PseudocodeselectionSort(A[ ], n){ ▷배열 A[1...n]을 정렬한다.for last ← n downto 2 { -------------------------------①A[1...last] 중 가장 큰 수 A[k]를 찾는다 -----------------------②A[k] ↔ A[last] ▷ A[k]와 A[last]의 값을 교환 -------------------------③}} 3) 수행시간①의 for 루..