반응형

SW 2028

머신러닝 : 분류 모형 성능 지표 : 종류, 개념, 정의, 공식

MSE f가 제대로 추정되었는지 평가하기 위함입니다. 예측한 값이 실제 값과 유사한지 평가하는 척도가 필요합니다. MSE ( mean squared error) 는 모형의 적합성(오류)를 평가하는 지표입니다. MSE는 실제 종속 변수와 예측한 종속 변수간의 차이를 의미합니다. 따라서 작을수록 좋지만, 과도하게 줄이면 과적합의 오류를 범할 가능성이 있습니다. 따라서, 검증 집합의 MSE를 줄이는 방향으로 f를 추정합니다. MAPE mean absolute percentage error는 모형의 적합성을 평가하는 지표입니다. MAPE는 퍼센트 값을 가지며 0에 가깔우수록 회귀 모형의 성능이 좋다고 할 수 있습니다. 0% ~ 100% 사이의 값을 가져 이해하기 쉬울 수 있습니다. 성능 비교 해석이 또한 가능합..

SW/머신러닝 2020.01.16

머신러닝 : k-Fold 교차 검증 (k-Fold Cross Validation) : 개념, 방식

k-Fold 교차 검증 (k-Fold Cross Validation) 모형의 적합성을 보다 객관적으로 평가하기 위한 방법입니다. 데이터를 k개로 나누어 줍니다. 그 중 하나를 검증 집합, 나머지를 학습 집합으로 분류합니다. 위 과정을 k 번 반복합니다. 그 다음 k 개의 성능 지표를 평균하여 모형의 적합성을 평가합니다. LOOCV ( Leave One Out Cross Validation ) 데이터의 수가 적을 떄 사용하는 교차 검증 방법입니다. 총 n 개의 모델을 만듭니다. 각 모델은 하나의 샘플만 제외합니다. 모델을 만들고 제외한 샘플로 성능 지표를 계산합니다. 이렇게 도출된 n 개의 성능 지표를 평균 내어 최종 성능 지표를 도출합니다.

SW/머신러닝 2020.01.15

머신러닝 : 데이터 분할 : 방법, 방식, 절차

데이터 분할 과적합을 방지하기 위해서는 전체 데이터를 학습 데이터, 검증 데이터, 테스트 데이터로 나누어야 합니다. 보통 비율은 5 : 3 : 2 로 정합니다. 따라서 생각보다 많은 데이터를 보유해야만 좋은 모형을 만들 수 있습니다. 학습 데이터 : train data : 모형 f 를 추정하는 데 필요합니다. 검증 데이터 : validation data : 추정한 모형 f 가 적합한지 검증합니다. 테스트 데이터 : test data : 최종적으로 선택한 모형의 성능을 평가합니다. 데이터 분할 : 전체 데이터를 학습 데이터, 검증 데이터, 테스트 데이터로 나누어집니다. 모형 학습 : 학습 데이터를 사용하여, 각 모형을 학습합니다. 모형 선택 : 검증 데이터를 사용하여, 각 모형의 성능을 비교하고 선택합니다..

SW/머신러닝 2020.01.14

머신러닝 : 모형의 적합성 : 평가 방법

모형의 적합성을 평가하는 방법 모형의 복잡도에 따른 학습 집합의 MSE(회색)와 검증 집합의 MSE(빨간색)의 변화를 위 그림을 통해 알아보았습니다. 학습 집합의 MSE는 복잡한 모형일수록 감소합니다. 학습 데이터가 아닌 또 다른 데이터 (검증 데이터)의 MSE는 일정 시점 이후로 증가합니다. 증가하는 원인은 왼쪽 그림에 초록색처럼 학습 집합에 과적합되기 때문입니다. 그렇다면, 각 색깔마다 어떠한 결과가 나왔는 지 알아보도록 하였습니다. 검은색 : 실제 f를 나타내는 모형입니다. 노란색 : 가장 낮은 복잡도를 가지므로 편파성이 높아져 가장 높은 MSE 값을 가집니다. 초록색 : 가장 높은 복잡도를 가지므로 학습 집합에 과적합되어 있습니다. 분산이 높아집니다. 따라서, 검증 데이터의 MSE가 하늘색에 비해..

