본문 바로가기
반응형
Chapter 5 서포트 벡터 머신(svm) 서포트 벡터 머신(Support Vector Machine) 선형, 비선형 분류, 회귀, 이상치 탐색에도 사용가능한 다목적 머신러닝 모델 분류를 위한 기준 선을 정의하는 모델 3개의 선형 분류기에서 만들어진 결정 경계 실선 : svm분류기의 결정 경계, 제일 가까운 훈련 샘플로부터 가능한 멀리 떨어진 선 $b_{11} , b_{12}$ 사이의 거리를 마진(margin) svm은 마진을 최대화 하는 분류 경계면을 찾는 기법 소프트 마진 분류 하드 마진 분류 모든 샘플이 올바르게 분류 문제점 : 데이터가 선형적으로 구분 가능해야 한다 이상치에 민감 서포트 벡터와 결정 경계 사이가 매우 좁아 마진이 매우 작다 overfitting 문제 발생 위험성 소프트 마진 분류 제일 가까운 훈련 샘플로부터 가장 멀리 떨어.. 2020. 9. 18.
Chapter4 모델 훈련 선형회귀 일반적으로 선형 모델은 입력 특성의 가중치 합과 편향을 더해 예측한다 선형 회귀 모델 예측 식 $\hat y = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + ... + \theta_n x_n $ $\hat y $ : 예측값 n : 특성 수 $x_i : i번째 특성값 $ $\theta_j : j번째 파라미터 $ 선형 회귀 모델의 벡터형태 예측식 $ \hat y = h_\theta (x) = \theta^T \cdot x $ 모델 훈련 모델이 훈련 세트에 가장 잘 맞도록 모델 파라미터를 설정하는 것 정규방정식(normal equation) 비용 함수를 최소화하는 $\theta$ 값을 찾기 위한 해석적인 방법 바로 결과를 얻을 수 있는 수학공식 $ \hat \theta =.. 2020. 9. 17.
넘파이 벡터 연산 n벡터 연산 합 연산(+) # list 합 a = [1, 2] b = [1, 2] print (a + b) #결과: [1, 2, 1, 2] # numpy 활용 벡터 합 import numpy as np a = np.array([1, 2]) b = np.array([1, 2]) print (a + b) #결과: array([2, 4]) 곱 연산(x) #list 곱 lista = [1,2,3,4,5] scalar_multiply = list(map(lambda x: x*2,lista)) print(scalar_multiply) #결과 : [2,4,6,8,10] #numpy 활용 곱 lista = np.array([1,2,3,4,5]) lista * 2 print(lista * 2) #결과 : array([2.. 2020. 9. 17.
선형대수 함수(Linear Algebra) 단위행렬 (Unit matrix): np.eye(n) 대각행렬 (Diagonal matrix): np.diag(x) 내적 (Dot product, Inner product): np.dot(a, b) 대각합 (Trace): np.trace(x) 행렬식 (Matrix Determinant): np.linalg.det(x) 역행렬 (Inverse of a matrix): np.linalg.inv(x) 의사 역행렬 (pseudo inverse): np.linalg.pinv(x) 고유값 (Eigenvalue), 고유벡터 (Eigenvector): w, v = np.linalg.eig(x) 특이값 분해 (Singular Value Decomposition): u, s, vh = np.linalg.svd(A) 연립방.. 2020. 9. 17.
2장 자연어처리를 위한 수학 확률의 기초 확률 어떠한 사건이 발생할 수 있는 가능성을 수치로 나타낸 것 확률변수 확률변수(random variable) 특정 확률로 발생하는 각각의 결과를 수치적 값으로 표현한 값 ex) 두 개의 동전을 던질 때 $\Omega $= { HH, HT,TH,TT } P(X=사건)=확률 표본공간(samplespace) 어떤 시행에서 일어날 수 있는 모든 결과들의 집합 ex) 두 동전이 모두 앞면이 나오는 확률 $P(X=HH) = P(X=2)= {1 \over 4 }$ 확률 변수와 확률 분포 이산 확률 변수(discrete random variables) 확률 변수 X가 취할 수 있는 값들이 이산적으로 셀 수 있는 경우 확률 분포(probability distribution) 확률 변수가 특정한 값을 가질 .. 2020. 9. 13.
1장 자연어처리의 기본 자연어(Natural Language) 일상샐활에서 사용되는 언어 자연어처리(Natural Language Processing, NLP) 컴퓨터가 자연어를 이해하거나 생성할 수 있도록 하는 학문 분야 자연어 이해(Natural Language Understanding, NLU) 자연어를 입력으로 받아들여 목적에 맞게 내부적으로 처리해내는 과정 자연어 생성(Natural Language Generation, NLG) 자연어를 출력으로 처리 자연어처리의 어려움 언어의 중의성 맥락에 따라 해석의 여지가 달라질 수 있는 것 규칙의 예외 구절이나 문장 안에서 단어와 형태소가 구성되는 방법을 정리하고자 해도, 항상 예외가 존재 언어의 유연성과 확장성 문장의 수와 길이가 무한하다. 언어 모델링 처리의 불확실성 ↑ 자.. 2020. 9. 10.
백준 10039번 문제 평균 점수 문제 상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다. 어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다. 학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오. 입력 입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다. 점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, .. 2020. 9. 7.
백준 1110번 더하기 사이클 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 .. 2020. 9. 7.
백준 10951번 문제 A+B-4 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 정답 : # 몇번의 테스트 케이스가 주어졌는지 알 수 없기 때문에 break로 EOF를 확실하게 해줘야 한다. while(1): try: a,b = map(int,input().split()) print(a+b) except: break 2020. 9. 2.
백준 10952번 문제 A+B-5 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다. 출력 각 테스트 케이스마다 A+B를 출력한다. 정답: while(1): a,b = map(int,input().split()) if a==b==0: break print(a+b) 2020. 9. 2.
반응형