본문 바로가기

전체 글

(66)
변수 선택 방법(Feature selection) - 필터 기법, 래퍼 기법, 임베디드 기법 모델을 만들 때 정확도 향상과 속도 및 성능 향상을 위해 변수 선택을 한다. 보통 데이터 셋은 여러개의 독립변수를 갖고 있는데, 독립 변수 전체를 다 모델링에 사용하지 않고 종속변수와 유의미한 연관성을 가진 독립변수만을 채택해서 모델링을 하는 것이다. 이렇게 하면 모델을 단순화할 수 있고 모델링 시간도 단축시킬 수 있으며 정확도도 높일 수 있다. 1. 필터 기법 데이터의 통계적 특성을 확인하고 변수를 선택하는 기법으로 말 그대로 무의미한 변수들을 필터링하는 작업이다. 통계적 측정 방법을 이용해 피쳐들 간 상관관계를 확인하고 적합한 피쳐만 뽑아서 모델링에 사용한다. 2. 래퍼 기법 예측 정확도 측면에서 가장 높은 성능을 보이는 변수들을 뽑아내는 기법이다. 변수의 일부만을 모델링에 사용하고 성능을 측정하는 ..
로지스틱 회귀 개념 알아보기, 선형회귀와의 차이점 로지스틱 회귀는 가장 기본적인 분류 모델 중 하나입니다. 이름은 회귀이지만 실질적인 작동 방식은 분류에 가깝습니다. 로지스틱 회귀는 데이터가 어떤 범주에 속할 확률을 0에서 1 사이 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류합니다. 보통 0.5를 기준으로 하며, 0.5보다 크면 1, 작으면 0으로 분류합니다. 로지스틱 회귀는 독립변수의 선형 결합을 이용해 사건의 발생 여부를 예측하며 종속변수가 범주형일 경우에 사용하는 회귀분석입니다. 종속변수의 범주가 2개이면 이항 로지스틱 회귀 분석, 2개 이상이면 다항 로지스틱 회귀분석이라고 합니다. 로지스틱 회귀를 이해하려면 일단 선형회귀 개념을 알아야 합니다. 선형회귀 개념 Linear Regression 선형회귀 파이썬 코드 예..
SQL 옵티마이저와 인덱스 기본 옵티마이저는 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행합니다. 옵티마이저는 크게 규칙 기반 옵티마이저(RBO)와 비용 기반 옵티마이저(CBO)로 나뉩니다. 현재 대부분의 관계형 DB는 비용기반 옵티마이저만을 제공합니다. 1. 규칙기반 옵티마이저 RBO는 우선순위를 기반으로 실행계획을 생성합니다. 오라클의 규칙기반 옵티마이저에는 총 15가지 규칙이 있으며 가장 기본은 RowID를 통해 테이블에서 하나의 행을 엑세스 하는 방식입니다. 규칙기반 옵티마이저는 인덱스를 이용한 방식이 전체 테이블 엑세스 방식보다 우선순위가 높습니다. 그렇기 때문에 인덱스가 존재한다면 항상 인텍스를 사용한 실행계획을 생성합니다. 조인 순서를 결정할 때는 조인 칼럼 인덱스 존재 유무가 중요한 판단 기준입..
윈도우함수(WINDOW FUNCTION) 총정리, 순위함수와 분석함수 SQL의 윈도우 함수란 행과 행 간을 비교, 연산, 정의하기 위한 함수이다. 분석함수 또는 순위함수라고 하기도 한다. 다른 함수들처럼 중첩해서 사용할 수는 없지만 서브쿼리에서는 사용가능하다. WINDOW FUNCTION 기본 문법 윈도우 함수에는 OVER 문구가 필수로 들어간다. SELECT WINDOW_FUNCTION (ARGUMENTS) OVER([PARTITION BY 컬럼] [ORDER BY 컬럼] [WINDOWING 절]) FROM 테이블명; WINDOW FUNCTION 종류 구분 함수 비교 순위 함수 RANK, DENSE_RANK, ROW_NUMBER 일반 집계 함수 SUM, MAX, MIN, AVG, COUNT SQL서버에서는 OVER 절 내에서 ORDER BY 지원하지 않음 그룹 내 행 순..
외부 조인) LEFT JOIN, RIGHT JOIN, FULL JOIN 차이 알아보기 OUTER JOIN은 외부 조인으로 기준이 되는 테이블이 조인 수행 시 드라이빙 테이블이 됩니다. 드라이빙 테이블이란 JOIN문을 실행했을 때 첫번째로 ACCESS되는 테이블을 의미합니다. 쿼리 수행 시 OUTER는 생략해도 무방합니다. 말로만 하면 헷갈릴 수 있기 때문에 실제 예시를 갖고 설명해보겠습니다. 위 테이블은 JOIN에 사용될 테이블입니다. EMP테이블의 기본키는 A컬럼, DEPT테이블의 기본키는 C컬럼이며 EMP테이블의 C컬럼은 DEPT테이블을 참조로 하는 외래키입니다. LEFT JOIN 왼쪽 테이블을 기준으로 A, B 테이블을 비교해서 B테이블에서 조인 조건에 해당하는 값이 있다면 그 값을 가져오고 값이 없다면 NULL값을 가져옵니다. 즉, WHERE절로 조회 조건을 제한하지 않는 이상 왼..
오라클 DELETE, TRUNCATE, DROP 차이점 알아보기 오라클에서 데이터를 삭제할 때 DELETE, TRUNCATE, DROP을 사용한다. 비슷한 것 같지만 3개의 구현 방법은 전부 다르다. DELETE 데이터는 지워지지만 테이블 용량은 그대로이다. 전체 또는 일부만 선택해서 삭제하는 것이 가능하며 COMMIT 이전에는 ROLLBACK이 가능하다. UNDO를 위한 데이터를 생성하기 때문에 TRUNCATE에 비해서 속도가 느리다. TRUNCATE TRUNCATE는 데이터를 전체 삭제하는 명령어이다. DELETE처럼 일부만 삭제하는 것은 불가능하고 무조건 전체 데이터를 삭제한다. 이때 주의할 점은 데이터와 인덱스만 삭제되고 테이블은 삭제되지 않는다는 점이다. 그렇기 때문에 TRUNCATE 명령어를 실행하고 나면 컬럼만 남아서 테이블이 처음 만들어졌을 때의 상태로..
SQL CREATE TABLE로 테이블 생성하기 및 PK / FK 등 제약 조건 알아보기 오늘은 CREATE TABLE 명령어로 간단하게 테이블을 생성하는 방법에 대해서 알아보겠습니다. 사실 회사에서는 이미 구축되어 있는 DB 마트를 사용하고 개인 테이블은 회사 시스템 내에서 생성하기 때문에 CREATE TABLE로 테이블을 만들 일은 없지만 SQLD 시험 공부를 위해 정리해보고자 합니다. 국가공인 SQL자격증 - SQLD CREATE TABLE로 테이블 생성 CREATE TABLE 테이블명 (컬럼1 데이터타입 조건, 컬럼2 데이터타입 조건, 컬럼3 데이터타입 조건, ...., ) SQL 데이터타입에 대한 자세한 설명은 아래 포스팅을 참고해주시기 바랍니다. SQL 데이터타입 가장 기본적인 테이블 생성 방법입니다. 이제 여기에 추가로 제약 조건을 걸어서 PK나 FK 등을 설정해주어야 합니다. ..
SQL 집계함수 - ROLLUP, CUBE, GROUPING SETS SQL의 집계함수에 대해 살펴보겠습니다. 보통 GROUP BY절 외에 ROLLUP, CUBE 등 다양한 그룹함수에 대해서도 같이 알아보겠습니다. 1. GROUP BY 절 SELECT 상품ID, 월, SUM(매출액) AS 매출액 FROM 월별매출 GROUP BY 상품ID, 월; 가장 기본적이고 단순한 GROUP BY절만 사용한 결과입니다. 상품ID와 월에 대해 매출액의 합계를 구해주었습니다. 2. ROLLUP ROLLUP함수는 소그룹간의 합계를 계산하는 함수입니다. ROLLUP을 사용하면 GROUP BY로 묶은 각각의 소그룹 합계와 전체 합계를 모두 구할 수 있습니다. SELECT 상품ID, 월, SUM(매출액) AS 매출액 FROM 월별매출 GROUP BY ROLLUP(상품ID, 월); NULL값으로 표..