SW/머신러닝 2020.01.13

머신러닝 : 분산(variance)과 편파성(Bias)의 딜레마

분산(variance)과 편파성(Bias)의 딜레마 모형 f^(x)로 모집단의 전체 데이터를 예측하는 경우 발생하는 총 에러를 계산합니다. 이 떄 에러는 reducible error와 irreducible error로 표현됩니다. reducible 에러는 다시 분산과 편파성으로 구성됩니다. 분산은 전체 데이터 집합 중 다른 학습 데이터를 이용했을 떄, 추정한 f가 변하는 정도를 의미합니다. 복잡할 수록 분산이 높아집니다. 편파성은 학습 알고리즘에서 잘못된 예측을 할 떄, 발생하는 오차를 의미합니다. 간단할수록 편파성이 높습니다. 복잡한 모형 f^(x) 를 사용하여 편파성을 줄일 수 있습니다. 그러며 반대로 분산이 커지는 것입니다. 간단한 모형이라면 그 반대의 현상이 발생하는 것입니다. 따라서, 엔지니어들..

SW/머신러닝 2020.01.12

MySQL : like 연산자 : 문자열 검색 :사용방법, 예제

like 조건식을 만들어 줄때 문자열과 비교 시 사용합니다. 문자열 값을 비교할 때, =을 이용하면 지정된 문자열이 저장되어 있는 로우를 가져올 수 있습니다. like는 더욱 확장해서 조건을 만들 때 사용하는 것입니다. like는 와일드 카드라는 개념을 사용합니다. 와일드 카드는 모든 글자를 의미하는 특수 기호입니다. _ : 글자 하나를 의미합니다. % : 글자 수와 상관없이 모든 글자를 의미합니다. 사용 예제 # 이름이 Tommaso 사원의 사원번호, 이름을 가져옵니다. select emp_no, first_name from employees where first_name = 'Tommaso'; # 이름이 A로 시작하는 사원의 사원번호, 이름을 가져옵니다. select emp_no, first_name..

SW/MySQL 2020.01.11

MySQL : 논리 연산자 : and, or, not, between, in : 사용법, 예제

논리 연산자 두개 이상의 조건문을 작성할 떄 사용하는 연산자입니다. and : 양쪽 조건을 모두 만족해야 합니다 or : 양쪽 조건 중 하나만 만족해도 됩니다. not : 조건의 결과를 반대로 부정합니다. # d001 부서의 매니저 중에서 1990년 이후 부터 매니저인 사원의 사원 번호, # 부서 번호, 매니저, 시작날짜를 가져온다. select emp_no, dept_no, from_date from dept_manager where dept_no = 'd001' and from_date >= '1990-01-01'; # 1990년 이후에 입사한 남자 사원의 사원 번호, 성별, 입사일을 가져온다. select emp_no, gender, hire_date from employees where hire_..

SW/MySQL 2020.01.10

MySQL : where, 조건 연산자 : 사용방법, 예제

조건 사용하기 select구문에 where 절을 사용하면 조건을 설정할 수 있습니다. 컬럼에 저장되어 있는 데이터를 기준으로 검색합니다. 그러면 원하는 데이터만 가져올 수 있습니다. 조건 연산자 조건식을 만들 때 사용하는 연산자는 아래와 같습니다. = : 같다 > : 크다 = : 크거나 같다 150000; 위와 같이 범위를 활용하여서 해당 값들을 가져올 수 있습니다. 해당 쿼리는 급여가 15만 이상인 사람들의 사원 번호를 검색하는 쿼리입니다. 날짜 데이터 날짜 데이터를 조건절로 사용할 떄도 비교 연산자를 이용하면 됩니다. select emp_no, hire_date, last_name, first_name from employees where hire_date >= '1986-01-01' ..

SW/MySQL 2020.01.09

MySQL : 기본 연산자, 중복 제거 : 예제, 방법, 사용법

