반응형

이번주는 '데이터 분석이 무엇인가', '다양한 산업에서 데이터 분석은 어떻게 활용되는가' 에 관한 내용을 공부했습니다. 분석에 앞서 배우는 개요 느낌이라 어려운 점은 없었고, 깔끔하게 애니메이션으로 동영상이 구성되어 있어 보는데 좋았습니다.

 

1. 데이터 분석 :
  데이터 분석에 관련된 직무는 Data Engineer, Data Analyst, Data Scientist로 나눌 수 있습니다. 작은 회사는 데이터 관련 인원이 많지 않기 때문에 세분화되지 않을 수 있지만, 큰 회사일수록 세분화되어 직무를 뽑습니다. 관련 내용은 유투브에 찾아보시면 더 자세히 알아볼 수 있습니다.

데이터 분석 과정은 아래와 같이 구분해볼 수 있습니다.



1. 데이터 분석가 :

분석 주제 발굴, 가설 수립, 샘플링 및 정제, 결과 해석의 업무를 수행하고 필요한 역량은 아래와 같습니다.

* 필요 역량
1) 통계 지식
2) Mathematics
3) R, 파이썬, 엑셀 등의 분석 툴 활용
4) Business Knowledge
5) 커뮤니케이션 역량(리포트, 글쓰기, 데이터 시각화)

2. 데이터 엔지니어

프로세스 설계, 시스템 개발, 운영 적용 및 모니터링, 분석 데이터 수집, 샘플링 및 데이터 정제 작업을 수행하고, 필요 역량은 아래와 같습니다.


* 필요 역량 :
1) 컴퓨터 엔지니어링
2) 개발 능력
3) 데이터 저장 기술
4) 웹 등 시스템화 관련 기술
5) 데이터 수집 기술(빅데이터)
6) 분산 파일 시스템, 분산 컴퓨팅 등의 빅데이터 기술 요소 이해
7) 클라우드 기술

3.  데이터 사이언티스트 :
  데이터 사이언티스트는 데이터 분석 능력뿐만 아니라 빅데이터 활용능력, 머신러닝을 활용한 분석 능력도 필요로 합니다.

* 필요 역량 :
1) Business Knowledge
2) 통계학 및 기계학습
3) 호기심
4) R, Python 등의 Programming skills
5) Big Data 기술 이해
6) 시각화

4. 현업에서의 데이터 분석 사례 : 공공데이터
  공공데이터는 환경, 수출 등 무수히 많은 데이터가 축적되고 있고, data.go.kr과 같은 사이트에서 찾아볼 수 있습니다.


5. 현업에서의 데이터 분석 사례 : 제조업
제조업 데이터는 경우 변수 개수가 상당히 많습니다. 제조 공정별로 변수가 여러가지가 생성되기 때문에 중요 변수들을 잘 추출하여 분석하는 능력이 중요합니다.

  
1) 다중공선성 : 독립변수들간에 높은 선형관계가 존재하는 경우를 뜻하는 말로, 다중공선성이 높은 경우에는 변수를 적절히 제거할 필요가 있습니다.
2) 불균형 자료(예 : 양품 vs 불량 비율) : 대부분 제조업의 경우 불량 분석을 위해 빅데이터를 활용하는데, 양품의 비율이 불량의 비율보다 월등히 높습니다.(그렇지 않으면 이익이 나지 않겠죠?) 따라서 데이터의 불균형이 매우 심합니다.

5. 현업에서의 데이터 분석 사례 : 통신/마케팅

 

통신, 마케팅 분야에서는 데이터를 활용하여 아래와 같은 작업을 수행합니다.


1) 상품 추천
2) 영화 추천
3) 상권분석 및 매장분석

사용 알고리즘 : 
연관규칙 알고리즘 : 특정 상품을 살때 어떤 상품을 같이 사는지 분석
협업필터링 : 비슷한 사람들을 분류하여 비슷한 마케팅 진행

6. 현업에서의 데이터 분석 사례 : 금융/보험

 

금융/보험 분야에서는 데이터를 활용하여 아래와 같은 작업을 수행합니다.

 

1) 고객이동경로분석
2) 신용평가
3) Fraud Detection System
4) 운전 습관을 통한 보험료율 책정/할인
5) 건강 관리를 통한 보험 할인
6) 보험 사기 방지

제약 사항 : 고객정보 공유 규제(유출 시 막대한 피해)

7. 현업에서의 데이터 분석 사례 : 헬스케어

 

금융/보험 분야에서는 데이터를 활용하여 아래와 같은 작업을 수행합니다.

 

1) 질병 감시/예측 서비스
2) 의료 빅데이터 및 AI : DNA, 진단정보, 의료차트 등을 활용한 예측 서비스 및 Computer Vision을 활용한 판정
빅데이터와 AI를 활용한 신약 후보물질 제안

 

이상 [데이터 분석 입문 : 올인원 패키지] 의 6주차 수강 후기를 마무리합니다.

반응형
반응형

  지금까지 2,3,4주차를 통하여 데이터 분석에 사용되는 기초지식 [기초통계, 머신러닝]에 대해 알아봤습니다. 이제 이 지식들을 사용하여 데이터를 분석해봐야 하는데, 우리에겐 주어진 데이터가 없습니다. 도대체 이 데이터들은 어떻게 누가 만드는 것일까요? 데이터 분석가가 분석할 수 있도록, 혹은 내/외부의 필요에 의해 데이터를 수집하고 정제하는 데이터 엔지니어들이 있습니다. 이번 5주차는 데이터 엔지니어들의 업무인 데이터 엔지니어링에 대해 학습해볼 예정입니다.

 

1. 크롤링(Crawling)
다양한 정보들을 활용하기 쉽도록 수집하는 행위(혹은 Scraping)

(엄청 간단하게 한 문장으로 표현했지만 크롤링은 온라인 상에 존재하는 다양한 정보들을 원하는대로(능력이 된다면) 긁어올 수 있는 꽤나 유용한 기술입니다. 크롤링에 관한 서적이 많으니 궁금하신분은 책을 하나 사서 따라해보세요.)


2. ETL(Extract, Transformation, Loading) :
  내/외부의 데이터를 추출하고, 이를 필요에 맞게 변환한 후 저장하는 일련의 절차입니다. 

