본문 바로가기

전체 글

(66)
서브쿼리 기초 WHERE, JOIN 조건으로 실습해보기 서브쿼리는 코딩할 때 정말 많이 쓰인다. 특히 DB2에서는 한 통으로 쿼리문을 짜는 경우가 대부분이기 때문에 거의 모든 쿼리가 서브쿼리 형태로 되어 있다. 서브쿼리란? -SELECT 쿼리문 안에 또 SELECT 쿼리문이 있는 것 -단일 SELECT문으로는 조건식을 만들기 어려울 때 사용, 혹은 서로 다른 테이블에 있는 값을 조인하거나 조건문으로 사용할 때 사용 실제 코드로 알아보자. 위와 같이 상품 테이블과 매출 테이블이 있다. 판매량이 1,000 이상인 상품의 상품코드, 상품명, 상품가격만 가져오고 싶다면 쿼리를 어떻게 짜면 될까? 우선 상품 테이블에는 상품의 판매량이 없다. 판매량은 매출 테이블에 있기 때문에 판매량>=1000이라는 조건을 걸기 위해서는 매출 테이블이 필요하다. 이 때 사용하는 것이 ..
SQL 데이터 타입 (숫자, 문자, 날짜), DB2와 오라클 데이터타입 차이 가장 기본 중 하나인 SQL서버의 데이터 타입을 정리해보자. 데이터타입은 엄청 여러개가 있지만 실제 실무에서 사용하는 것은 몇 가지로 정해져있기 때문에 모든 것을 다 알 필요는 없지만 기본적인 데이터타입들은 숙지하고 있어야 한다. 데이터타입을 알고 있어야 하는 이유는 여러가지가 있다. 우선 join이나 union 같은 함수를 사용할 때 합치고자 하는 컬럼의 데이터 타입이 다르면 에러가 난다. 또 일을 하다보면 데이터 마트를 새롭게 개발해야 하는 경우가 꽤 있는데 보통 현업이 IT에 요건을 전달해주면 IT에서 그 요건에 따라서 테이블을 만들어준다. 이 때 만들고자 하는 테이블에 어떤 컬럼이 필요하고, 각 컬럼별 데이터타입과 길이, PK값 등을 지정해서 IT에 전달해야하기 때문에 데이터타입은 기본적으로 꼭 ..
No numeric types to aggregate 오류해결 문자 컬럼을 숫자로 변환 파이썬에서 groupby 혹은 pivot을 사용하다 보면 'No numeric types to aggregate'이라는 오류를 종종 보게 된다. 이유는 간단하다. 값으로 사용하려는 변수가 문자열이기 때문에 집계함수를 적용하려고 하니 오류가 나는 것이다. 타이타닉 데이터로 실습해보자. import pandas as pd df = pd.read_csv('titanic.csv') df.head() info( ) 함수를 사용하면 각 컬럼별 널값 여부와 데이터 타입을 확인할 수 있다. df.info() 탑승 클래스와 성별을 기준으로 생존율, 연령, 운임, 싱글여부 등 다른 컬럼의 평균값을 구해보면 아래와 같다. df.groupby(["pclass", "sex"]).mean() 평균값이 적용되어서 보여지는 컬럼들을..
Linear Regression 선형회귀 파이썬 코드 예제 (보스턴 주택 가격 csv 파일) 선형모델은 아주 기초적이고 간단하지만 설명력이 뛰어나고 다른 모델들의 기초가 되는 모델이기 때문에 반드시 알고 넘어가야 하는 것이 좋다. 중학교 수학시간에 처음 배웠던 함수인 일차함수를 떠올려보자. y = ax + b 이 간단한 식에서 가장 중요한 것은 기울기와 절편이다. 기울기와 절편에 따라서 함수의 모양이 달라지고 x값을 넣었을 때 그에 대한 y값이 달라진다. 이런 단순 선형회귀는 우리가 가진 데이터를 가장 잘 설명할 수 있는 기울기와 절편 값을 찾는 것이다. 선형회귀는 위와 같이 데이터에 단순한 선을 적합시킨다. 당연히 실제 데이터와 선 사이에는 오차가 생기는데, 그 오차가 얼마나 되는지 모든 손실에 제곱을 해서 구하는게 바로 평균제곱오차, MSE(Mean Squared Error)이다. 이 MSE..
쉽게 알아보는 K겹 교차검증(K-fold cross validation) 개념과 코드 K겹 교차검증은 통계학에서 모델을 평가하는 방법 중 하나이다. 딥러닝, 머신러닝에서도 모델 평가 방법으로 많이 사용된다. 보통 분류 모델 성능 평가에 StratifiedKFold를 많이 사용한다. k'겹'이라는게 무슨 말인가.. 초보자의 입장에서는 잘 와닿지 않는다. 기본적으로 머신러닝으로 모델을 만들 때 데이터를 train set과 test set으로 나눈다. 이때 test set은 모델 학습에는 사용되지 않고 만들어진 모델이 잘 학습되었는지, 오버피팅 되지는 않았는지를 평가하기 위해서 사용하는 데이터셋이다. 보통 train_test 비율은 7:3 혹은 8:2로 나눈다. k겹 교차검증을 하지 않으면 train set과 test set을 딱 한 번만 나눠서 모델링을 하는데 k겹 교차검증을 하면 데이터셋을..
F1 score와 accuracy, 분류기의 성능 평가 지표 머신러닝에서 분류기의 성능을 평가하는 방법은 여러가지가 있다. 오늘은 그 중에서 F1 score와 Accuracy에 대해 공부해보았다. F1 score의 개념을 알려면 우선 재현율과 정밀도의 개념을 알아야 한다. 결과/실제 True(참) False(거짓) True(참) TP(True Positive) FP(False Positive) False(거짓) FN(False Negative) TN(True Negative) 분류기를 만들어서 예측을 했을 때의 결과값은 총 4가지이다. 1. 실제 참, 예측 참 2. 실제 참, 예측 거짓 3. 실제 거짓, 예측 참 4. 실제 거짓, 예측 거짓 정밀도(precision score)은 예측이 참인 것 중에 실제도 참인 것의 비율이다. TP/TP+FP 재현율(recall..
LEFT JOIN 중복제거 DISTINCT와 GROUP BY LEFT JOIN은 아마도 SQL 쿼리문을 짜면서 가장 많이 쓰이는 문법 중 하나가 아닐까 싶다. JOIN에는 여러 종류가 있다. 크게 나누자면 1.LEFT 2.INNER 3.RIGHT인데 사실 RIGHT JOIN은 거의 사용하지 않고 대부분 LEFT JOIN 혹은 INNER JOIN을 주로 사용한다. 참고로 LEFT JOIN과 LEFT OUTER JOIN은 동일하다. LEFT JOIN을 여러번 사용하고 싶은 경우의 쿼리는 아래와 같다. 문제는 LEFT JOIN을 하다보면 중복값이 생기면서 데이터가 늘어나는 경우가 있다. LEFT JOIN은 1:1 혹은 N:1의 관계를 가진 테이블 두 개를 조인해야만 전체 ROW 수가 틀어지지 않는다. 만약 1:N의 관게에서 LEFT JOIN을 쓰면 데이터에 변동이 있을..
AT&T 배당일 2021년에는 언제? 배당수익률 7%의 분기배당주 AT&T(티커명 T)는 미국에서는 퇴직금을 받으면 T에 넣어서 배당금으로 노후 생활을 한다는 말이 있을 정도로 아주 대표적인 미국의 배당주입니다. 1,4,7,10 분기 배당을 실시하고 있으며 배당수익률은 약 7%입니다. 대표적인 가치주인 통신업체로 안정적인 매출과 영업이익을 유지하고 있습니다. 그러다보니 AT&T를 'T연금', '7%짜리 채권'이라고 부르는 사람들도 많이 있네요 ㅎㅎ AT&T는 통신, 미디어 기술 서비스 제공업체로 버라이즌 다음으로 큰 미국의 2위 통신회사입니다. 최근 루트메트릭스에서 미국 45개 도시의 5G 성능 비교 조사를 한 결과 버라이즌, AT&T, T모바일 중 AT&T가 종합적으로 가장 우수하다고 발표했습니다. 5G 가용성은 T모바일이 가장 뛰어나나 5G 다운로드 속도, 안정성 ..