기본 연산자 사용하기 MySQL에서는 연산자를 사용할 수 있습니다. +, -, *, / 모두 가능합니다. select 20 + 10, 20 - 10, 20 * 10, 20 / 10; 위와 같이 연산 값이 나오는 것을 확인할 수 있습니다. select salary, salary + 1000, salary - 1000, salary * 1000, salary / 1000 from salaries; 컬럼 값에 숫자를 넣어 위와 같이 조정 가능합니다. 주의할 점은 문자열에 산술연산자를 사용한다면, 문자열 값은 0으로 생각하고 연산을 진행합니다. distinct 연산자 중복을 제거하는 연산자입니다. 즉, 가져온 결과에서 중복을 제거하는 것입니다. select distinct 컬럼명 from 테이블명 select ..

SW/MySQL 2020.01.09

MySQL : select 기본 문법, 예제, 사용법

테이블의 모든 정보 가져오기 selct * from 테이블 이름 select * from employees; employeses의 모든 사원 정보를 가져올 경우 다음과 같이 선언합니다. 일부 컬럼만 가져오기 select 컬럼명1, 컬럼명2 from 테이블명 select emp_no, first_name, last_name from employees 사원의 정보 중 번호, 이름만 가져올 경우 다음과 같이 선언합니다. *를 선언하기보다는 직접 컬럼명을 선언해주는 습관을 들이면 좋다고 합니다. 그 이유는, 작성한 쿼리에서 어떤 정보를 얻고 싶은 지, 나중에 보아도 알 수 있기 떄문입니다.

SW/MySQL 2020.01.08

머신러닝 : 데이터셋 , 과적합(오버피팅) : 개념, 팁, 의미, 개요

최적의 데이터 셋 분석용 데이터의 이상적 조건에 대해 알아보도록 하겠습니다. 입력 데이터에 상관성이 작아야 이상적입니다. 반면에 입력 데이터와 출력 데이터의 상관성이 커야 합니다. 위 두 성질을 만족하는 소수의 입력 변수 집합이 이상적이라고 할 수 있습니다. 또한 많은 양질의 데이터가 있으면 좋습니다. 양질의 데이터란 결측치와 노이즈가 없는 깨끗한 데이터를 의미합니다. 현실적으로는 입력 변수는 많고 출력 변수는 적은 데이터가 많습니다. 이러한 데이터는 모형의 성능이 떨어지는 문제가 발생할 수 있습니다. 입력 변수는 상관성이 적고, 출력 변수는 상관성이 큰 독립 변수만을 추출하고 선택해야 합니다. 그러기 위해서 변수를 선택하고 차원을 축소하는 과정이 필요합니다. 과적합 문제 과적합에 대해 알아보도록 하겠습..

SW/머신러닝 2020.01.07

머신러닝 : 표본 공분산, 상관 계수 : 개념, 공식, 의미

표본 공분산 두 변수의 관계를 나타내는 양을 의미합니다. 두 변수가 도일한 변수인 경우에는 해당 변수의 분산을 나타냅니다. 공분산 행력은 여러 변수의 분산과 공분산을 포함하는 행렬입니다. 변수 i와 j가 같은 방향이면 양수의 값을 갖습니다. 반대로 음수의 값이면 반대 방향의 성질을 갖습니다. 0에 가깝다면, 두 변수의 방향성이 없다는 것을 의미합니다. 표본 상관 계수 표본 상관계수는 공분산을 각각의 표본 푠준편차 값으로 나눕니다. 그 다음 정규화한 것을 의미합니다. 두 변수 간의 선형 관계만 측정할 수 있습니다. 즉, 비선형 관계나 이상치가 있을 경우 올바른 값을 도출하기 어렵습니다. 원인과 결과에 대해서는 확실히 알기 어렵습니다. 위 그림처럼, 같은 상관계수이지만 어떻게 분포하는가에 따라 모양이 매우 ..

SW/머신러닝 2020.01.06

MySQL : 데이터 베이스, 테이블 정보 조회 명령어 : 예시

