본문 바로가기

분류 전체보기

(249)
[프로그래머스] 야근 지수 문제 야근지수 (https://programmers.co.kr/learn/courses/30/lessons/12927) 풀이 1. 초기 접근 문제 조건 해석 n은 1,000,000 이하인 자연수입니다. -> 뭔가를 해도, O(n log n) 안으로 끝내야 한다. (for 효율성 테스트) 사실 문제자체는 엄청 간단하다. 직관적으로, 누가 봐도 정렬 후 가장 큰 값만 계속 1씩 빼야될 것 같은데, 문제는, 리스트 내 가장 큰 값을 n 번 루프동안 어떻게 계속해서 찾아낼 것인가다. 리스트로는 택도없다. 왜냐하면 반복문 돌 때마다 정렬할 것인가? 시간복잡도 루프 O(n) 내, 정렬에 O(n log n) 이 나온다. 따라서 불가능. 주목 해야할 것에만 주목하자. 리스트 내 '최대값' 만 필요하다는 ..
Pypi 에 내가 만든 패키지 배포하면서 알게된거 기억날 때 빨리 시행착오 겪은거 적어야겠다. 진짜 지나고보면 아무것도 아닌데, 막상 뭐가 안되는 상황 때 되면 스트레스 엄청 받으니까. 일단 내 상황은 파이썬으로 패키지를 만들고, 이를 pip 형식으로 받을 수 있게, Pypi 에 올리려고 하는 중이었다. 기본적으로 파이썬 배포는 아래 블로그를 참조했다. PyPI로 패키지 배포하기:내가 만든 모듈도 pip로 다운받을 수 있다! pypi에 내 프로젝트를 올리는 법 blessingdev.wordpress.com 배포 관련 여러 포스팅이 있지만, 위 글이 제일 깔끔하고 쉽게 알려주었다. 첨언하면, 위 글에서 '2. 프로젝트를 만듭니다' 파트에 적혀있는 패키지 구조를 잘 보자. 이 구조 유지안하면, 하여튼 뭔가 문제가 생긴다. 저 구조를 되도록 유지해주자. 이제..
df.iterrows() 대신, df.itertuples()? Pandas Iteration 성능비교 가장 먼저, 아래 글을 참고했다. Stop using df.iterrows() This morning I came across an article with tips for using Pandas better. One of the claims was that df.itertuples() should be used instead… medium.com Pandas dataframe 에서 이터레이션 도는거 꽤 중요하다. 경험상, 보통 df.iterrows() 돌리는데, 이거 엄청느리다. 아무튼 글의 핵심은 이거다. dataframe 에서 행 단위 반복문 쓸 때, df.iterrows() 쓰지말고 df.itertuples() 쓰세요. 차이가 무지막지하게 큽니다. 이터레이션 도는데 뭐가 이렇게 차이나지? 싶었는데,..
Categorical Value Encoding 과 Mean Encoding 이번 글에서는, 가장 인기있는 Categorical Value Encoding 을 하나씩 정리해보려고 한다. 다음의 내용을 다룬다. One-hot Encoding Label Encoding Mean Encoding 특히 마지막에 3.Mean Encoding 은 최근 Kaggler 들에 의해 많이 쓰이고 있다. 무엇이 Mean Encoding 이고, 어떻게 쓰는지, 장단점은 무엇인지 살펴본다. 한편, Mean Encoding 은 특히 Gradient Boosting Tree 계열에 많이 쓰이고 있다. 앞으로 모델 학습 성능을 말할 때, 별다른 말이 없으면 Tree 기반 모델을 두고 말하는 것이라 보면 되겠다. 글로만 설명하지 않고, 직접 눈으로 Encoding 을 확인하기 위해, Titanic Datase..
실패와 실수 구분하기 출처: 사업 실패 후 스푼 라디오 글로벌 1,000만 다운로드까지 메뉴를 열려면 alt + / 키 조합을 누르세요 www.facebook.com 실패와 실수의 차이. 프로와 아마의 차이.
이제는 matplotlib 말고, Plotly 를 쓰자. 세련된 데이터 시각화 패키지, Plotly. matplotlib, seaborn 만 사용하다가, 최근에 훨씬 세련된 데이터 시각화 툴을 찾았습니다. plotly 인데, 웹 시각화 라이브러리인 d3.js 를 이용하여 보다 interactive 하게 그래프를 만들어줍니다. 그만큼, 굉장히 잘되어있고, 앞으로도 많이 발전할 라이브러리라는 생각이 듭니다. 예를 들어, 다음과 같은 그래프를 만들 수 있습니다. data = pd.Series(range(10)) data.iplot(kind='bar', title="제목", xTitle="x축", yTitle="y축") 코드만 봐도, matplotlib 보다 훨씬 간결함이 보입니다. 시각화 된 그래프 역시 훨씬 세련된게 느껴집니다. 또한, 우측 하단 Export to..
Gradient Boost 이 글은 StatQuest with Josh Starmer 의 StatQuest: Gradient Boost Part1 영상을 보고 정리한 글이다. 모든 사진과 설명에 대한 출처는 여기에 있다. 이번 글에서는, Boosting 중, 비교적 최근에 많이 쓰이는 Gradient Boost 에 대해 정리해보려고 한다. Kaggle 에서 많이보이는 XGboost 와 Light GBM 이 Gradient Boost 를 바탕으로 나온 모델이다. 사실상 현재 제일 많이쓰이는 Tree 계열의 모델을 이해하는데 기초적인 지식을 쌓는다고 볼 수 있다. 1. AdaBoost 다시 상기해보기. Gradient Boosting 은 이전에 포스팅한 AdaBoost 와 비슷한 부분이 있기 때문에, 먼저 AdaBoost 를 빠르게 ..
AdaBoost 이 글은 StatQuest with Josh Starmer 의 StatQuest: AdaBoost 영상을 보고 정리한 글이다. 모든 사진과 설명에 대한 출처는 여기에 있다. 이번에는 Boosting 기법에서 대표적이고 비교적 쉬운 개념인 AdaBoost 에 대해 정리해보려고 한다. 항상 Boosting 기법 중 가장 이해하기 쉽기도 하고, 기본 틀이 되는 느낌이라, 가장 먼저 등장하는 것 같다. 하지만 'Boosting 모델 중' 비교적 쉽다는 거지, 이전의 Bagging 모델인 Random Forest 랑 비교하면 조금 복잡하다. 따라서, 글도 매우 길어질 것 같으나... 일단 시작해보겠다. 1. 개념 1.1. Stump 잠깐, Random Forest 를 기억해보면, Random For..