분류 전체보기
[SQL] SQL 중급
지난번 글에 이어서 Mode의 SQL 튜토리얼을 읽고 정리하고 실습해보고 있습니다. 오늘은 Count를 포함한 기초 산술연산 방법, 조건, 그리고 join에 대해서 다뤄보려고 합니다. 잘못 이해했거나 오류가 있는 부분은 알려주시면 정말 감사하겠습니다! Mode에서 로그인 후 새 report를 만드셔서 따라하실 수 있습니다. 링크 아래에 달아두겠습니다. https://app.mode.com/ Count SELECT COUNT(*) FROM tutorial.aapl_historical_stock_price 특정 열의 행의 수를 계산합니다. *을 입력하면 전체 행의 수를 출력합니다. high를 입력하는 경우에는 null이 아닌 행의 수를 계산합니다( *보다 항상 작아요! ) 열을 셀 수도, 숫자가 아닌 데이터..
[SQL] SQL 기초
3학년이나 됐는데 데이터베이스를 좀 알긴 알아야되지 않겠나 싶은 마음으로 SQL 문법을 간단하게 공부해서 올려보고자 합니다. Mode의 SQL 튜토리얼을 읽고 정리하고 실습해보고 있습니다. 잘못 이해했거나 오류가 있는 부분은 알려주시면 정말 감사하겠습니다! Mode에서 로그인 후 새 report를 만드셔서 따라하실 수 있습니다. 링크 아래에 달아두겠습니다. https://app.mode.com/ SQL이란? SQL(Structured Query Language)은 관계형 데이터베이스의 데이터를 관리하기 위해 설계된 프로그래밍 언어입니다. SELECT - FROM 한 번에 하나의 select만 실행할 수 있으며, SELECT로 FROM에서 가져온 데이터의 열을 선택할 수 있습니다. SELECT A, B, ..
[HTML] 2. HTML5 2
이번 포스팅에서는 지난 번에 이어 HTML5에 대한 내용을 다루려고 합니다. 이번에 집중적으로 알아볼 부분은 input 태그와 form 태그의 method, input 태그, 그리고 주석입니다. 1. input 태그와 속성 form은 입력 양식입니다. 구글 폼과 같은 것들을 사용해보셨다면 충분히 예상하실 수 있으실텐데, form 태그 내부는 input 태그로 구성되어 있습니다. form 태그를 사용하는 이유에 대해서는 두 번째에서 말씀드리도록 하겠습니다. input 태그는 아주 많은 속성을 가지고 있습니다. 지금까지 제가 웹 공부를 하면서 가장 많이 본 속성은 type, value, placeholder, name 정도가 있습니다. 하나씩 차차 알아보도록 하죠! 전체 input 태그의 속성에는 다음 ur..
[HTML] 1. HTML5 기초
웹을 공부하고자 하시는 분들이 몇천 번이고 문턱을 밟았다 돌아가시는 그 부분(사실 제 경험담입니다), 바로 HTML에 대해 오늘 다뤄보려고 합니다. HTML은 HyperText Markup Language의 약자로, WWW(world wide web)의 핵심 언어이기도 합니다. 이후에 다뤄질 CSS, JavaScript도 결국 HTML에 기본 토대를 두고 그 안에서 더해지고 작동하게 되죠. 이번 포스팅에서는 HTML의 기초에 대해서 다뤄보려고 합니다. 1. HTML 구성 HTML은 지금 다섯번째 버전을 맞이했습니다. HTML5라고 불리는 이유도 거기에 있습니다. HTML은 Tag로 이루어져 있습니다. HTML5는 아래와 같은 기본 형식을 가지고 있습니다. hello there! 가장 위에 이 문서가 어떤..
[라이트 머신러닝] Session 19. 앙상블의 정의와 다수결 투표!
본의 아니게 오랜만에 라이트 머신러닝 글을 올리게 되었네요! 이번 세션에서는 저번에 예고했다싶이 앙상블 학습에 대해서 알아보려고 하는데요, 여러분은 앙상블하면 무엇이 떠오르시나요? 솔직히 저는 음악이 가장 먼저 떠올랐는데요, 사실 비슷한 개념이기는 합니다. 이번 세션에서는 여러 개 분류기를 합쳐 좋은 성능을 내는 앙상블 학습의 정의와 종류 중 하나인 다수결 투표에 대해서 알아보도록 하겠습니다! A. 앙상블 학습 앙상블 학습(ensemble learning)은 여러 개의 분류기를 하나의 메타 분류기로 연결해서 더 좋은 성능을 이끌어내는 기법입니다. 앙상블 학습을 위한 분류기를 만들기 위한 방법은 여러가지가 있습니다. 일단 먼저, 앙상블의 작동 원리와 왜 더 성능이 좋은지에 대해서 알아보도록 하겠습니다. 먼..
[라이트 머신러닝] Session 18. ROC 곡선과 불균형 데이터 균형 맞추기!
A. 여러가지 성능 평가 지표 1. 오차 행렬 오차행렬(confusion matrix)은 학습 알고리즘의 성능을 행렬로 펼쳐둔 것입니다. 아래 그림과 같이 진짜 양성(True Positive, TP), 진짜 음성(True Negative, TV), 가짜 양성(False Positive, FP), 가짜 음성(False Negative, FN)의 개수를 적은 정방 행렬이죠. 이 행렬을 만들 때 물론 직접 세어서 계산할 수도 있지만 사이킷런의 함수 confusion_matrix 를 사용할 수도 있습니다. from sklearn.metrics import confusion_matrix pipe_svc.fit(X_train, y_train) y_pred = pipe_svc.predict(X_test) confma..
[라이트 머신러닝] Session 17. 학습과 검증 곡선, 그리고 그리드 서치
이번 세션에서는 두 가지 곡선을 이용해 알고리즘을 디버깅하여 보다 나은 모델을 만드는 방법 하나와, 그리드 서치를 이용해 하이퍼파라미터를 튜닝하는 방법 두 가지를 살펴보도록 하겠습니다. 지난 세션과 어느정도 이어지는 주제이니, 16을 보고 오셔도 좋습니다! A. 학습 곡선과 검증 곡선을 사용한 알고리즘 디버깅 1. 학습 곡선으로 편향과 분산 문제 분석 학습 곡선, 즉 그래프를 이용하면 모델의 훈련 정확도와 검증 정확도를 모델의 높은 분산에 문제가 있는지, 편향에 문제가 있는지를 쉽게 확인하고 고칠 수 있습니다. 데이터를 더 모으는 것은 사실 불가능한 경우가 꽤 있기 때문에, 꼭 데이터를 더 모아야하는지를 판단할 수 있게 해주죠. 왼쪽 위 그래프는 편향이 높은 모델입니다. 이 모델은 훈련과 교차검증의 정확..
[라이트 머신러닝] Session 16. 파이프라인으로 묶고, 교차 검증으로 모델을 평가하자!
이전 세션들에서 테스트 세트처럼 새로운 데이터의 스케일을 조정하고 압축하기 위해 훈련 세트에서 사용한 파라미터를 재사용해야한다고 이야기했었는데요, 조금 더 쉬운 머신러닝을 위해 이번 세션에서 사이킷런의 Pipeline 클래스를 배워보도록 하겠습니다. 그리고 모델을 검증하기 위해 널리 쓰이고 있는 k-겹 교차검증 방법에 대해서도 알아보겠습니다. A. 파이프라인을 사용한 효율적인 워크플로 만들기 1. 위스콘신 유방암 데이터셋 위스콘신 데이터셋은 악성과 양성인 종양 샘플 569개가 포함되어 있습니다. 앞에서 두 열은 샘플의 ID와 진단결과가 들어있고, 3~32번째까지의 열에는 세포 핵의 이미지에서 계산된 30개 실수 값 특성이 들어있습니다. 일단 데이터를 받아오도록 할까요? 이 데이터셋에 대한 내용은 링크에서..
[라이트 머신러닝] Session 15. 커널 PCA를 이용한 비선형 매핑
C. 커널 PCA를 사용한 비선형 매핑여태까지 많은 머신 러닝 알고리즘은 입력 데이터가 선형적으로 구분이 가능하다는 가정을 합니다. 다른 알고리즘들-아달린, 로지스틱 회귀, SVM-은 선형적으로 완벽하게 분리되지 않는 이유를 잡음때문이라고 이야기합니다.실전에서는 더 자주 비선형 문제들을 맞닥뜨립니다. 이 경우에 항상 PCA나 LDA와 같은 차원 축소 기법이 최선이라고는 말할 수 없겠죠. 이제부터 알아볼 것은 PCA의 커널화 버전인 KPCA입니다. 1. 커널 함수와 커널 트릭앞선 세션에서 커널 SVM에 대해 이야기한 것을 떠올려보면, 비선형 문제를 풀기 위해 고차원 공간으로 데이터를 투영해 풀었습니다. k 고차원 부분 공간에 있는 샘플을 변환하기 위해 비선형 매핑 함수를 정의합니다. 이 함수를 d차원 보다..
[라이트 머신러닝] Session 14. LDA를 통한 지도학습방식 데이터 압축
선형 판별 분석(Linear Discriminant Analysis)은 규제가 없는 모델에서 오버피팅 정도를 줄이고 계산 효율정을 높이기 위해 사용되는 특성추출 기법입니다. LDA의 개념은 PCA와 상당히 유사합니다. PCA가 데이터셋의 분산이 최대인 성분축을 찾는 것이 목표라면 LDA는 클래스를 최적으로 구분할 수 있는 특성 부분 공간을 찾는 것입니다. 1. 주성분 분석 vs 선형 판별 분석 PCA와 LDA 모두 데이터셋의 차원 개수를 줄이는 선형 변환 기법이지만 PCA는 비지도, LDA는 지도학습이라는 점에서 다릅니다. 여기서 여러분은 LDA가 클래스 구분을 위해 특성 부분 공간을 찾는 것이기 때문에 더 분류에 뛰어나다고 생각하실 수 있는데요, 사실은 그렇지는 않습니다. 마르티네스는 PCA를 통한 전..