본문 바로가기

분류 전체보기42

Apache Spark Review ② 주요 개념 : RDD All about Apache Spark Spark에 대한 소개글은 아래 이전 포스팅을 참고하시면 됩니다. 이번 포스팅에서는 실제 활용에 있어서 꼭 필요한 내용, 유용한 내용에 대해 작성하겠습니다. 2020/10/04 - Apache Spark Review ① 소개 2020/10/04 - Apache Spark Review ② 주요 개념 : RDD 2020/10/04 - Apache Spark Review ③ 주요 개념 : Pair RDD 2020/10/04 - Apache Spark Review ④ 주요 개념 : DataFrame RDD(Resilient Distributed Datasets) Spark는 RDD라는 Immutable ,자바 가상 머신(JVM) 객체들의 집합으로 이루워져있습니다. 파이썬.. 2020. 10. 4.
Apache Spark Review ① 소개 All about Apache Spark 2020/10/04 - Apache Spark Review ① 소개 2020/10/04 - Apache Spark Review ② 주요 개념 : RDD 2020/10/04 - Apache Spark Review ③ 주요 개념 : Pair RDD 2020/10/04 - Apache Spark Review ④ 주요 개념 : DataFrame 최근 단시간에 대용량 데이터를 처리해야하는 업무가 많아지고 있어 이 분야에서 핫하게 사용 중인 Spark에 대해 정리합니다. Spark을 사용하지 않았을 땐 대용량 데이터를 Chunk 단위로 불러와서 일부를 처리하여 다시 저장한 후에 다시 Merge 하는 불합리하고 비효율적인 방법을 사용했는데 Spark으로 매우 획기적으로 시간을.. 2020. 10. 4.
0-1 Knapsack Problem 0-1 Knapsack Problem 다이나믹 프로그래밍의 대표적인 문제라 할 수 있는 문제입니다. 무게 제한이 있는 배낭에 가치가 최대가 되도록 짐을 넣는 문제인데, 넣을 수 있는 짐을 쪼갤 수 있느냐 없느냐에 따라 ① 분할가능 배낭문제(Fractional Knapsack) ② 0-1 배낭문제(0-1 Knapsack problem) 으로 나눠집니다. 분할가능 배낭문제는 Greedy 알고리즘을 활용하여 최적으로 풀이가 가능하지만 분할이 불가능한 0-1 배낭문제는 모든 경우의 수를 봐야합니다. 0-1 배낭문제를 최적화 하기 위해 다이나믹 프로그래밍, Tabulation이 활용됩니다. 0-1 배낭문제에 (가치, 무게) 형태의 Tuple 이 저장된 리스트가 Input으로 들어온다고 하면, 아래와 같은 테이블을.. 2020. 10. 4.
Fibonacci Number Fibonacci Number Fibonacci Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 다이나믹 프로그래밍(Dynamic Programming, 이하 DP)을 이해하는데 기본이 되는 문제입니다. DP 는 중복된 하위 문제들(Optimal Substructure)의 결과를 저장해뒀다가 풀이에 활용하는 방식으로 문제를 하위 문제들로 분할하여 풀이한다는 점에서 분할정복, 그리디 알고리즘과 공통점이 있지만, 탐욕 선택 방식의 유무에 따라 그리디 .. 2020. 10. 4.
Different Ways to Add Parentheses [분할 정복] Different Ways to Add Parentheses Different Ways to Add Parentheses - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 숫자와 연산자를 문자열로 입력받아 가능한 모든 조합의 결과를 출력하는 문제로 괄호를 어디에 추가하느냐에 따라 다양한 조합과 결과가 가능합니다. 연산자를 만났을 때 Left, Right를 구분하는 분할을 수행하고 연산의 결과를 결합하여최종 결과를 내는 방식으로 풀이하면 됩니다. S.. 2020. 10. 4.
플랜 자꾸 플랜이 실패하는 이유는 실패하는 플랜을 반복하고 있기 때문이다 실패하는 플랜을 의지로 극복하려 들지 말자 2020. 10. 2.
장거리 달리기 장거리 달리기를 잘하기 위해선 호흡부터 주법까지 모든 영역에서 관리가 필요하다. 지금이 그러하다. 2020. 9. 22.
옹달샘 올해 평가 의견, "항상 깨어있기를 바라며 옹달샘이 되시기 바랍니다." 깨어있기만 하면 옹달샘이 될 수 있다. 깨어있기가 어렵다. 항상 안주하고자 하는 욕구가 샘솟으니까. 깨어있어야한다. 2020. 9. 19.
분명 기회는 온다. 끝이라고 생각할 필요 없다. 예상치 못할 때 기회는 분명 온다. 그 기회를 잘 살리면 된다. 포기하지만 않으면 된다. 2020. 9. 16.
지금보다 10배쯤은 더 잘해야한다. 작은 성취에 만족하지 말고 현재에 안주하지 말고 한계에 계속 부딪히면서 극복할 방법을 찾아야한다. 지금보다 10배쯤은 더 잘 해야 먹고 살 수 있다. 2020. 9. 15.
[Porto Seguro’s Safe Driver Prediction] Improve 최종적으로 240등(Private 0.29025, Public 0.28669) 모델을 구축했다. 이전 포스팅에서 공개한 Baseline을 기반으로 업그레이드를 시켰으며, 주된 변경점은 1. category Feature encoding 방법 변경 2.Undersampling 이다. [ Category Feature Encoding ] 이전의 머신러닝 대회에서는 카테고리 변수 내에 Label이 너무 많아 모두 dummy화 시킬 경우 Cardinality가 너무 높아져서 문제가 되는 경우가 많았다. 그래서인지 당연하게 Category Feature를 Get_dummy가 아닌 Label Encoding을 했는데 이게 문제가 되었다. 문제를 발견한 건 어떤 방법을 써도 성능이 개선되지 않음을 깨달았을 때부터이다.. 2020. 2. 23.
[Porto Seguro’s Safe Driver Prediction] Baseline 구축 Porto Seguro’s Safe Driver Prediction 이 대회는 XGBOOST를 기반으로 Baseline을 구축했다. LGBM 모델과 성능을 비교하면서 접근했는데 어떤 상황이든 LGBM보다 XGBOOST가 더 높은 성능을 보였다. 1등한 사람의 리뷰를 보면 Denoising Autoencoder로 Feature를 뽑고 그것을 가지고 Neural Net을 만들어서 학습시켰다. 시간이 남는다면 Autoencoder를 꼭 적용해봐야하겠다. 지금은 XGBOOST를 기반으로 여러가지 시도해본 결과를 작성한다. Discussion을 읽다 보면 공통적으로 눈에 들어오는 이야기가 있다. 그것은 각 폴드 마다 Gini Index 산포가 발생한다는 것인데 Public Score에서도 충분히 이런 현상이 있을.. 2020. 2. 11.