새소식

인기 검색어

TL

20/07/06 TL

  • -

오늘 할 일

이산수학 강의

계산이론 강의

리액트 강의

자연어처리 공부

강의 내용 복습

자소서 확인

모각코 + 해커톤 모임

 

내일 할 일

이산수학 강의

계산이론 강의

자연어처리 공부

스위프트 강의

강의 내용 복습

(+과제)

파이썬 공부

해커톤 문서 작성

 

------------------------------------------------------

 

자연어 : 우리가 일상 생활에서 사용하는 언어.
자연어 처리 : 자연어의 의미를 분석, 컴퓨터가 처리할 수 있도록 하는 일.

젠심 : 머신 러닝을 사용하여 토픽 모델링, 자연어 처리 등을 수행해주는 오픈소스 라이브러리
NLTK : 자연어 처리를 위한 파이썬 패키지
KoNLPy : 한국어 자연어 처리를 위한 형태소 분석기 패키지

판다스의 데이터 구조
1. 시리즈
2. 데이터프레임 : 가장 많이 쓰임.
3. 패널

1. 시리즈 클래스는 1차원 배열의 값에 각 값에 대응되는 인덱스를 부여할 수 있는 구조를 가진다.

2. 데이터 프레임은 열(columns), 인덱스(index), 값(values)으로 구성. List, Series, dict, ndarray(Numpy의)
, 또 다른 데이터프레임으로 생성할 수 있다.

df.head(n) : 앞 부분을 n개만 보기

df.tail(n) : 뒷 부분을 n개만 보기

df['열이름'] : 해당되는 열을 확인
csv, 텍스트, Excel, SQL, HTML, JSON 등 다양한 데이터 파일 읽고 데이터 프레임 생성 가능

3. 넘파이는 수치 데이터를 다루는 파이썬 패키지. ndarray를 통해 벡터 및 행렬을 사용하는 선형 대수
계산에서 주로 사용. 편의성, 속도가 매우 빠름.

행렬 간 인덱스끼리 곱은 *. 행렬 간 곱셈은 np.dot

 

EDA(Exploratory Data Analysis, 탐색적 데이터 분석) : 데이터 성격 파악.(ex) 데이터 내 값 분포, 
변수 간 관계, Null값과 같은 결측값 존재 유무...). pandas에서는 pandas-profiling의 .profile_report()로
데이터 프레임을 탐색.

출처 : https://wikidocs.net/31947


머신 러닝 워크플로우
1. 수집 : 기계에 학습시킬 데이터를 수집. 자연어 데이터는 말뭉치 혹은 코퍼스(corpus)라고 한다.
코퍼스 : 조사, 연구 목적에 의해 특정 도메인에서 수집된 텍스트 집합.(txt, csv, xml... 출처도 음성 데이터,
웹 수집기 통해 수집된 데이터, 영화 리뷰 ...)

2. 점검 및 탐색
데이터의 구조, 노이즈 데이터, 머신 러닝 적용을 위해 데이터를 어떻게 정제할지 파악. EDA단계라고도 함.
독립 변수, 종속 변수, 변수 유형, 변수의 데이터 타입 등을 점검해 데이터 특징, 구조적 관계를 알아냄.
시각화, 간단한 통계 테스트 진행하기도.

3. 전처리 및 정제
데이터 전처리 과정. 자연어 처리라면 토큰화, 정제, 정규화, 불용어 제거 등

4. 모델링 및 훈련
적절한 알고리즘으로 모델링 후, 기계에 학습(훈련). 과적합을 막기 위해 모든 데이터를 쓰진 않음.
훈련용, 검증용, 테스트용으로 데이터를 나누고 훈련용 데이터만 훈련에 사용.
훈련용 : 학습지 검증용 : 모의고사(성능 판단용) 테스트용 : 수능(채점용)

5. 평가
테스트용 데이터로 정답과 얼마나 가까운지를 측정

6. 배포
배포하지만, 피드백에 따라 돌아갈 수도 있음.

 

-------------------------------------------------------------------------------

 

차수 : 어떤 노드에 포함된 자식 노드의 개수. (자기 자식만!)

레벨 : 루트 노드가 0 자식 노드가 내려갈 때마다 ++

숲 : 루트 노드를 제거하여 얻는 서브 트리의 집합.

 

트리에 대한 정리

T는 트리다.

T의 변의 수는 n - 1개다.

T에서 변 하나를 제거하면 연결 그래프가 아니다.

T에 속하는 서로 다른 꼭지점 w,v에 대해 w에서 v로 가는 유일한 경로가 존재한다.

 

n항 트리 : 트리의 최대 차수가 n인 트리.

 

완전 이진 트리 : 높이가 h일 때, 레벨 1부터 h-1까지 모든 자식 노드가 두 개씩 채워져 있고, 레벨 h(리프)는 왼쪽부터 노드가 채워져 있는 트리

포화 이진 트리 : 높이가 h일 때, 레벨 1부터 h까지 모든 자식 노드가 2개씩 채워져 있는 트리

편향 이진 트리 : 왼쪽이나 오른쪽 서브 트리만 가지는 트리

 

