일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CSS
- HTML
- 코딩
- 머신러닝
- 데이터분석
- 윈도우함수
- 코드잇 TIL
- 코딩공부
- 나혼자코딩
- pandas
- 오늘도코드잇
- 서브쿼리
- 로지스틱회귀
- 다항회귀
- for반복문
- 경사하강법
- 코딩독학
- 결정트리
- matplotlib
- 선형회귀
- Seaborn
- numpy
- 판다스
- sql연습문제
- 메소드
- 파이썬
- 코드잇
- 코드잇TIL
- 행렬
- SQL
- Today
- Total
목록분류 전체보기 (179)
Coding Diary.
1) NULLNULL은 0과 다릅니다, 데이터가 존재하지 않는 셀입니다.WHERE 절에서 NULL을 식별할 때 IS NULL 또는 IS NOT NULL 을 씁니다. (NULL은 SQL에서 값으로 간주되지 않기 때문에 =를 사용하지 않습니다)NULL은 LEFT 또는 RIGHT JOIN을 수행할 때 자주 발생합니다. LEFT JOIN의 왼쪽 테이블에 있는 일부 행이 오른쪽 테이블의 행과 일치하지 않으면 해당 행은 결과에 일부 NULL값을 포함합니다.NULL은 단순히 데이터베이스의 데이터가 누락된 경우에도 발생합니다.SELECT *FROM accountsWHERE primary_poc IS NOT NULL; 2) COUNTCOUNT는 NULL 값이 있는 행을 고려하지 않습니다.누락된 데이터가 있는 행을 빠르게..
1) JOIN : 한 번에 둘 이상의 테이블에서 데이터를 가져올 수 있도록 함JOIN 문을 추가하면 ON 문도 추가됨SELECT orders.*, accounts.* #테이블 이름은 항상 마침표 앞/ 열은 항상 마침표 뒤FROM ordersJOIN accountsON orders.account_id = accounts_id;SELECT orders.standard_qty, orders.gloss_qty, orders.poster_qty, accounts.website, accounts.primary_pocFROM ordersJOIN accountsON orders.account_id = accounts.id;SELECT *FROM web_eventsJOIN accountsON web_events.acco..
1) SELECT & FROMSELECT : 데이터를 받을 열FROM : 열을 선택하려는 테이블 지정테이블의 모든 열에 있는 데이터를 제공받으려면 * 사용SELECT *FROM orders2) LIMITLIMIT : 테이블의 처음 몇 행만 보고 싶을 때 유용전체 데이터 불러오는 것 보다 속도 훨씬 빠름항상 쿼리의 맨 마지막 부분SELECT *FROM ordersLIMIT 10; (처음 10개의 행만 표시) 3) ORDER BY모든 열의 데이터를 사용하여 결과를 정렬SELECT, FROM 뒤 LIMIT 앞기본값은 오름차순/ ORDER BY 뒤에 DESC 추가 시 내림차순 정렬SELECT *FROM ordersORDER BY occurred_atLIMIT 1000;한 번에 두 개 이상의 열을 정렬 가능/ 맨..
선형 회귀를 사용해서 내용 기반 추천을 해 봅시다. 가장 먼저 선형 회귀에서는 데이터를 수학적으로 어떻게 표현하는지 봅시다. 먼저 아래 데이터를 실제로 사용할 떄는 영화 이름이나 속성 이름을 쓰지 않았는데, 구별을 하기 위해 몇 번째 데이터와 속성인지를 자연수로 표시해보겠습니다. 가장 기본적으로 입력 변수들, 위의 경우 영화 속성들은 x라는 문자로 나타내고, 목표 변수, 즉 유저 평점은 y라는 문자로 나타냅니다. 1. 입력 변수 각 영화에서 속성은 액션, 로맨스, 코미디, 감동 총 4개 입니다. 첫 번째 입력 변수인 액션 정도를 나타내기 위해 x_1, 로맨스 정도를 나타내기 위해 x_2, 나머지도 마찬가지로 x_3, x_4로 나타냅니다. 입력 변수의 개수는 n이라는 문자로 표현하는데 지금은 총 4개의 입..
1. 데이터 셋 저번 글에서 사용한 데이터에다가 중요도라는 열을 추가하겠습니다. 에다 부스트는 전에 있는 스텀프들이 틀리게 예측한 데이터들을 조금 더 잘 맞추려고 하는 알고리즘입니다. 그렇기 때문에 스텀프를 만들 때 전에 예측에 실패했던 데이터들을 조금 더 중요하게 취급을 해야 합니다. 이걸 수치화하고 보기 편하게 열로 추가시켜주는 것입니다. 처음에는 틀리게 예측한 데이터가 없으니까 모든 데이터의 중요도를 같게 설정합니다. 7개의 데이터가 있으니까 각각 1/7씩 입니다. 중요도의 합은 항상 1로 유지시켜 줍니다. 2. 첫 스텀프 만들기 첫 스텀프는 전에 만든 스텀프가 없기 때문에 결정 트리를 만들 때랑 똑같이 root 노드를 고릅니다. 일단 각 질문들의 지니 불순도를 계산합니다. 지니 불순도가 가장 낮은..
1. 스텀프 랜덤 포레스트를 만들 때와 똑같이 에다 부스트에서도 수많은 결정 트리들을 만듭니다. 랜덤 포레스트에서 만드는 트리들은 깊이가 조금 있었는데 에다부스트에서는 깊은 결정 트리들이 아니라 root 노드 하나와 분류 노드 두 개를 갖는 얕은 결정 트리를 만듭니다. 예를 들면 교통사고 데이터를 분류하고 싶다고 합시다. 뿌리 노드의 질문이 속도가 80km를 넘었는지 안 넘었는지, 그리고 넘었으면 사망, 넘지 않았으면 생존 이렇게 예측하는 단순한 트리인 입니다. 이런식으로 하나의 ㅈ리문과 그 질문에 대한 답으로 바로 예측을 하는 결정 트리를 나무의 그루터기를 의미하는 스텀프라고 합니다. 이런 식으로 스텀프를 만들게 되면 성능은 주로 50%보다 조금 나은 성능을 갖게 됩니다. Boosting 기법은 성능이..
랜덤 포레스트는 수많은 트리들을 임의로 만들고, 이 모델들의 결과를 다수결 투표로 종합해서 예측하는 모델입니다. 트리를 많이, 임의로 만들기 때문에 랜덤 포레스트라는 이름을 갖습니다. 랜덤 포레스트에서 임의성을 더하는 요소는 두가지가 있습니다. 그 중 Bootstrapping에 대해 알아보겠습니다. 1. Bootstrapping bootstrapping은 갖고 있는 데이터 셋을 이용해서 조금 다른 데이터 셋을 만들어내는 방법입니다. 예를 들어 독감 환자 데이터를 사용한다고 해봅시다. 총 다섯 개의 열이 있는데 고열, 기침, 몸살, 콧물, 그리고 환자가 독감인지 아닌지에 대한 데이터가 있습니다. 이 데이터 셋을 이용해서 좀 다른 데이터 셋을 만들어야 합니다. 방법은 간단합니다. 그냥 원래 있던 데이터 셋에..
결정 트리는 수많은 머신 러닝 알고리즘들 중 가장 직관적인 것들 중 하나입니다. 결정 트리의 장점은 쉽게 해석할 수 있다는 것입니다. 머신 러닝 모델을 해석한다는 건, 예측을 하는 데 있어서 어떤 속성들이 좀 더 중요하게 사용됐고, 어떤 것들이 좀 덜 중요하게 사용됐는지 알아낸다는 것입니다. 예를 들어서 독감 데이터에서 열, 기침, 몸살 이 속성들 중 어떤 것이 독감을 예측하는 데 가장 영향력이 크고, 어떤 것이 덜 중요하게 사용됐는지 알수 있다는 것입니다. 만들어 놓은 트리를 이용해서 각 속성들의 중요도, feature importance를 계산하는 방법에 대해서 알아보겠습니다. 1. 노드 중요도 (Node Importance) 속성들의 중요도를 계산하기 위해서는 먼저 각 노드 하나하나의 중요도, no..
1. 그리드 나누기display 속성을 grid로 하고 grid-template-columns 속성으로 열을, grid-template-rows 속성으로 행을 나눌 수 있습니다. 예를 들어거 3x2 그리드를 만드는데, 열 너비는 각각 100px, 200px, 100px이고 행 너비는 150px, 200px이라면 아래와 같이 쓸 수 있습니다.display: grid;grid-template-columns: 100px 200px 100px;grid-template-rows: 150px 200px; 2. 유연한 크기 단위fr 이라는 단위를 사용하면 플렉스박스처럼 전체 크기에 대해 상대적인 값을 지정할 수 있습니다. 예를 들어서 3x2 그리드에서 열의 너비를 1:1:1로 하고 싶다면 아래와 같이 하면 됩니다.d..
1. 지니 불순도 머신 러닝 프로그램이 결정 트리를 만들 때는 과제처럼 내용이 정해져 있는 내용으로 만드는 게 아니라 경험을 통해 직접 정해나가야 합니다. 데이터를 분류해 보면서, 각 위치에서 어떤 노드가 제일 좋을지 고르는 것입니다. 선형 회귀 알고리즘의 목적이 학습 데이터를 가장 잘 나타낼 수 있는 일차식을 찾는 거였습니다. 결정 트리의 목적은 학습 데이터를 직접 분류해보면서, 데이터들을 가장 잘 분류할 수 있는 노드들을 찾아내는 것입니다. 이걸 하려면 어떻게 분류하거나 질문을 하는게 좋고 안좋은지에 대한 기분, 즉 손실함수 같은 개념이 필요합니다. 결정 트리에서는 이것을 지니 불순도(gini impurity)를 통해서 합니다. 아래의 예시와 같이 독감 데이터를 추상화해보겠습니다. 파란색은 독감인 데..