ETL은 데이터 웨어하우스라는 데이터 저장을 위한 데이터 구조를 만드는데 매우 중요한 과정입니다. 
* ETL 오픈소스 도구 : Talend, Pentaho, KNIME, Apache NIFI, StreamSets.... 


* ELT(Extract, Loading, Transformation)
 : ELT에서 Loading과 Transformation의 순서를 바꾼 것으로
1. 데이터 크기가 너무 크거나
2. 변환 과정이 너무 오래걸리거나
3. 변환 과정이 추후 활용하는 단계에서 쓰인다.

3. 정형데이터 / 비정형데이터 / 반정형데이터

1) 정형 데이터(Structured Data)
 : 열과 행을 정리하여 일목요연하게 표로 만들 수 있는 데이터

2) 비정형데이터(Unstructured Data)
 : 형태를 정의할 수 없는 데이터
ex) 영상, 음성, 텍스트

3) 반정형 데이터(semi-structrued data)
 : 각 의미를 구분할 수는 있지만 행과 열 형태의 표로 쉽게 정리가 어려운 데이터
ex) JSON, XML, HTML

4. Data Warehouse vs Data Lake


1) 데이터 웨어하우스 : 사용자의 의사 결정에 도움을 주기 위하여, 여러 시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스

* 형성된 데이터 웨어하우스에서 각 주제별 데이터 마트를 만들 수 있습니다. 데이터의 수집부터 정제, 인사이트 도출까지의 과정을 아래와 같이 간단히 나타낼 수 있습니다. 

ETL -> EDW(Enterprised Data Warehouse) -> Mart -> BI Analytics

[ 데이터 웨어하우스의 단점 ]


1) 각기 다른 시스템에서 많은 데이터를 가져와야 하기 때문에 ETL에 많은 부하가 가중된다.
2) 각각 다른 형태의 데이터들을 합치므로 매우 복잡한 과정을 거친다.(중복 데이터 관리도 힘들다.)
3) 대량의 데이터 유지 비용이 든다.
4) 비정형데이터는 정리되어 저장되지 못하는 경우 삭제될 수 있다.

2) 데이터 레이크 : Data Warehouse의 정보 분석 한계를 개선하기 위해 생긴 데이터 저장 개념 ,


Data Warehouse → 정형데이터를 가공하여 저장

Data Lake 정형, 비정형, 반정형데이터를 모두 원천의 형식으로 모두 저장

4. 데이터스트림 vs 배치
 : 데이터는 적재 유형에 따라서도 구분이 가능합니다. 데이터의 적재 유형에 따라 데이터 처리 방법 또한 달라집니다. 

* 데이터 적재 유형
1) Bounded Data
 : 일단 저장되면 이후 변화가 없는 데이터, 묶어서 한번에 일괄 처리한다. 
ex ) 월별매출 데이터...
2) Unbounded Data
 : 지속적으로 적재되어 끝을 지정할 수 없는 데이터
→ 주기적 처리 또는 실시간 처리
ex ) 시스템 로그 데이터, 주식 가격 변동 데이터


1) 배치 처리(Batch Processing) 
 : 대량의 데이터를 특정 시간 단위로 끊어서 처리
(시간별, 월별 등등)

 


2) 스트림 처리(Stream Processing)
 : 연속성 있는 데이터 처리
ex ) unbounded data 가 들어오면 실시간으로 필터링 등의 방법으로 처리하여
필요한 데이터만 생성하게 된다.

Micro Batch : 배치의 주기나 데이터 크기를 매우 작게 설정하여 실시간에 근접하게 처리하는 것

6. Data Workflow
 : 데이터 처리의 작업 절차

*DAG(Directed Acyclic Graph)
 : 방향성 비순환 그래프, 순환 구조가생기면 안된다.

*Apache Oozie
*Apache Airflow(파이썬 가능)

7. 컴퓨터 클러스터
 : 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합
 - 물리적으로는 여러 대의 컴퓨터이지만 외부 사용자는 마치 한 대의 컴퓨터인 것처럼 사용 가능하다.

* 클러스터의 구성요소 : 
- Node(Master + Slave)(서버)
- Network
- OS
- Middleware

*목적 : 분산 컴퓨팅 기술을 활용한 우수한 성능

* SPOF(Single Point of Failure)
 : 단일 장애지점의 약자로, 시스템 구성 중에 한부분이 동작하지 않으면 전체 시스템이 중단되는 요소를 뜻한다. SPOF는 클러스터에 매우 치명적이다.


*HA(High Availability)
 : 고가용성, 서버와 네트워크, 프로그램 등의 시스템이 지속적으로 운영이 가능한 성질

 

→ 클러스터에서는 SPOF가 없어야 하며, HA가 유지되어야 한다.

8. Scale Up & Scale Out

1) Scale Up : 서버 자체 RAM, CPU, Disk 등의 구성요소 자체를 업그레이드하여 컴퓨팅 성능을 향상시키는 방법
2) Scale Out : 네트워크 상의 컴퓨터 수나 서버 수를 늘려 컴퓨팅 성능을 향상시키는 방법


9. SQL(Structured Query Language)
 : 관계형 데이터베이스의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. 데이터베이스에서 정형 데이터분석을 위한 필수 요소이다.

* 관계형 데이터베이스
 : 키와 값들의 간단한 관계를 테이블화시킨 매우 간단한 원칙의 전산정보 데이터베이스

*DDL (Data Definition Language)
 : 관계형 데이터베이스에 테이블 구조를 정의하고 생성하거나 기존의 테이블의 구조 변경 또는 삭제하는 명령어

#데이터베이스마다 언어가 조금씩 다를 수 있으니 주의하도록 하자.
*DML(Data Manipulation Language) 
 : 데이터베이스의 테이블에 들어있는 데이터들을 조회하거나 변경하는 명령어

*DCL(Data Control Language)
 :  데이터베이스에 있는 테이블에 대한 사용권한 부여나 회수를 위한 명령어

* TCL(Transaction Control Language)
 : 트랜잭션 제어 언어

#트랜젝션 : 수행 결과에 완전성을 보장하는 단위

10. 하둡(Hadoop)
 : Open Source Java Software Framework
* 구성요소 : 하둡 분산 파일 시스템(HDFS : Hadoop Distributed File System, 저장 기능), 맵리듀스(연산 기능)

