Data 전처리란 : Raw Data을 학습하기 전에 변경하는 작업 Garbage in, Garbage out. - 좋은 train dataset으로 학습 해야 좋은 예측 결과를 만드는 모델을 학습할 수 있다. - 좋은 train dataset을 만드는 것은 모델의 성능에 가장 큰 영향을 준다. 목적에 따른 전처리 분류 1. 학습이 가능한 데이터셋을 만들기 위한 전처리 - 머신러닝 알고리즘은 숫자만 처리할 수 있다. (수식이므로) 그래서 결측치, 문자열이 있으면 학습이나 추론을 할 수 없다. 2. 학습이 더 잘되도록 만들기 위한 전처리 - 공학적 전처리 (Feature Engineering) - 도메인 지식에 의한 전처리 레이블 인코딩(Label encoding) 범주형 feature의 고윳값들 오름차수..
분류 전체보기
문제 유형별 MLP 네트워크MLP(Multi Layer Perceptron)Fully Connected Layer로 구성된 네트워크 Regression(회귀)회귀: 연속형(모든값이 정답이 될수있다.) 실수값을 맞추는것. 대상이 무한대이고 대상이 정해져있지 않다. ⇒ 확률이 0성능을 평가할 때 얼마나 잘 맞췄는지가 아니라 얼마나 덜 틀렸는지로 평가한다. 분류: 이진분류 / 다중분류. 범주형(값이 정해져있다)얼마나 잘 맞췄는지로 평가한다. 이진분류- 맞는지 여부(positive (o → 1), negative (x→0))다중분류- class가 여러개 ex. 강아지의 품종이 10개가 있다. 이중 강아지의 품종을 맞춰라. → 모델을 구성하는 방법과 사용하는 변수가 달라진다. 분류 (Classification)F..
데이터 분석 개요 시각화 : 빅데이터 분석 및 탐색적 분석에 필수. 복잡한 분석보다 더 효율적 일수 있다. SNA(사회 연결망) 분석에 자주 활용 공간분석(GIS) : 공간적 차원과 관련된 속성들을 시각화 탐색적 자료분석(EDA) : 데이터 특징과 내재하는 구조적 관계를 알아내기 위한 기법들을 통칭한다. 4가지 주제: 저항성의 강조, 전차계산, 자료변수의 재표현, 그래프를 통한 현시성 데이터 이해, 변수생성, 변수 선택 단계에서 활용 결측값(NA) 처리방법 단순대치법 complete analysis : 결측값의 레코드 삭제, 통계적 추론의 타당성 문제있음 평균대치법 : 결측값을 데이터의 평균으로 대치 (- 비조건부 평균대치법 : 관측데이터의 평균으로 대치 -조건부 평균대치법: 회귀분석을 통해 대치) 단순..
데이터 시각화 데이터의 분석 결과를 쉽게 이해하고 판단할 수 있도록 데이터를 시각적으로 표현하여 전달하기 위한 과정을 말한다. 많은 양의 데이터를 한눈에 파악할 수 있다. 누구나 데이터를 인지하고 활용할 수 있다. 숫자를 보여주면 숫자를 다루던 사람들은 알지만, 모르는 사람들은 알기 어렵다. 그러나 자유도는 높지만 진입장벽이 있다. 대표적인 시각화 라이브러리 matplotlib: 가장 기본이 되는 라이브러리. 함수들이 내부적으로는 matplotlib을 사용한다. seaborn pandas plotly : matplotlib을 사용하지 않고 자바스크립트를 사용 (웹에서 볼수 있도록 한다.) folium: 지도 시각화. matplotlib : 데이터 시각화를 위한 파이썬 패키지. 2차원 그래프를 주로 그린다..
정돈된 데이터 (Tidy data) 원하는 형태로 자유롭게 만드는 것. 데이터의 구조를 바꾸는 것 처음 제공되는 데이터셋 = raw data (대부분 빠져있는 값들이 많다. 필요없는 컬럼등..) : 정제하고 전처리를 해야한다. 정돈되지 않은 데이터의 가장 흔한 형태 열 이름이 변수 이름이 아니라 값인 경우 열 이름에 복수 개의 변수가 저장된 경우 : 하나의 열에 여러개를 저장하지 말것 ex. 주소와 이름을 합치지x. 한개의 단위에는 하나만 넣는다. 변수가 행과 열에 모두 저장된 경우 같은 테이블에 복수의 관측단위가 저장된 경우 단일 관측 단위가 복수 테이블에 저장된 경우 stack() : 컬럼의 이름들을 index로 만들어준다. df.stack() unstack() : stack()과 반대로 index를..
조인이란 : 두개 이상의 테이블에 있는 컬럼들을 합쳐서 가상의 테이블을 만들어 조회하는 방식. 소스테이블: main information 타겟테이블: sub information Foreign key(외래키): 한 테이블이 다른 테이블의 칼럼값을 참조하는 것. 자식테이블에서 참조하고 있는것을 부모테이블에서 마음대로 삭제 할 수없다. 참조하고 있지 않다면 삭제가능. 삭제하려면 자식테이블에서 참조되고있는 값을 먼저 삭제해야한다. 참조하는 행이나 값을 삭제할수 있다. CASCADE : 부모 테이블에서 데이터를 삭제/수정하면, 그 행을 참조하는 자식테이블의 행들도 같이 삭제/수정된다. SET NULL : 부모 테이블에서 데이터를 삭제/수정하면, 그 행을 참조하는 자식테이블의 foreign key 컬럼의 값을 N..
파이썬: concat(age,”세”) sql: concat(age(컬럼명),”세”): 컬럼 안에는 값이 여러개. 컬럼에 있는 값들을 다 집어 넣는다는 개념. 일괄적인 처리를 하는것. ex. max(age) age: 30, 25 ,59… 나이는 하나만 넣으면 어느것이 큰지 모른다. 모든 나이를 다 넣어야한다. 단일행은 각 나이를 하나씩 처리하는 것이다. select, where 절에서 사용. 다중행은 한번에 처리하는 것. 묶어서 처리(그룹함수). select, having 절에서 사용한다. (where절에서 사용할 수 없다) 여기서부터 여기까지 바꿔라: insert 이런글자를 이 글자로 바꿔라: replace select insert('123456789', 2,3,'안녕'); -- 두번째 글자부터 3글자 ..
null은 ‘=’ 으로 보기는 어렵다. age is null, is not null 이런식으로 물어봐야한다. 모르는값이기 때문에 동등비교가 불가하다. (파이썬은 = 가 가능하지만 sql은 x) 없으면 error가 아니라 빈 표가 나온다. ‘있니’라고 물어봤기 때문 -- EMP 테이블에서 직원의 이름에 '%' 가 들어가는 직원의 ID(emp_id), 직원이름(emp_name) 조회 -- 패턴문자를 조회조건에서 사용해야 하는 경우 escape 구문을 이용해 패턴문자를 검색문자로 표시하는 특수문자를 지정한다. select emp_id, emp_name from emp where emp_name like '%#%%' escape '#' escape문자는 #으로 지정된게 아니라 만약 '('를 넣고 싶다면 원하는 ..
SQL이란 데이터를 주고받기 위한 언어 sql은 대소문자 가리지 않는다. 데이터베이스: C(추가)R(조회)U(수정)D(삭제) 프로그램을 만드는 것은 데이터를 처리하는 것이다. ex. 고객데이터 (한사람의 데이터) : 이름, 아이디, 주소 등 데이터는 여러개의 속성값들로 이루어져있다. 관계형 데이터베이스: 표 형식으로 데이터를 관리하는 데이터베이스 ex. 쇼핑몰에서 데이터가 필요하다면 고객의 데이터, 주문관련된 데이터, 제조사 등이 필요하다. 프로그램의 규모가 커지면 필요한 데이터가 많아진다. 데이터 하나하나가 표가 된다. 데이터와 데이터간에 데이터가 생긴다.(relational data. 관계형데이터) 테이블형태로 관리했을때 정형data라고 한다. 비정형데이터는 사람손길이 들어가면 잘 안나온다! Enti..
정규표현식 정규표현식은 따로있고 파이썬의 함수들이 지원을 해주는것. 문자열로 만드는것이다. 패턴을 지정해줘야한다(메타문자, 리터럴) a* → 메타문자. a가 0개 이상와야한다. 문자 클래스: 예를들어 [akr] a또는 k또는 r이 와야한다. 집단이라고 생각. 얘네들 중 하나. 글자수와 관련된 메타문자 ex. A+ 앞에있는애가 몇개 와야한다. 라는걸 알려줌 • {m} : 앞의 문자(패턴)가 m개. (a{3}b) → aaa가(x) aaab(o) re모듈 정규표현식 문자열로 만들고 re모듈에 넣는다. 내장함수를 뺀 모듈들은 다 import를 하고 써야한다. 기본적으로 메모리에 등록되어있지x 검색함수 Python에서는 정규표현 처리를 하기 위해 표준 라이브러리인 re 모듈을 사용한다. 정규표현 패턴를 이용한 문..