데이터 베이스 조회하기 show databases; 로그인한 계정으로 사용가능한 데이터 베이스의 목록을 조회할 수 있습니다. 데이터 베이스 사용하기 use 데이터베이스 이름; 사용할 데이터 베이스를 선택하는 명령어입니다. 테이블 조회 show tables; 선택된 데이터 베이스 내의 테이블을 조회하는 명령어입니다. 테이블 정보 조회 desc 테이블 이름; 지정된 테이블의 컬럼명, 자료형 등의 정보를 조회하는 명령어입니다.

SW/MySQL 2020.01.05

MySQL : 데이터베이스 정의, 기능, 특징, 장점

데이터베이스 정의, 기능 여러 사람들이 공유하고 사요할 목적으로 통한 관리되는 정보의 집합을 의미합니다. 즉, 논리적으로 연관된 하나 이상의 자료의 모음입니다. 그 내용을 고도로 구조화합니다. 따라서 검색과 갱신의 효율화를 얻어냅니다. 몇개의 자료를 조직적으로 통합합니다. 자료 항목의 중복을 없애고 자료를 구조화합니다. 그리고 기억 시켜 놓은 자료의 집합체를 의미합니다. 공동 자료로서, 같은 데이터라 할지라도 각자의 응용 목적에 따라, 다르게 사용할 수 있습니다. 데이터베이스 특징 데이터 베이스는 실시간 접근성을 가지고 있습니다. 또한, 지속적으로 변화할 수 있습니다. 또 여러 사람과 동시에 공유할 수 있습니다. 내용에 의한 참조가 가능하며, 데이터가 논리적으로 독립성을 가지는 특징이 있습니다. 데이터베..

SW/MySQL 2020.01.04

머신 러닝 : Random Forest 특징, 개념, 장점, 단점

Random Forest 여러 의사 결정 나무를 생성한 후에 다수결 또는 평균에 따라 출력 변수를 예측하는 알고리즘입니다. 즉 의사 결정 나무와 bagging을 혼합한 형태라고 볼 수 있습니다. Random Forest의 특징 부트스트랩을 이용하여 학습 집하에서 다양한 샘플을 추출합니다. 입력 변수 중 일부의 입력 변수만 사용합니다. 데이터 샘플링 및 변수 선택을 통해 의사 결정 나무의 다양성을 확보합니다. Variable Importance ( 변수 중요도 ) 회귀 또는 분류 문제에서 속성 또는 변수의 중요성의 순위를 매길 수 있습니다. Decision Tree에서는 노드 t에서 속성 xi가 혼잡도를 얼마나 줄일 수 있는 지에 대해서 알 수 있습니다. Random forest는 여러 개의 나무로 구성되..

SW/머신러닝 2020.01.03

딥러닝이 왜 그렇게 유명해졌을까요? 경험상 대부분 실제 문제에서는 적용되기 어려운 데 말입니다.

딥 러닝은 이전에는 "딥 러닝"으로 불리지 않았습니다. 과거에는 신경망, 다층 퍼셉트론 또는 단순 퍼셉트론과 같은 여러 이름이 있습니다. 우리는 그 이름들을 다음과 '딥러닝' 같이 바꾸어 사용하고 있습니다. 실제로 많은 연구자들은 한때 퍼셉트론에 대한 아이디어를 포기했습니다. 퍼셉트론의 아이디어는 실제로 쓸모가 없을까요? 그렇게 생각하지 않습니다. 신경망은 크게 알려지지 않은 분야이며 많은 연구가 필요합니다. 그러므로 무지하지만 강력한 영향력을 어필하기 위해서는 "딥 러닝"의 브랜드 변경이 필요한 것이었습니다. 앤드류 응 (Andrew Ng)은 마케팅 전문가로서 이 새로운 브랜드인 딥 러닝을 전파했습니다. 퍼셉트론의 브랜드 변경은 오늘날의 명성에 부분적으로 기여했습니다. 아마도 오늘날 유명 해지는 가장 ..

SW/인공지능 2020.01.02

딥러닝 : 심층 학습의 병목 현상은 무엇일까요?