1) HDFS 
 : 하둡의 분산형 파일 시스템

- Name Node : 파일의 메타정보를 관리
- Data Node : 실제 데이터를 저장하고 내보내는 역할

 

#Metadata : 데이터에 관한 구조화된 데이터로, 다른 데이터를 설명해 주는 데이터이다. 대량의 정보 가운데에서 
찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대하여 부여되는 데이터이다. 


2) MapReduce
 : Map과 Reduce라는 두 개의 함수의 조합으로 분산/병렬 시스템에서 데이터를 처리하는 프레임워크이다.
- Map : 나누어진 단위에서 계산
- Reduce : Key 별로 병합

 


11. Spark
 : In-Memory 기반 Open Source Cluster Computing Framework
분산환경에서 동작하는 메모리기반의 데이터처리 오픈소스

- Hadoop의 MapReduce와 유사한 역할을 하지만 Memory 활용을 극대화했기 때문에 연산속도가 월등히 빠르다.
- 최근에는 Memory 가격이 많이 저렴해졌고, H/W성능이 많이 올라가서 MapReduce보다 Spark를 선호한다.
- Scala, Python으로 개발이 가능하다.

* RDD(Resilient Distributed Datasets)
 : 스파크에서 활용되는 내부 데이터 모델


- 병렬처리가 가능
- 장애가 발생할 경우에도 스스로 복구한다.
- 한번 생성되면 바뀌지 않고 다른 형태의 변환이 필요할 경우 새로운 RDD를 만들어냄
- 장애시 RDD 진행 절차를 기억했다가 그대로 수행하여 빠르게 복구한다.




 

< 하둡과 스파크 비교 >

 

< 하둡과 스파크 비교 >


12. Hive
 : 하둡 기반의 데이터 웨어하우스 소프트웨어
- SQL 기반의 데이터 요약, 질의 및 분석 기능을 제공한다.



- 하이브 활용 이유 : SQL을 활용하여 쉽게 코딩 가능하다.
하이브 외에도 presto, Apache Drill 등의 다른 SQL on Hadoop 프로그램들이 있다.

13. NoSQL(Not Only SQL)

 

* NoSQL DB의 등장 배경 :  
- 관계형 데이터베이스의 한계점 도달 
 : 전통적인 관계형 데이터베이스는 테이블 간 관계를 통하여 다양한 데이터 조회가 가능했지만, 빅데이터 시대의 도래에 따라 대량의 데이터 적재에 따른 비용증가, 처리성능 한계라는 문제점 생겼다. 데이터 확장에도 많은 비용이 듦. 

→ 관계형 데이터베이스의 일부 기능을 포기하더라도 확장에 유연하면서 저장/조회에 높은 성능이 요구되었다. 

 

* 특성 :

- 고정형 Table, Schema 불필요
- 적재와 조회에 성능 최적화
- 테이블 간 관계형 설정 지양( Join 사용할 경우 성능 저하 )
- Scale Out을 통한 수평적 규모 확장이 가능
- 분산형 Database

* CAP 이론
- 분산 시스템에서 세 가지 속성을 모두 만족할 수 없다는 이론
- 일관성(Consistency) : 모든 사용자가 같은 순간에 같은 데이터를 볼 수 있다.
- 가용성(Availability) : 모든 클라이언트는 항상 읽기 / 쓰기가 가능하다.
- 분할성(Partition Tolerance) : 시스템이 물리적 네트워크로 분할된 상태에서 정상 동작한다.

* 관계형 데이터베이스의 특성 : ACID
 트랜잭션이 안전하게 수행되는 것을 보장하기 위해 관계형 데이터베이스가 가져야 하는 특성
- 원자성(Atomicity) : 한 트랜잭션 안의 모든 작업은 모두 성공하거나 실패해야 한다.
- 일관성(Consistency) : 한 트랜잭션이 성공하면 모든 데이터는 동시에 일관된 상태로 유지된다.
- 고립성(Isolation) : 한 트랜잭션이 수행되는 동안 다른 트랜잭션이 수행될 수 없다.
- 지속성(Durability) : 트랜잭션이 성공하면 해당 최종 상태는 영원히 반영되어야 한다.

* No SQL의 특성 : BASE
- Basically Available : 데이터는 어떠한 경우에든 항상 활용될 수 있다.(ACID의 고립성과 대립되는 특성)
- Soft-State : 분산 노드 간 업데이트는 데이터가 노드에 도달한 시점에 갱신
- Eventual Consistency : 일관성을 제공하되 모든 노드에서 동시에 보장되지는 않음
                                 시간이 지나면 일관성이 보장되는 '지연된 일관성'을 보장한다.(ex : 핸드폰으로 페이스북 업데이트했는데 PC에서는 바로 보이지 않을 수 있음, 최종적으로는 일관성이 유지되나 시간차가 존재할 수 있다.)

* NoSQL의 활용
- 실시간 대용량 데이터 적재 필요시
- 테이블 간 Join 등의 처리가 거의 없는 경우
- 추후 DB 확장이 유연해야 하는 경우
* NoSQL의 주의점
- No SQL 특성에 맞는 Table 설계가 매우 중요하다. 관계형 데이터베이스와 전혀 다름.
- 테이블 간 Join을 할 경우 성능 저하 심하다.
- 유지보수에 따른 운영 인력 확인 필수

반응형
반응형

패스트캠퍼스 데이터분석 올인원 패키지 4주차 수강 후기입니다. 이번 주차는 머신 러닝 중 인공신경망을 활용한 기법인 딥러닝에 관한 강의였습니다.

 

1. Perceptron
 : 생물학적 뉴런을 모방하여 만든 인공신경망의 기본 단위

 

< 실제 뉴런과 Perceptron의 비교 모습 >

 위와 같이 a,b라는 input을 받아서 합친 뒤 activation function을 통과하여 최종 출력을 내보내는 것을 볼 수 있습니다.(이 결과는 다음 Perceptron(혹은 뉴런)으로 전달되거나, 최종 Output으로 출력됩니다.)

2. 딥러닝
 : Deep Neural Network를 이용한 Machine Learning 방법

  아래 그림과 같이, Neural Network는 Input Layer, Hidden Layer, Output Layer로 구성됩니다. Input Layer와 Output Layer는 하나지만, Hidden Layer는 여러개일 수 있고, Hidden Layer가 2개 이상일 때 Deep Neural Network이라고 합니다. Hidden Layer가 늘어날수록, 더 정교한 모델을 만들 수 있지만, 계산량의 증가와 Overfitting을 항상 주의해야 합니다.

 

