글쟁이, 코딩한다

0104/ K_digital 19일차 / SQL, AI 입문 본문

나는 코딩도 한다/TIL

0104/ K_digital 19일차 / SQL, AI 입문

Algori 2021. 1. 4. 20:55

0.

  한 해 지나서 돌아왔음!

 

SQL


1) JOIN

  
 INNER JOIN A ON B 교집합
 LEFT JOIN A ON B 메인 테이블 중심으로 집합

 

#WHERE문 앞에 온다 #FROM 테이블에 JOIN 테이블을 가져다 붙이는 개념 

#셀프 조인 : 작업 테이블의 복제본이 있다고 상정하고 같은 테이블에 대해 JOIN 작업 / 활용상황이 그리 많지는 않다 


2) GROUP BY

  GROUP BY한 열을 기준으로 묶어줌(pandas의 pivot table 참고)

#HAVING : GROUP BY한 결과물을 바탕으로 조건 등을 불러줌(GROUP BY한 결과물만 다룬다)(조건문 WHERE와 흡사)
  ##GROUP BY 전에 미리 WHERE로 조건을 찾아주면 연산 과정 축소 => 하지만 WHERE는 집계함수 연산을 할 수 없음

 

#agg function(집계 함수) : SUM 합계 / AVG 평균 / COUNT 개수 / MAX/MIN 최대값/최소값 / ROUND 반올림

 

3) SUBQUERY

  ( )안 또 다른 조건문을 추가로 적용 (제한적인 정보로 데이터에 접근할 때) 
 #FROM, WHERE문 등 다양하게 사용할 수 있다

 

 

인공지능(AI, Artificial Intelligence)

 

=자신을 둘러싼 환경을 지각/인식하고
=적절한 행동을 취해
=목표를 성취할 가능성을 높이는 기계(의 지능)

#완성될 수 있는 "기술"보다는 하나의 "패러다임" #머신러닝은 AI를 발전시키는 유능한 방법 중 하나 


"인공지능을 적용했다"는 말을 확인할 때는
  => 어떤 데이터를 활용했는가 (정형데이터, 비정형데이터...)
  => 어떤 모델을 만들었나 (분류 기준, 추세 예측, 인공신경망...)
  => 모델을 적용해 어떤 기능을 만들었나 (알파고, 스마트스피커...)

#최근에는 모델->기능의 순서가 아닌, 고객 니즈를 반영한 기술->모델 개발 순서가 부각.

 (ex. 스마트스피커에 어떤 기능을 추가해야하는가? -> 대중의 니즈를 파악해 기능을 확정 -> 기능을 구현할 모델 개발) 


*모델

다루고 있는 데이터의 그물망을 가장 잘 표현할 수 있는 어떤 설명 방법  #algorithm = model = function 

 

  학습(learning)이란. 데이터를 가장 잘 설명하는 모델을 찾는 과정 : 옷을 입어보는 과정

     #학습의 과정

  1. 초기 모델에 데이터 삽입
  2. 결과 평가
  3. 수정 1 ) 모델의 모양과 위치에 영향을 주는, 바뀔 수 있는 모든 변수들 : parameter(세타) 변경 
           2 ) 다른 모델을 쓴다. 함수, 알고리즘 등등 (모델 선택 자동화는 연구중) 

    => 실제 정답과 예측 결과 사이 오차를 줄여나간다.  

 

머신러닝

 

데이터를 부어주면 부어줄수록, 점점 나아지는 AI


명시적으로 프로그래밍하지 않고도, 컴퓨터가 데이터로부터 학습할 수 있는 능력을 준다 / 아서 사무엘 경 
작업 T를 기준 P로 측정했을 때, 경험 E로 나아졌다면, 프로그램은 작업 T에 있어 기준 P로 봤을 때, 경험 E로 "배웠다"(원본 문장은 더 길고 정확하다) / 톰 미첼

 

지도학습(Supervised Learning, 교사학습) 
 #데이터를 정답과 함께 준다
 #머신은 받아들인 데이터와 연속성을 가진 정답을 예측한다 #좋은 함수 하나를 추정해내는 것이 주요목적

  output 형태에 따라

  -분류(classification, 분류모델)와 회귀(regression, 정확한 예측값)

비지도학습(Unsupervised Learning) 
 #데이터(X데이터)만 준다
 #받아들인 데이터에서 숨은 규칙성을 찾는다
  -군집(clustering, 비슷한 형태로 묶기)과 차원 축소(dimensionality reduction, 열 줄이기)

강화학습(Reinforcement Learning)
 #sequential(연달아 일어나는) decision making
 #상태를 인식->행동의 집합->보상을 학습->행동 선택의 정책 찾기 #아직 게임 AI 등을 제외하고는 널리 쓰이지 않음.

 

#모델 찾기 최적화 과정

어떤 기준?

Model's Capacity(모델의 포용력, 모델이 품어낼 수 있는 복잡함)이 극대화되면 => Overfitting(제시 데이터에 너무 꼭 맞춰진 상태)이 발생한다 => Generalization Error(일반화 에러, 새로운 데이터에 대한 에러)가 늘어난다

  ! 제시 데이터와 에러가 적다고 다는 아니다: 모델은 새로운 데이터들에 대한 예측을 위해 만든다

 

  새로운 데이터들에게도 좋은 결과를 내려면?
     ==>
          1 교차 검증(Cross Validation, CV) : 데이터를 training(학습), validation(최적화/비교), test(평가)로 나눠 검사
          2 K-Fold CV : 후보 모델간 비교 및 선택을 위해 쓴다

          3 Training 데이터를 많이 확보하는 것도 좋은 방법

          ...

 

 

오늘의 (다음) 공부할 것

 

NoSQL 

SQL 내지는 RDBMS가 아닌 데이터들 
#특징 : 관계형 모델을 쓰지 않는다 따라서 열, 데이터타입 등이 없다=> 데이터들을 때려붓는다

#종류 : 키-밸류(Redis), 도큐먼트(MongoDB), 와이드컬럼, 그래프 등 
#약점 : sorting, join, grouping, range query, index 등을 활용할 수 없다 
#주의 : NoSQL과 RDB는 대립이 아니다. 서로를 보완하는 관계로 쓸 수 있음.

 

장바구니 분석

 

오늘의 공부 방향

 

AI 분야에서는 모델을 만드는 것, 보다는 모델 판별 능력을 기르자. 이어 모델을 엮어 기능을 개발하는데 활용해보자.

 (AI를 적용하는 웹 콘텐츠 기업 사례 찾기-가능하다면 모델도) 

 

오늘의 되돌아보기

 

1) 연휴 기간, 두 가지 이상 공부하자는 약속은 지켰다. 하지만, 프로그래밍 관련 공부는 논외였다는 것이 문제.

2) 아침에 좀 더 정신을 차려보자.

Comments