분류 전체보기107 [Python] linux 환경에서 DB 계정 정보를 숨기고, mssql을 연동해보자. 사내 코드를 공유할 수 있는 jupyter hub를 사용하고 있다. 실무자들은 직접 보지만, 관련자들은 PDF나 HTML로 보고있는데 이렇게 파일을 왔다갔다 하다가, 코드에 들어가 있는 DB 계정정보가 노출될 수 있다. 그렇기 때문에 DB 계정 정보를 숨겨두는 것이 반드시 필요하다. [ DB 계정 정보를 저장하고 숨기기 ] 1.리눅스 환경에서 Terminal을 열어주기 우리 jupyter hub는 linux ubuntu 환경이기 때문에, 여기서 Terminal을 열어준다. 2. DB 계정 정보를 담은 .env 생성 하고 .conf에 숨겨주자 *env와 .env의 차이점 더보기 env는 노출되는 것이고 .env는 숨김 처리 1) env로 생성했을 시 ls 쳤을 시 바로 노출 2) .env로 생성했을 때 숨.. 파이썬 Python 2023. 12. 4. [Bigquery] GCS를 활용한 대용량 쿼리 데이터 다운로드 빅쿼리 내에 결과 저장을 통한 csv (로컬 파일) 다운로드는 최대 10mb 까지 가능하다. 그런데, 다른 팀에서 약 1GB가 넘는 raw 데이터를 보내달라고한다... 퇴근해야하는데.. 어떡하지? Google Drive로 보낸다면 1GB까지 저장이 가능하지만, 이걸로 커버쳐지지 않는다. 이럴 때, GCS 버킷을 활용해서 데이터를 저장하면 된다. (우리 짱 멋진 팀장님이 알려주셨다.) 0.데이터를 내보내는 권한 필요 | BigQuery 테이블에서 데이터를 내보내는 권한 BigQuery 테이블에서 데이터를 내보내려면 bigquery.tables.export IAM 권한이 필요합니다. 사전 정의된 다음 각 IAM 역할에는 bigquery.tables.export 권한이 포함되어 있습니다. roles/bigqu.. 데이터베이스/데이터베이스 2023. 11. 28. [통계] 다중공선성(Multicollinearity)의 개념부터 검증까지 | 다중공선성 Multicollinearity 통계학의 회귀분석에서 독립변수들 간에 강한 상관관계가 나타나는 문제. 왜 문제일까? 회귀분석은 기본적으로 피처 간의 '독립성'을 전제하기 때문에, 각 피처간의 상관관계가 높으면 분석에 부정적인 영향을 미친다. 독립변수가 서로 의존하게 되면 보통 over-fitting문제가 발생한다. 어떻게 찾고 해결할까? 상관관계가 높은 변수를 찾아거나, VIF 검정을 통해 다중공선성을 유발하는 변수를 찾고, 1.제거하거나, 파생변수로 만들거나 2.PCA 기법 사용하여 서로 독립인 새로운 변수들을 생성 🔽 [ML] 주성분 분석 PCA와 차원의 저주 모바일 게임 오픈을 앞두고, 유저 클러스터링을 실시하기 위해 코드를 작성해두고 있다. 그런데, log에서 찾을 수 있는 데이터가.. 통계/통계학 Statics 2023. 11. 22. [ML] 주성분 분석 PCA와 차원의 저주 모바일 게임 오픈을 앞두고, 유저 클러스터링을 실시하기 위해 코드를 작성해두고 있다. 그런데, log에서 찾을 수 있는 데이터가 너~무 많다. 난 이 중에서 어떤 변수를 사용해서 클러스터링을 실시해야할까? 우선 상관관계 분석을 통해 다중공선성을 유발할 것 같은 변수나 (승률과 승리 수) 우리 게임의 핵심 유저를 판가름 하는데 필요 없다고 생각하는 정보 (닉네임 변경 횟수) 등은 과감하게 추려준다. 근데 이 다음은 이제 뭘해야할지 모르겠다. 10개 정도가 추려졌는데 그냥 넣고 모델링을 돌려볼려자니 어디선가 들어본 '차원의 저주'가 내 머릿속을 스쳐간다. (이놈 때문에 내 첫 데이터 분석가 면접에서 어버버 했던 적이 있다.) 차원의 저주 (Curse of dimensionality) 샘플은 많을 수록 좋다... 통계/머신러닝 MachineLearning 2023. 11. 20. [Bigquery] Merge into 사용 가이드 1.Merge란? Bigquery에는 Upsert가 없고, Merge라는 것이 존재한다.이름하고 사용법만 조금 다르지, 개념은 완전 똑같다. *Upsert : Update + Insert의 개념으로 , 대상 테이블에 기존 데이터가 있는 경우 해당 데이터를 업데이트 하고, 없는 경우에는 새 데이터를 삽입 *Merge : 조건에 따라 대상 테이블의 레코드를 업데이트 하거나 삽입 2.Bigquery Merge 기본 구문 및 실제 예시 MERGE INTO target_table AS target -- Merge를 수행할 대상 테이블 USING source_table AS source -- Merge에 사용할 소스 데이터 ON target.key_column = source.key_column -- 대상 테이블과.. 데이터베이스/SQL 2023. 9. 1. [Bigquery] 파티션 테이블 (Partition Table) 1. 파티션 테이블이란? 테이블의 데이터를 일정한 기준에 따라 분할하여 저장하는 방법 아래 사진 처럼 기존 테이블을 일정한 기준으로 나누어 분할하여 저장하는 것이다. (아래의 경우 월 단위로 Partition 한 경우) 2. 파티션을 사용하는 이유** 제일 쉽게 이해할 수 있도록 동일한 쿼리를 실제 파티션 여부에 따라서 성능 비교했던 사진을 들고왔다. 1) 파티션 나누기 전 읽은 레코드가 19만개로, 전체 데이터를 긁어온 것을 확인할 수 있다. 2) 파티션을 나눈 후 읽은 레코드 자체가 1/3로 줄어든 것을 확인할 수 있다. 즉, 파티션이 없으면 Where 절을 걸어도 풀스캐닝이 들어간 후 SELECT해오지만, Partition 테이블에서는 Partition이 된 부분에서만 스캐닝이 들어가기 때문에 성능.. 데이터베이스/데이터베이스 2023. 8. 31. [Bigquery] 퇴근시간을 땡겨주는 빅쿼리 단축키 모음 마우스에 손이 갈수록 업무 시간이 길어진다! 키보드로 할 수 있는건 키보드로 해보도록 하자. 개꿀팁 빅쿼리 단축키 모음 ⏰ (나는 Bigquery, DataGrip, Dbeaver 사용해봤는데 단축키는 대체로 비슷비슷하다. 알아두면 정말정말 유용하다) * 실습용 쿼리 WITH word_counts AS ( SELECT word ,SUM(word_count) AS total_word_count FROM `bigquery-public-data.samples.shakespeare` WHERE LENGTH(word) > 3 -- 단어 길이가 3 이상인 것만 고려 GROUP BY word ) SELECT word ,total_word_count FROM word_counts ORDER BY total_word_c.. 데이터베이스/데이터베이스 2023. 8. 24. [Bigquery] Bigquery SQL로 ML 모델링 A to Z Bigquery로 간단한 ML 모델링이 되는지 처음 알았다. 쿼리를 통해 모델링, 평가, 적용까지 모두 가능한 작업인데 Docs에 나온대로 샘플로 진행을 해보고, 회사 데이터를 가지고 가입 후 3일간 유저 행동을 보고 이 유저가 이후 이탈할 유저인지 아닌지 예측하는 Random Forest 이진 분류 모델까지 만들어보았다. 만들면서 느꼈던 점은, [장점] - python에 비해 훨씬 간단하다. - SQL 기반이라 프로그래밍 언어를 모르는 사람도 쉽게 접근 가능 - 데이터를 이동할 필요가 없다. - Bigquery기 때문에 아무래도 확장성이 유연하고, 대용량 데이터에서 효율적이다. (Python으로도 할 수는 있겠지만, 매일 들어오는 데이터에 대해 예약된 쿼리로 ML을 돌려 Precdiction 테이블 인.. 데이터베이스/SQL 2023. 8. 23. [회고록] 데이터 분석가 신입 1년 회고 2023-07-01 즈음 입사한지 벌써 1년이 되었고 퇴사를 말씀드렸다.1년 동안 많은 걸 배우고 재밌는 일도 많았는데, 나중에 돌아보면 재밌을 것 같아 기록으로 남겨볼려고 한다. 스타트업 데이터 분석가 1달 후기처음 데이터 분석가로 입사하고나서 개인 블로그에 작성했던 글의 제목이다. 대학교를 다닐 때 부터 로망이 사원증을 목에 걸고 테헤란로를 거닐며 커피를 드는 거였는데 우연치 않게도 테헤란로에 취직을 하게 돼서 로망을 이룰 수 있었다. 입사하고 가장 좋았던 점은 데이터팀 리드님이셨다. 매번 무표정이셨지만 하나라도 더 가르쳐 줄려고 하시고 풍부하신 경험을 바탕으로 다른 회사에서는 어떤식으로 작업하는지도 매 번 곁들어 설명해주셨다. 특히 처음에 일을 가르쳐주실 때, "자유롭게 해봐라" 라고 하신 뒤 .. 탱크/회고 2023. 7. 4. [A/B 테스트] A/B테스트 설계부터 결과 분석까지 이전 포스팅에서는, A/B테스트에 대한 검증 과정만 다뤘었는데 이번 포스팅에서는 A/B테스트의 구체적인 목적부터 설계까지의 전 프로세스를 담아볼려고 한다. 1. A/B 테스트는 왜 하는 것일까? 실제 사례를 바탕으로 알아보자 래는 넷플릭스의 A/B 테스트 예시이다. 기존의 A화면과 , 유저가 원하는 모습대로 개편한 B의 테스트 화면이다. 사용자는 B를 원한다고 말하지만 사실 상 매출을 올려주는 화면은 가입률을 증가 시킨 A였던 것이었다. 이처럼 A/B 테스트는 정량적인 데이터를 바탕으로 평가하기 때문에, 의사결정자의 직관 혹은 사용자의 말에 의존하는 것보다 시간 및 비용 낭비에 대한 위험성이 적다. 또한 효과를 눈으로 검증할 수 있기 때문에 이미 여러 기업에서 새로운 기능을 평가하고 디자인을 개선하여 인.. 데이터 분석/방법론 2023. 5. 26. [통계] ANOVA 분산분석 ANOVA 분석은 6시그마 시간에 주구장창 배웠었는데, 너무 생산/품질(불량 등)쪽에 특화해서 배웠더니 기존 업무에 어떻게 활용해야 할지 감이 잘 오지 않아 다시금 정리해보았다. 1. 분산분석(ANOVA)이란? - ANOVA, ANalysis Of VAriance - 세 집단 이상의 평균을 비교하는데 사용 * t-test가 두 집단 간 평균차이를 파악하는 데에 적용되는 반면, ANOVA는 세 집단 이상의 집단 평균치의 차이를 검정 * 다수 집단 비교를 할 때, t-test를 사용할수도 있지만, 다중검정문제로 인해 1종 오류가 증가하게 됨 - 집단의 평균들이 멀리 떨어져 분산이 크면 클수록, 집단간의 평균들이 서로 다르기 때문이다. .따라서 평균.. 통계/통계학 Statics 2023. 5. 25. [ML] ChatGPT로 알아보는 LightGBM datarobot으로 모델링을 진행하면서, 모델 별 기본 원리와 어떤 특징을 가지고 있는지 알기 위해 챗 지피티와 함께 공부해보았다. 우선은 그 중 LightGBM에 대해 알아보았다! LightGBM (Light Gradient Boosting Machine) - GOSS, EFB라는 새로운 알고리즘을 통해서 데이터 셋의 크기를 줄이고 수행 속도를 큰 폭으로 높임 i. GOSS : 데이터셋의 샘플 수를 줄이는 알고리즘 (축소한 데이터셋이라도 어느 수준 이상으로 차이가 발생하지 않는다) ii. EFB : 데이터셋의 Feature 수를 줄이는 알고리즘 ( 상호 배타적인 변수들을 하나의 bucket으로 묶어서 줄이는 방식) - Tree 기반 학습 알고리즘 - 수직적으로 확장되는 leaf-wise로 level-.. 통계/머신러닝 MachineLearning 2023. 5. 12. 이전 1 ··· 3 4 5 6 7 8 9 다음