* 각각의 Node들을 하나의 Perceptron이라고 생각하시면 됩니다.


3. Gradient Descent

 

1) Weight(가중치)

 

* 가중치 :

  위의 그림의 Hidden Layer의 각 Node(동그라미)들은 모두 가중치라는 값을 가지고 있습니다. 이 값들은 각 Node들의 결과값에 곱해진 후 다음 노드로 전달됩니다. Neural Network는 데이터를 사용하여 이 가중치들을 최적의 값으로 Update하는 것이 목표입니다.

 

1.1) 가중치 초기화 #가중치의 초기값은 어떻게 설정할 것인가? 

 : 위에서 말했듯이, 가중치는 각 Node들의 결과값에 곱해집니다. 데이터를 사용하여 이 가중치의 값들은 Update(학습)되지만, 초기값을 설정해주는 것이 학습에 많은 영향을 끼칩니다. 예를 들어 0으로 Initialize 할 경우에는 뒤의 Node들로 전달되는 결과값들이 모두 0일 것이므로 학습이 되지 않을 것이고, 너무 큰 값으로 초기화하는 경우에도 학습이 제대로 되지 않을 수 있습니다. 가중치를 초기화하는데 주의해야 할 점은 가중치가 너무 작아져서 학습이 안되거나(Vanishing Gradient), 너무 커져서 학습이 안되는 경우(Exploding Gradient)를 방지해야 한다는 것입니다.


[1] Random Initialization : 말 그대로 Random하게 가중치를 초기화하는 것입니다. 하지만 가중치들을 말그대로 Random하게 초기화하는 것은 학습에 나쁜 영향을 미칠 수 있습니다. 따라서 Xevier Initialization이나, He Initialization등의 방법으로 적절한 분포를 가지는 범위 내에서 Random하게 가중치를 초기화하는 방법도 사용됩니다.

 

1.2) Loss Function(Cost Function)
 : Input Layer, Hidden Layer를 거쳐 최종적으로 Output Layer에 도착한 결과값은, Loss Function이란 함수에 넣어져 실제 값과의 차이를 계산하게 됩니다. 이 결과값이 오차이고, 이 오차를 줄이기 위하여 Loss Function을 미분하여 Loss Function을 감소시키는 방향으로 가중치를 Update하는 것이 Gradient Descent 입니다.

4. Mini-Batch 학습법
 : 
Batch / Stochastic / Mini-batch GD
4.1) Batch Gradient Descent : 모든 Data에 대해서 Loss를 계산하여 다 더하고 이를 이용해서 Gradient Descent 진행
4.2) Stochastic Gradient Descent : Data를 1개만 뽑고, 그 Data에 대한 Loss가 대표값을 가진다고 생각하고 Gradient Descent 진행
4.3) Mini-Batch Gradient Descent : Batch/Stochastic의 중간 형태로 data를 n개 sampling한 뒤 그 n개 data에 대한 loss를 계산하여 다 더한 뒤 이를 이용하여 Gradient Descent 진행

5. back propagation : 역전파
  Neural Network는 주어진 데이터를 활용하여 가중치를 Update함으로써 최적의 모델을 만듭니다. Output Layer에서 구해진 오차를 활용하여 가중치들을 Update해야 하는데, Update하는 방법이 역전파입니다. 역전파는 아래의 그림과 같이 각 단계별로 관계식을 구한 후 미분한 뒤, 이 미분값들을 모두 곱하여 Loss Function을 가중치로 편미분한 값을 구할 수 있습니다.

https://medium.com/spidernitt/breaking-down-neural-networks-an-intuitive-approach-to-backpropagation-3b2ff958794c



6. overfitting(과적합) : 
  모델을 학습시킬 때 일반적으로 데이터셋을 train, validation, test라는 세가지 데이터셋으로 나눕니다. Training set으로 학습시킬 때의 Error를 training error, Test Set의 데이터를 입력했을 때의 오차를 test error라고 하는데, 이 두가지 변수는 항상 동일한 것은 아닙니다. (이상적으로는 Training Error와 Test Error가 동일해야 합니다.)
  Training Set을 활용하여 학습하는 동안 training error가 너무 낮아지면, 모델이 새로운 데이터(Test Set)에 대해 반응을 못하여 test error가 높아질 수 있습니다. 이런 경우를 overfitting이라고 합니다. 이와 반대로 아예 학습이 잘 되지 않아 Training Error가 높은 경우를 underfitting 이라고 합니다. 

7. CNN
convolutional network는 컴퓨터비전에 활용되는 Deep Neural Network입니다.

Input 데이터를 convolution layer - pooling layer - fully connected layer를 통과시켜 최종 분류합니다.

 

https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53


8. Recurrent Neural Network
* Sequence is important ! : 사람의 말을 해석할 때, 아래 글과 같이 앞뒤의 문맥을 이해하고 있는 것이 중요합니다. 아래 사진의 두 문장을 보았을 때 뒤의 문장은 동일하게 '이 영화 꼭 보세요!' 지만, 앞의 내용에 따라 완전히 다르게 해석될 수 있는 것을 알 수 있습니다. 이처럼 자연어 처리에서 언어를 해석할 때, 문맥이란 개념을 도입하기 위해 사용하는 Neural Network이 RNN입니다.


RNN은 아래 그림과 같이 Network들이 Sequence를 가지고 연결되어 있습니다. 이런 방식으로 앞의 해석 결과가 뒤의 해석 결과에도 영향을 미칠 수 있는 것입니다.

하지만 RNN은 아래와 같은 문제들을 가지고 있고, 이 문제들을 해결하기 위한 방법들도 어느정도 제시되어 있습니다.


문제 )
1. Sequence가 길어지면 성능이 떨어진다.
2. Sequence가 길어지면 학습이 잘 안된다.
3. 오래전 입력에 대해서는 기억을 잘 못한다.

