목록분류 전체보기 (489)
기록하는삶
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/xNRxk/btrfs6ZPHr0/s6T9UTyefGwPpj3JKYt8hk/img.png)
SQL(Structured Query Language) > 번역하면 구조화된 질의어 > IBM에서 개발한, 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터 관리를 위해 설계된 특수 목적의 언어 > 그 종류로는 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL) 등이 있다. SQL 종류 1) 데이터 정의어(DDL _ Data Definition Language) 데이터간의 관계 정의를 위한 언어. 테이블과 같은 데이터 구조 혹은 객체를 생성, 변경, 삭제하는데 사용됨. 즉, 데이터 자체가 아니라, 데이터가 들어있는 구조를 위한 언어. ex) create, alter, drop, rename 등 사용 예시) DESC (테이블명) → 테이블의 구조(보유 column, Null 허..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ln4Up/btrfzlJfpC9/1BNrWd443VnDeds7j8iKn0/img.png)
1) 리스트 정의하기( 변수명 = [항목1, 항목2, 항목3, ...] ) 데이터를 묶어서 처리하는 방법 중 하나인 리스트(list). 데이터 타입 기호로는 []를 사용하고, 항목은 ,로 구분한다. [] 안에 아무것도 입력하지 않으면 빈 리스트를 만들 수 있고, 나중에 항목을 추가할 수도 있다. 항목으로는 정수(integer), 실수(float), 문자형(string), 튜플(tuple), 집합(set), 리스트(list) 등의 데이터 타입이 들어갈 수 있으며 각 항목들은 서로 데이터 타입이 같지 않아도 된다. 2) 인덱스( 리스트명[인덱스] ) 리스트가 정의될 때 항목이 나열된 순서에 따라 인덱스(index)가 부여된다. 이때 첫 번째 항목의 인덱스가 1이 아니라 0임에 유의하자. (이상하게 느껴질..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/HSHRE/btrftofE46k/KM7nNpmK3fN0QG7NTMMJ0k/img.png)
모듈(Module)이란? > 코드가 저장된 파일 > 파일을 가지고 있거나, 파일이 포함된 패키지(여러 모듈을 폴더 형식으로 모아놓은 것을 패키지라 부른다)를 가지고 있는 경우, 다른 코드에서도 해당 파일에 포함된 변수, 함수, 클래스 등을 불러와 사용할 수 있다. > 모듈 이름은 확장자(.py)를 제외한 파일 이름으로 불러온다. > 장점 ① 코드 작성 및 관리가 용이함 ② 코드의 재사용이 가능하고 편리함 ③ 공동 작업이 편함 모듈(Module) 만들고 활용해보기 아주 허접하지만 간단한, 함수 네 개를 만들어보았다. 첫 함수는 모듈을 소개하는 말을 출력하고, version이라는 변수를 생성 날짜로 지정했다. 이어지는 세 함수는 각각 자연수와 자연수의 제곱, 세제곱의 합을 구하는 함수다. 해당 파일을 '..
머신러닝을 위한 데이터 정제 과정에서 여러 데이터 분할 방법이 존재하는데, 그 중 두 가지를 정리해보자. 1) 예비법(Hold-out) > 전체 데이터를 겹치지 않는 두 데이터 집합, 훈련용(training set)과 시험용(testing set)으로 나누는 방법 > 비복원추출 > sklearn.model_selection의 train_test_split 모듈 이용 > parameters parameters default 의미 / 조건 *arrays list, nparray, scipy-saprse, pd.DataFrame 가능 test_size None(0.25) 시험용 set의 비율 or 크기 실수(float): 0 ~ 1 (전체 중 시험용 set이 차지하는 비율) 정수(int): 시험용 set의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bVdWdl/btrfuPYkBKP/z0jZGhzfVnYr8ZHwPdnnC1/img.png)
지난 글에서 비복원추출을 통해 데이터를 훈련용과 시험용으로 나누는 예비법(Hold-out)과 예비법을 여러 번 시행, 최적의 모델을 찾는 교차검증(cross validation)에 대해 살펴봤다. 복원추출을 사용할 경우, 형성되는 모델이 중복되는 훈련데이터(혹은 시험데이터)를 사용하게 될 가능성이 존재하긴 하지만 이를 감수하는 기법도 존재한다. 붓스트랩(Bootstrap) > 훈련용 데이터를 복원추출하는 방법. > 한정된 데이터 내에서 반복해서 다른 모델을 생성하고 이들 간의 voting을 통해 하나의 model을 형성하거나(Bagging, VotingClassifier), 이전에 생성한 모델이 만들어내는 오차를 이후 생성되는 모델에 반영, 더 좋은 모델을 만들어내는 기법(Boosting) 등에 사용..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/W6K2c/btrfG2V9JKG/jKyZbJKcF3syjG3kKar2kk/img.png)
1) 폰트 설정, 축 이름 한글화 가능하게, 스타일(darkgrid) 설정 import seaborn as sns import matplotlib.pyplot as plt plt.rc("font", family = "Malgun Gothic") sns.set(font="Malgun Gothic", rc={"axes.unicode_minus":False}, style='white') 2) 그래프 사이즈 설정 숫자를 바꿔가며 크기 조정 가능 # 그래프 사이즈 설정 plt.figure(figsize=(10, 7)) #또는 fig.set_size_inches(16,8) 3) x축, y축 설정 그래프에 대해 직접 설정하거나, plt.show()를 통해 그래프를 그리기 전에 축 정보를 설정할 수 있다. 이때 rot..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/blkImO/btrfzkXODZS/Ps3rAOJ69ZYIecriEjckL0/img.png)
탐색적 데이터 분석(EDA _ Exploratory Data Analysis) > 데이터의 종류, 양, 범위, 결측치 여부, 중복값 여부 등을 살피고 나아가 그 특징과 의미 등을 살피는 행위 > 각종 통계기법을 활용하거나, 그래프를 그려보기도 한다. 데이터마다 EDA와 그에 따른 전처리 방법은 천차만별이지만, 보통 필수적으로 진행해야하는 EDA도 있다. 1) 상위, 하위값 확인(head, tail) 어떤 column들이 있고, 어떤 값들이 들어가 있는지 대강 파악한다. df_train = pd.read_csv("train.csv") df_train.head(3) df_train.tail(3) 2) DataFrame.info(), DataFrame.describe() df.info()는 각 컬럼명과..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cqBlvm/btrfw5zT9NK/C8nvj99WqDlvSSL9QAb8M0/img.png)
정말 많은 데이터 전처리의 방법 중에서, scaling과 관련된 몇 가지를 살펴보도록 한다. 1) 원핫인코딩(One-hot Encoding) 데이터를 다루다보면 때로 필요에 의해 카테고리형 변수를 숫자로 변환하기도 한다. 예를 들어, 강아지, 고양이, 돼지, 토끼 → [1, 2, 3, 4] 와 같은 식이다. 이를 Label-Encoding이라 한다. 다만 이렇게 레이블링 하는 경우, 회귀분석 등 숫자의 크기가 가중치 결정에 있어 역할을 하는 경우 왜곡이 일어날 수 있다. (구분하기 위함일 뿐, 숫자의 크기는 아무런 의미가 없는데 머신러닝 과정에서 의미가 발생될 수 있음) 이를 방지하기 위한 Encoding 방식이 원핫인코딩이다. 같은 예에서 다음과 같다. 강아지 → 1000 고양이 → 0100..
https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr [문제 설명] 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은..
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr [문제 설명] 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solut..