이진트리를 배열로 구현할 경우, 이진 편향 트리일 때 메모리 낭비가 발생하고, 트리 중간에 노드 삽입, 삭제할 떄 비효율 적이다. -> 연결리스트로 구현하면 된다. 주소(포인터로) 연결해서, 메모리 낭비, 삽입 삭제 문제도 해결된다.

 

순회 규칙 :

1. 항상 루트에서 시작한다.

2. 서브 트리에 대한 순회 순서는 ->이다.

3. 데이터 읽기 전, 왼쪽 혹은 오른쪽 노드가 있는지 확인하는 작업을 한다.

 

전위순회 : 루트 -> 왼쪽 -> 오른쪽

중위순회 : 왼쪽 -> 루트 -> 오른쪽

후위순회 : 왼쪽 -> 오른쪽 -> 루트

 

이진 탐색 트리 : 데이터 크기에 따라 노드의 위치를 탐색할 수 있는 트리.

1. 원소는 유일키를 갖는다.

2. 왼쪽 서브 트리에 있는 원소 키들은 그 루트의 키보다 작다.

 

신장 트리 : 그래프G의 꼭지점을 모두 노드로 포함하는 트리 T

최소신장 트리 : 그래프 G의 꼭지점을 모두 노드로 포함하면서 비용을 최소로 하는 트리 T

프림 알고리즘 : https://ko.wikipedia.org/wiki/%ED%94%84%EB%A6%BC_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

크루스칼 알고리즘 : 낮은 순부터

https://ko.wikipedia.org/wiki/%ED%81%AC%EB%9F%AC%EC%8A%A4%EC%BB%AC_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

허프만 코드 : 

https://slenderankle.tistory.com/409

 

증명 : 논리적인 방법을 이용하여 주어진 가정으로부터 결론을 유도. 어떠한 명제나 논증이 적절하고 타당한지를 입증하는 작업. 증명을 위해 참인 전제들이 주어진다.

유효 추론 : 참인 전제들의 결론 또한 참이다.

 

공리 : 별도의 증명 없이 항상 참으로 이용되는 명제. 가장 기초적인 근거. 전제

정리 : 공리와 정의를 통해 참으로 확인된 명제. 가정으로부터 증명된 명제

정의 : 논의 대상이 지니는 의미나 내용에 착오가 일어나지 않도록 뚜렷히 구졍한 문장이나 식. 의미를 설명.

증명 : 특정한 공리들을 가정하고, 그 가정 하에서 어떤 명제가 참이라는 것을 보여주는 것. 하나의 명제가 참임을 확인하는 과정

 

증명 종류 : 직접 증명법, 존재 증명법, 수학적 귀납법, 모순 증명법

1.직접 증명법 : 공리 정의, 이미 증명된 정리를 논리적으로 직접 연결해 증명

2. 존재 증명법 : 주어진 명제가 참이 되는 예를 찾아 증명

3. 기저 단계 : n값을 대입해 초깃값 계산 -> 귀남 가정 : p1, p2, p3 ... pn이 사실이라고 가정 -> 귀납 단계 : 기저 단계와 귀납 가정을 이용해 Pn+1이 성립됨을 보임.

4. 모순 증명법 : 명제가 거짓임을 가정하고 그걸 증명함.

 

언어 : 특별한 성질을 가진 스트링들의 집합

문법 : 언어를 정의하는 수단

오토마타 : 언어를 인식하는 추상의 기계(모델)

 

--------------------------------------------------------------------------------------------------------

 

항진(tautologies) : 항상 참인 것

모순(contradictions) : 항상 거짓인 것

 

ㄱp V q 는 p -> q와 같다.

 

동치 증명할 땐 1. 논리표 그리기. 2. 논리적 동치

 

만족가능성 : 명제가 참이 되도록 진리값을 할당할 수 있음.

만족 불가능 : 복합 명제가 언제나 거짓일 경우

 

변수 : 정의역에 있는 대상.

정의역 : 대상들을 한정지을 수 있는 공간.

 

한정사 : 1.모든, 2.어떤. 우선순위가 최상위

명제 함수 : 변수 + 술어

변수가 속한 정의역이 중요하다.

=> 정의역을 벗어나면 명제가 아니다.

 

Some students in this class has taken a course in Java

->Exist(S(x) ㅅ J(x))

Exist(S(x) -> J(x))가 아닌 이유? : 어떤 학생은 클래스에 있으면 JAVA수업을 듣는다. 이 문장 때문이 아니라, 수업에 있는 학생이 아니면 자바 수업을 듣는다를 T로 만들기 때문. 즉, 표현하려는 문장의 범위를 벗어나기 때문.

 

ㄱAll(J(x)) = Exist(ㄱJ(x))

 

명제 함수에서 x에 숫자를 넣으면 명제를 만들 수 있다. 아니면 한정사를 이용해서 숫자를 안 넣고도 명제로 만들 수 있다.

 

 

 

 

 

'TL' 카테고리의 다른 글

20/07/09 TL  (0) 2020.07.10
20/07/07 TL  (0) 2020.07.08
20/07/04 TL  (1) 2020.07.05
20/07/03 TL  (0) 2020.07.03
20/07/02 TL  (0) 2020.07.02
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.