-> 해결방법 LSTM, GRU
LSTM(Long Short Term Memory)
GRU(Gated Recurrent Unit)
( 자세한 내용은 https://blog.naver.com/koys007/221528966460 를 참고하세요.)


9. GAN(Generative Adversarial Network)


비지도학습의 한 종류로, 서로 대립하는 두 신경망(모델)을 경쟁시켜서 좋은 성능을 얻어내는 Deep Learning Algorithm 입니다. 아래 그림과 같이 하나의 생성 모델, 하나의 분류 모델이 있다고 가정해봅시다. 생성모델에서는 가짜 지폐 데이터를 생성하고, 분류모델에서는 이 데이터를 진짜/가짜로 분류합니다. 이 과정을 계속 반복하면서, 점점 더 정교하게 성능을 향상시키는 것입니다.

(자세한 내용은 https://m.post.naver.com/viewer/postView.nhn?volumeNo=16566740&memberNo=36733075&vType=VERTICAL를 참고하세요.)

 


10. Tensorflow vs Pytorch
Deep learning 의 대표적인 두가지 Framework로 특이사항은 아래와 같습니다. 저는 쓸데없는 고민을 정말 많이 하는 편인데요, 언어든 프레임워크든 고민하지 말고 아무거나 유명한 것들 중 하나를 제비뽑기로 뽑아서 빨리 시작해보는 것이 제일 좋은 방법 같습니다. 이것으로 4주차 학습일지를 마칩니다.

 

반응형
반응형

패스트캠퍼스 학습일지 3주차입니다. 4주차의 내용과 상당히 많이 겹쳐있는데 왜 나누어져있는지 잘 모르겠네요.

 

[머신 러닝]

 : 컴퓨터가 데이터를 학습하는 알고리즘과 기술의 통칭

 

1. 지도학습(Supervised Learning)

 : 입력 데이터(X)와 타겟값(Y)를 알고 있는 데이터를 학습하여, 이들의 관계를 모델링하는 방법

 

지도학습은 타겟변수(Y)의 형태에 따라 두 가지로 나뉠 수 있다.

1) 분류(Classification)

 : 타겟변수 Y가 불연속형 변수(Discrete Variable)인 경우, 입력값(X)이 주어질 때 해당 입력값이 해당되는 클래스(Y)를 예측한다.

 

ex) 스팸 메일 분류, 얼굴 인식


2) 회귀(Regression)


 : 타겟변수 Y가 연속형 변수(Continuous Variable)인 경우 입력값 x가 주어질 때 해당 입력값과 매칭되는 Y값을 예측한다.

ex) 주가 예측

 


2. 비지도학습


 : 타겟값(Y)이 없는 입력 데이터만이 주어질 때 학습하는 방법(입력 데이터에 내재되어 있는 특성을 찾아내는 용도)

1) 군집화(Clustering) : 유사한 포인트들끼리 그룹을 만드는 방법
2) 잠재 변수 모델(Latent Variable Model) : 표현된 데이터 속에 내재되어 있는 요인을 찾는 것
ex) 주성분 분석, 특이값 분해, 비음수 행렬 분해, 잠재 디리슐레 할당....
3) 밀도 추정(Density Estimation)
 : 관측된 데이터를 이용하여 데이터 생성에 대한 확률밀도함수를 추정
4) 이상치 탐지
- 사진 넣기
5) 인공신경망 기반 비지도학습(ex : GAN)


3. 강화학습

 

 : 자신이 한 행동에 대한 "보상"을 바탕으로 목적을 달성하는 학습


4. 인공신경망과 딥러닝


1) 신경망 모델(Neural Networks) : 인간의 뉴런의 작동방식을 모방하여 만든 머신러닝 기법 중 하나의 부류

 

5. 파라미터와 하이퍼파라미터

* 파라미터 : 모델의 구성요소이자 데이터로부터 학습되는 것 ex)가중치, ..
* 하이퍼파라미터 : 모델 학습 과정에 반영되며, 학습을 시작하기 전에 미리 값을 결정하는 것
ex) 노드의 수, 학습률 ...


6. 손실함수(Loss Function)


 : 학습 알고리즘이 작동하게끔 하는 원동력, 손실함수의 결과값을 줄여나가는 것이 모델의 목표
ex) 교차 엔트로피, 평균 제곱 오차


7. 학습, 검증/개발, 테스트 셋

한정된 데이터를 학습/검증/테스트에 모두 활용하기 위하여 데이터셋을 아래와 같이 나누어 개발을 진행합니다.


* 학습 셋 (Training set) : 모델의 학습 과정에 사용, 파라미터 추정을 위해 소모됨
* 검증/개발 셋(Validation / Development Set) : 학습 과정에서 하이퍼파라미터를 튜닝하는데 사용
* 테스트 셋 : 생성된 모델의 예측 성능 평가

주어진 데이터를 위와 같은 셋들로 나눠야하는데 나누는 방법은 매우 다양하다.
ex) 3-way holdout, 교차 검증
 : 고려해야 할 사항 -> 데이터 수가 충분한가? Training, Validation, Test Data set의 데이터분포가 모두 동일한가?

이상 간단한 [데이터분석 - 인공지능 - 3주차] 복습이었습니다.

반응형
반응형

 

데이터분석 올인원 패키지 _ 2주차 학습 내용을 공유합니다.

이번주에 학습한 내용은 기초 통계에 관한 내용입니다. 데이터 분석은 아래 사진과 같이 여러 학문 분야의 스킬셋을 필요로 합니다. 데이터를 처리하고 분석할 수 있는 소프트웨어 스킬셋, 목적을 세우고 그에 맞게 분석 계획을 수립할 수 있는 통계학적 지식, 데이터에 대한 배경 및 전문지식을 필요로 합니다. 데이터 사이언스분야의 공부를 위한 학습 목록들을 찾아보면, 파이썬/R 코딩, 통계학, 선형대수학과 같은 과목들을 필수적으로 추천하고 있는 것을 볼 수 있습니다.

 

데이터 분석라는 분야는 기존에도 존재했지만, 데이터가 점점 더 방대해지고 인공지능과 같은 새로운 분석기법들이 등장함에 따라 더 주목받고 있습니다. 그래서 데이터 사이언티스트들의 학력을 보면 통계학과, 컴퓨터사이언스 출신이 대부분이라고 합니다.

우선 이번주에는 간단한 기초 통계에 대해 학습한 내용을 복습해 보겠습니다.

[ 기초 통계학 ]