딥 뉴럴 네트워크는 매우 큰 수학적 함수입니다. 매우 우아한 기능이지만 계산량이 매우 높습니다. 먼저 “딥” 신경망을 수학적으로 렌더링하면 아래와 같습니다. f1 (f2 (f3 (f4 (f5 (x))))) 일반적으로 심층 신경망에는 기능 내 기능 (일반적으로 약 30 ~ 100 개의 층)을 의미하는 더 많은 "계층"과 더 많은 인수 / 매개 변수 (신경망이 원본 고품질 이미지 파일을 분석하는 경우 512x512 매개 변수)가 있습니다. 이제 엄청 무거운 함수가 되는 것입니다. 이 아키텍처가 왜 데이터 분석에 효과적일까요? 각 기능이 서로 의존한다는 것입니다. 독립적인 기능이 아닙니다. 그것들은 모두 어떻게든 연결되어 있으며, 각각의 변화는 전체 모델에 영향을 미치는 변화의 연쇄 반응을 나타냅니다. 우리 ..

SW/인공지능 2020.01.01

머신러닝 : Bagging (배깅) : 개념, 공식, 기능

Bagging이란 앙상블의 종류로는 크게 bagging, boosting, random forest가 있습니다. 먼저 Bagging에 대해 알아보았습니다. Bagging이란 bootstrap 의 aggregating의 약자입니다. 부트스트랩을 이용해 추출한 데이터 집합들이 동일한 가중치를 갖는 모델입니다. 즉, 부투스트랩을 이용하여 샘플을 복원 추출하는 방법입니다. 부트스트랩 샘플의 크기가 전체 학습 집합의 크기와 같은 경우가 있습니다. 약 63.2%의 학습 데이터가 중복 포함됩니다. Bagging이란 출력 데이터가 범주형인 경우 bagging을 수학적으로 표현하면 아래와 같습니다. 출력 변수가 연속형인 경우에는 어떨까요? bagging을 수학적으로 표현함면 아래와 같습니다. bagging을 통해 예측하..

SW/머신러닝 2019.12.30

머신러닝 : 앙상블 개요, 장점, 정의

앙상블 개요 다수의 데이터 집합에 대해서 각각의 분류기(CLAssifier)를 학습합니다. 학습이 진행된 분류기의 예측을 결합하여 사용하는 방법을 앙상블이라고 합니다. 다수의 데이터 집하에 대래 분류를 진행합니다. 전체 데이터 집합에 비해 크기가 줄어 가각의 샘플 데이터 집합에서 과적합이 발생합니다. 그러나, 앙상블은 각각의 예측 결과를 다수결을 이용행 결합합니다. 그 과정을 통해, 과적합의 오류를 줄여주는 효과를 만들어 냅니다. 즉, 앙상블은 다양한 분류기의 예측 결과를 결합하여 단일 분류기보다 신뢰성이 높은 예측 값을 얻을 수 있습니다. 앙상블의 장점 데이터 마이닝에 있어 데이터 수집은 가장 기본적입니다. 하지만 힘든 작업 중 하나입니다. 이러한 앙상블은 데이터가 적거나 많은 경우에 대한 해결책을 제..

SW/머신러닝 2019.12.29

머신러닝 : 데이터 수집, 정규화 정의, 개념, 방법

데이터 수집 데이터 속에서 출력은 입력에 의해 대부분 결정됩니다. 따라서 모형이 학습되는 것입니다. 입력 데이터가 출력 데이터를 제대로 설명하지 못하면 모형과 상관없이 학습이 제대로 되지 않습니다. 즉 "Garbage in, Garbage out" 현상이 발생하는 것 입니다. 만약 머신 러닝에서 입력 변수가 출력 변수를 제대로 설명하지 못한다면, 다른 종류의 입력 변수들을 확보해서 분석해야 합니다. 좋은 모델을 위해서는 충분한 양의 데이터, 좋은 품질의 데이터, 대표성을 띄는 데이터, 관련 있는 특성이 존재하는 데이터가 필요합니다. 데이터 정규화 머신 러닝 모형들은 각자 학습 파라미터가 존재합니다. 이러한 파라미터는 알고리즘에 의해 학습 데이터에 맞게 파라미터는 조정하는 과정이 필요합니다. 이 떄, 변수..

SW/머신러닝 2019.12.28
반응형