1. 기술통계 : 수집한 자료를 분석하여 대상들의 속성을 파악하는 통계방법

 

​* 여기서 말하는 기술의 의미는 아래와 같습니다.

(1) 넓은 의미로는 사물 혹은 대상의 특징을 조직적으로 밝혀 나타내는 것. (2) 좁은 의미로는 오직 경험적 사실의 특징으로 나타나는 것들을 관련지어 단정적으로 묘사하는 것.

 

* 중심경향값 : 전체 자료를 대표하는 수치

- 평균(mean) :

http://blog.naver.com/PostList.nhn?blogId=freewheel3

- 중앙값(median) : 최대값과 최소값의 정가운데 수치

- 최빈값(mode) : 가장 많은 빈도를 보이는 자료값

* 분산도 : 전체 자료가 얼마나 퍼져있는지 설명하는 수치

- 분산 :

http://blog.naver.com/PostList.nhn?blogId=freewheel3

- 표준편차 :

http://blog.naver.com/PostList.nhn?blogId=freewheel3

* 상관계수 : 두 변수 간 선형적 관계의 크기(1에 가까울수록 양의 상관관계가 크고, -1에 가까울수록 음의 상관관계가 크다.)

* 회귀계수 : 독립변수(원인)이 종속변수(결과)에 미치는 영향의 크기

2. 추리통계 : 모집단에서 표본을 추출하고 표본의 기술통계를 통해 모집단의 특성을 추측하는 것

표본의 기술통계를 통해 모집단의 특성을 추측했을 때, 이 추측이 100% 맞진 않습니다. 따라서 우리는 신뢰구간이란 것을 정하여, 모집단의 특성이 표본을 통해 얻은 추측 범위 안에 들어갈 구간과 그 구간 안에 모집단이 들어갈 확률을 구합니다.

- 신뢰구간 : 추리통계에서 예측한 모집단의 특성이 위치할 가능성이 높은 구간

- 신뢰수준 : 신뢰구간에 모집단의 특성이 위치할 확률

[ 모집단과 표본 ]

1. 모집단 : 연구 또는 분석의 전체 집단

* 모집단은 실시간으로 변하는 경우도 있어 모집단 전수 조사는 매우 어렵다.

2. 표본 : 모집단에서 추출한 일부로, 모집단의 속성들을 유추하는데 사용된다.

* 변동 : 표본평균과 모평균의 차이

* 모집단과 표본은 평균/분산/표준편차를 구하는 방식이 다릅니다.

3. 표본추출방법 :

1) 확률표본추출방법 : 모집단에서 무작위로 표본을 추출하는 방법

2) 비확률표본추출방법 : 조사자의 편의나 판단에 의해 표본을 추출하는 방법

* 비확률표본추출방법에는 층화추출법 등 다양한 방법이 있습니다. 표본 추출 시에 편향된 표본을 고르는 것이 아닌지 항상 의심해봐야 합니다.

* 대수의 법칙 : 추출된 표본의 수가 무한대에 가까워질수록 표본평균은 모평균으로 근사한다는 법칙입니다. 자세한 내용은 아래의 링크를 참고하시기 바랍니다.

https://blog.naver.com/vnf3751/220836087225

* 표본의 크기는 얼마나 커야 모집단을 대표할 수 있는가?

→ 중심극한정리(https://blog.naver.com/vnf3751/220844235862)에 의하면

→ " 표본이 30 이상으로 충분히 클 때 "

1) 모집단의 분포와 상관없이 표본은 정규분포를 따른다.

2) 모집단의 평균과 표본의 평균은 같다.

3) 표본의 분산 = 모집단의 분산 / 표본의 수

* 자유도

: 평균을 유지하면서 자유롭게 어떠한 값도 가질 수 있는 사례의 수(표본의 수 -1)

모집단의 평균이 4이고, 표본의 크기는 5라고 하자.

모집단과 표본의 평균을 같게 해주려면, 임의의 4개의 표본을 뽑고 나서 마지막 하나의 표본은 평균을 맞춰주기 위한 값을 뽑아야 한다. 이것을 자유도라고 한다.

[ 척도 ]

1. 척도의 원칙

1) 포괄성

2) 상호배타성

* 비연속형 변수

- 명목척도 : 상호배타적인 특성만을 가진 척도 ex) 남/여

- 서열척도 : 명목척도 중 항목들 사이에 서열이나 순위가 존재하는 척도 ex) 언론에서 발표하는 대학 순위

* 연속형 변수

- 등간척도 : 서열척도들 중 항목들 간의 간격이 일정한 척도 ex) 섭씨온도 : 섭씨 0도는 열이 없는 상태가 아니기 때문에 섭씨온도는 등간척도이다.

- 비율척도 : 등간척도 중 아무것도 없는 상태를 0으로 정할 수 있는 척도 ex) 무게

* 데이터 표현 방법

 

1) 도수분포표 : 특정 항목 또는 범위에 속하는 빈도수를 나타낸 표

2) 막대그래프 : 비연속형 변수에 사용되는 그래프, 항목별 빈도수를 나타냄

3) 히스토그램 : 연속형 변수에 사용되는 그래프

4) 선그래프 : 히스토그램의 끝 부분을 선으로 연결한 그래프

5. 공분산과 상관계수

 

1) 공분산 : 두 변수가 함께 각자의 평균으로부터 멀어지는 정도

→ 한 변수가 자신의 평균으로부터 멀어질 때 다른 변수가 자신의 평균으로부터 멀어지는 정도를 의미한다.

​ex) 한 변수가 증가할 때, 다른 변수도 증가하는가? 증가한다면 공분산은 양수, 감소한다면 공분산은 음수가 된다.

2) 상관계수 : 하나의 변수가 변화함에 따라 다른 변수가 변화하는 정도

* 상관계수는 선형적인 관계만을 수치화할 수 있고 비선형적인 관계는 수치화할 수 없다. 따라서 비선형적인 관계를 가지는 경우는 상관계수가 아닌 다른 방법으로 두 변수간의 관계를 파악해야 한다.

6. 가설과 신뢰수준/유의확률

1) 귀무가설(영가설) : 연구가설과 반대되는 가설, 실제 분석이 이루어지는 가설

2) 대립가설(연구가설) : 분석을 통해서 알아보고자 하는 내용으로 이루어진 가설

- 귀무가설은 하나의 통계값으로 나타낼 수 있어야 하며 귀무가설 과 대립가설은 동시에 참/거짓일 수 없다.

* 유의확률(p-value) : 실제로는 귀무가설이 참임에도 통계분석을 통해 귀무가설을 거짓으로 판단할 가능성 : 실제 현상을 반영하지 못할 가능성

* 신뢰수준 : 실제로 귀무가설이 참일 때, 통계분석을 통해 귀무가설을 채택할 가능성 : 실제 현상에서 발생하지 않는 대립가정을 기각할 가능성

7. 양측 검증과 단측 검증

1) 양측 검증 : 방향성을 고려하지 않은 채로 대립가설을 설정할 때 사용하는 검증방법

2) 단측 검증 : 방향성을 고려하여 대립가설을 설정(크다/작다)

 

양측 검증보다는 단측 검증일 경우에 대립가설이 채택될 가능성이 높다.

8. t분석(집단간의 평균 차이 분석) - https://blog.naver.com/PostView.nhn?blogId=vnf3751&logNo=220838283162

: 독립변수(원인)이 비연속형 변수이고, 종속변수(결과)가 연속형 변수일 때 두 집단간의 평균을 비교하는 검정,

독립변수의 집단이 2개 이하일 때 사용하는 분석방법이며, t분포를 사용한다. 회귀분석에서 각 계수들이 유의미한지 파악하는데 사용한다..?

 

* 다중공선성 : 회귀분석에서 사용되는 설명변수들이 서로 독립이 아니고 서로 영향을 미칠 때 데이터 분석에 부정적인 영향을 미치는 현상 → 변수들 각각의 설명력이 약해진다.

1) 일표본 t-분석

: 하나의 모집단에서 표본을 추출할 때 사용되는 분석으로 표본의 평균이 예측한 특정 수치와 같은지 다른지를 검증하는 방법

2) 독립표본 t-분석(두 집단의 분산이 동일한지 여부에 따라 유의확률 계산식이 달라지므로 두 집단의 분산 일치 여부도 중요하다.)

: 두개의 모집단에서 각각의 표본을 추출할 때 두 집단의 평균이 서로 같은지/다른지를 검증하는 방법

3) 대응표본 t-분석

: 하나의 모집단에서 표본을 추출하지만, 같은 표본에게 두 번의 측정이 이루어질 때 사용

9. 분산분석(ANOVA)

: 독립변수가 비연속형 변수이고, 종속변수가 연속형 변수일 때 사용하는 분석방법으로, 독립변수의 집단이 3개 이상일 때 사용한다. f-분포를 사용하여 분석한다.

* 원리 : 집단 간 분산과 집단 내 분산을 통해 분석 :

- 집단 간 분산 > 집단 내 분산 : 집단간 차이가 있음

- 집단 간 분산 < 집단 내 분산 : 집단간 차이가 크지 않음

- 실제 분석은 집단 간 분산 / 집단 내 분산을 활용한다.

- 1way ANOVA : 독립변수 1개, 종속변수 1개

- 2way ANOVA : 독립변수 2개, 종속변수 1개

- 3way ANOVA : 독립변수 3개, 종속변수 1개

- ANCOVA : 독립변수 1개, 종속변수 1개, 통제변수 1개 이상

- MANOVA : 독립변수 1개, 종속변수 2개 이상

- MANCOVA : 독립변수 1개, 종속변수 2개 이상, 통제변수 1개 이상

10. 회귀분석

- 독립변수와 종속변수가 모두 연속형 변수일 때 사용하는 분석방법.

귀무가설 : 독립변수가 종속변수에 미치는 영향의 크기는 0이다.

대립가설 :

1) 양측검증 : 독립변수가 종속변수에 미치는 영향의 크기는 0이 아니다.

2) 단측검증 : 독립변수가 종속변수에 미치는 영향의 크기는 0보다 크다(혹은 작다.)

특징 )

- 여러 개의 독립변수를 포함할 수 있다.

- 여러 독립변수들을 포함하는 경우에는 서로 통제되어 자신의 독자적인 영향력으로 계산한다.

* 설명량(R^2) :

- 독립변수들에 의해서 설명되어지는 종속변수의 분산

- 설명량이 증가할수록 회귀식에서 설명되어지지 못하는 오차는 감소

- 증가된 설명량을 활용하여 독립변수의 포함 여부를 결정한다.

11. 로지스틱 회귀분석

독립변수가 연속형 변수이고, 종속변수가 비연속형 변수인 경우 분석방법

-Odd Ratio : 수식 넣기 (p : 특정 사건이 발생할 확률)

- 기존 로지스틱 회귀분석에서 y = b0 + b1x였다면 y 부분에 ln(Odd Ratio)가 들어간다.

b1 > 0 : 특정 사건이 발생하지 않을 확률보다 발생할 확률이 높다는 의미.

b1 < 0 : 특정 사건이 발생하지 않을 확률이 발생할 확률보다 높다는 의미

* 모형적합도 : 모형이 적절하게 만들어졌는지를 보여주는 지표

12. 조절효과와 매개효과

1) 조절효과

: 독립변수가 종속변수에 미치는 형향이 조절변수에 의해서 달라지는지를 알아보는 분석방법

2) 매개효과

: 독립변수와 종속변수 간의 인과관계 이외에도 매개변수를 통한 간접적인 인과관계가 존재하는지를 알아보는 분석방법

- 부분매개모형

​- 완전매개모형

13. 구조방정식 모형(매개효과에 특화)

: 구조모형과 측정모형을 함께 고려하는 분석방법, 확인적 요인분석과 매개효과 분석에 주로 활용.

- 구조모형 : 변수들 간의 관계를 밝히는 모형

- 측정모형 : 각 변수와 이를 측정하는 문항들간의 관계를 밝히는 모형

- 확인적 요인분석 : 측정문항들의 타당도를 알아보기 위한 분석으로 구조방정식 중 측정모형만을 분석하는 방법

14. 다수준분석 : 독립변수와 종속변수의 수준이 다른 경우, 독립변수와 종속변수는 개인수준이지만 조절변수의 수준이 다른 경우의 분석(복잡한 사회현상에 대해 분석)

단일수준분석 : 모든 변수가 하나의 수준으로 이루어진 경우

ex) 집단의 응집성이 집단의 성과에 어떤 영향을 미치는가(집단수준 내에서의 분석), 개인의 동기가 개인의 성과에 어떤 영향을 미치는가(개인수준 내에서의 분석)

 

반응형
반응형

패스트 캠퍼스의 [올인원 패키지 : 데이터 분석 입문] - 10주차 학습과정을 시작했습니다.

미션을 완료하면 수강료를 돌려준다는 말에 혹해서 결제해버렸습니다.. 

 

[올인원 패키지 : 데이터 분석 입문] 강의는 아래와 같은 6개의 Course로 이루어져 있습니다.

#1. 우리는 왜 데이터분석을 배워야할까?(5강)

#2. 알면 쓸모있는 데이터 잡학사전(50강)

#3. 나도 데이터 분석을 할 수 있을까?(11강)

#4. 중학교 수학으로 이해하는 통계와 데이터분석(24강)

#5. 고등학교 수학으로 이해하는 통계와 데이터분석(17강)

#6. 혼자 해보는 데이터분석(6강)

 

10주동안 매주 학습한 내용을 업로드 할 예정이며, 이번주 학습한 내용은 [Course 1] 우리는 왜 데이터 분석을 배워야 할까? 입니다.

[Course 1] 우리는 왜 데이터 분석을 배워야 할까?

데이터 분석의 이유, 목적 및 과정에 대해 간단히 요약한 Course였습니다.

1. 데이터 분석의 필요성 : 기술이 발전할수록 쌓여가는 데이터의 양은 급증하고 있지만, 데이터 자체는 유용한 가치가 없다. 데이터를 분석하여 그 결과를 활용하면 데이터 기반의 의사결정을 통한 불확실한 미래에 대한 대비가 가능하다.

2. 데이터 분석 과정: 데이터 분석은 소속 집단/ 분석 대상의 특성 / 분석 목표 등에 따라 절차와 방법이 다양하다. 공통적으로 포함되는 과정은 아래와 같다.

(1) 분석 목표 설정 : 데이터를 분석하는 목적을 설정한다.

(2) 데이터 수집: 분석에 필요한 데이터를 다양한 경로를 통해 수집한다.

데이터의 종류 : 내부 데이터, 외부 데이터, 직접 수집한 데이터

(3) 데이터 가공 : 분석 목적에 맞게 데이터를 활용하기 위해 데이터의 형태를 변환한다.

(4) 데이터 분석 : 분석을 반복하고, 피드백을 통해 개선한다.

(4.1) 탐색적 데이터 분석(Exploratory Data Analysis)

- 변수, 변수간의 관계 등 데이터 자체의 특성을 분석

(4.2) 확증적 데이터 분석(Confirmatory Data Analysis)

- 미리 설정한 가설을 확인하기 위한 분석

- 추정(estimation)과 검정(test)을 활용

(5) 분석결과 공유 : 분석 목적에 맞는 효과를 얻기 위해 그래프/표 등을 활용하여 분석결과를 시각화하여 공유한다.

 

Course1의 내용을 간단히 정리해보았습니다. 탐색적 데이터 분석/ 확증적 데이터 분석 빼고는 이해하는데 어려운 내용은 없었습니다. 전반적인 데이터 분석 과정을 소개하는 내용이었으며, 이상 1주차 학습내용을 마무리하겠습니다.

반응형
반응형

1. Normal Distribution

 

- Unimodal(단봉형)

- Symmetric(대칭)

 

정규분포 그래프는 N(μ,σ)를 만족하며 μ는 평균, σ는 표준편차인 그래프를 의미합니다.

정규분포를 그리는 그래프에서는 아래 그림과 같이 평균을 기준으로 (1 * σ) 범위 내에는 68%의 데이터가 존재하고, 

(2 * σ) 범위 내에는 95%의 데이터가, (3 * σ 범위) 내에는 99.7%의 데이터가 존재합니다.

2. Standardizing with Z scores

  Z score란 관측치에서 평균을 뺀 뒤 표준편차로 나눈 것으로, 관측치가 평균에서 얼마나 떨어져있는지 표준편차를 사용하여 확인하는 방법입니다. |Z| > 2 * σ라면 이상 관측치로 분류할 수 있습니다.

Z = (observation - mean) / standard deviation

 

3. percentile : percentage of observations that falls below a given data point

 

4. Normal Probability Plot

Normal Probability Plot은 오른쪽 그래프와 같이 데이터의 분포가 정규분포를 얼마나 따르는지 확인할 수 있는 그래프입니다. 데이터의 분포가 정규분포를 만족할수록 그래프는 직선에 가깝게 됩니다. x축은 theoretical quantile, y축은 관측치입니다.

위의 그림과 같이, Normal Probability Plot을 통해 그래프의 분포도를 유추해볼 수 있습니다.

 

5. Binomial Distribution 

 : the binomial distribution describes the probability of having exactly k successes in n independent Bernouilli trials with probability of success p

 

- Mean and Standard Deviation of binomial distribution : 

-Bernoulli random variable : when an individual trial has only two possible outcomes.

 

6. Normal approximation to binomial 

 : as samples size increases, the binomial distribution looks much similar to the normal distribution. 

  이 특성을 사용하여, 큰  sample size의 binomial distribution에 대해 normal distribution에 사용하는 방법과 마찬가지로 percentile을 구할 수 있다. 이 sample size의 크기는 아래와 같은 조건을 만족할 때 Normal Distribution과 같은 방법을 사용할 수 있다.

 

* 이 때 0.5정도의 관측치 조정을 통하여 정확한 값을 구할 수 있다.(70이상의 값은 70을 정확히 포함하지 않으므로 0.5를 빼서 Z score를 구한다.)

 

 

- Binomial Conditions : 

  1) The trials must be independent

  2) the number of trials, n, must be fixed

  3) each trial outcome must be classified as a success or a failure

  4) the probability of success, p, must be the same for each trial

반응형
반응형

streak은 연속으로 골을 성공시킨 횟수를 의미합니다. hit입니다.

 

0개의 streak은 hit이 하나도 없을 때 miss가 발생했다는 의미입니다.

 

> Shortest streak의 length는 0인 것을 확인할 수 있습니다.

 

 

위의 그래프를 보면 어느정도 분포가 비슷한 것을 확인할 수 있습니다.

 

반응형

+ Recent posts