728x90

IT 417

머신러닝 분류 모델의 성능평가

1. 모델의 성능지표에 대해 만들어진 모델의 성능평가 지표는 단순히 하나가 아니다. 분류 모델과 회귀 모델의 차이점은 물론, 분류 혹은 회귀 모델 중에서도 평가지표가 복수여서 결국 어떤 지표를 사용해 모델을 평가해야하는가 매우 고민이 된다. 이번 포스팅에서 다양한 평가지표를 소개하며, 어떤 때에 어떤 지표를 이용하는 것이 좋은지를 소개하고자 한다. 2. 분류 모델의 성능 평가 분류모델이란 목적변수가 어느 카테고리(예: 병이 있는지 아님 건강한지, 합격인지 불합격인지 등)에 소속되는가를 예측하는 모델이다. 먼저, 분류 모델의 성능 평가에서 사용하는 지표를 살펴보자. 설명을 간략화하기위해 2클래스 분류(목적변수가 A인가 B인가의 2종류)의 예로 살펴보자. 1) 혼동행렬(confusion Matrix)에 대해..

IT/AI\ML 2020.05.27

[python] 머신러닝의 모델 정밀도 향상에 효과적인 학습곡선과 검증곡선 입문

인공지능을 학습시키는 것까지는 좋았으나 '전혀 사용할 수 없잖아!'라고 생각되는 과학습에 빠져버리면 곤란하다. 과학습이란 훈련 데이터(학습 데이터)는 정답은 잘 맞추지만 미지의 데이터는 전혀 정답을 맞추지 못하는 모델의 상태를 일컫는다. 이전의 포스팅에서 말했듯 과학습의 대책의 하나로 학습 곡선을 그리는 것이 효과적이라고 했는데, 이 포스팅에서 학습곡선에 대해 조금 더 자세히 정리해볼 생각이다. 1. 학습 곡선이란? 학습곡선이(learning curve)란 훈련 데이터의 양에 대해, 모델의 범화성능을 플롯한 것이다. 즉, 훈련 데이터에 대한 모델의 성능과 검증 데이터에 대한 모델의 성능이 훈련 데이터의 양에 따라 어떻게 변화해가는지를 표시한 그래프이다. 다음과 같은 이미지라고 할 수 있다. ※ 플롯 : ..

IT/AI\ML 2020.05.25

[IT 회사 생활] 일본 IT 업계, 사내에서 자주 쓰이는 용어

일본어 발음 뜻 プロパー 특히 IT업계에서는 협력 기업이나 하청 회사 등의 스태프와 구별하기 위해, 자사 사원을 'プロパー社員' 이라고 부른다. 特にIT業界では、協力企業や下請け会社などのスタッフと区別する際、自社社員のことを「プロパー社員」と呼びます。 アサイン (assign) 일반적으로 'アサイン'은 '어떤 업무에 대한 인재를 할당하다'라는 뉘앙스로 사용된다. 一般的には「アサイン」は、「ある業務に対して人材を割り当てる」というニュアンスで使用します。 アジャイル アジャイルとは『すばやい』『俊敏な』という意味で、反復 (イテレーション) と呼ばれる短い開発期間単位を採用することで、リスクを最小化しようとする開発手法の一つです。アジャイル型開発手法にはいろいろなバリエーションがありますが、例えば次のような進め方で開発をします。 1. 顧客とエンジニアが..

머신러닝 정밀도의 향상을 위해 해야할 것

어떤 예측모델에서 큰 오차가 발생한 우 다음에 무엇을하면 좋을까? 자주하는 방법이 '정밀도가 나오지 않는 것은 트레이닝 데이터 부족하기 때문이다!'라고 생각하고 갑자기 데이터를 모으는 것이다. 이 방법은 쓸데 없는 노력으로 끝나는 경우가 많으므로 반드시 좋은 방법이라고 할 수 없다. 그래도 '해 볼 수 밖에 없다'라고 생각할지도 모르겠지만, 그 방법을 하기 전에 아래의 항목을 통해 다른 방법을 꾀할 수도 있다. [정밀도 향상 대책 후보] 1. 훈련 데이터를 더욱 수집한다. 2. 특징량(Feature) n을 감소시킨다. 3. 특징량(Feature) n을 증가시킨다. 4. 고차원의 특징을 추가한다. (x21,x22,x1x2,…) 5. 정규화 계수 λ를 작게한다. 6. 정규화 계수 λ를 크게한다. ※ 학습률 ..

IT/AI\ML 2020.05.24

[비즈니스 일본어] 틀리기 쉬운 경어 50선

1. 상사나 고객에 사용하면 실례가 되는 말·표현 15선 동료나 후배에 대해 사용해도 문제없지만, 상사에게 사용하지 않는 것이 좋은 말과 표현에 대해 소개하도록 하겠다. 1) ご苦労さまです 후배에게 사용하는 말로 'お疲れ様です。'가 적당한 표현이다. 2) 了解しました。 ’承知いたしました。’나’かしこまりました。’를 사용하도록 하자. 3) しばらくぶりです。 ’しばらくです’는 동료나 후배에게 사용하는 표현이다. 예를 들어 ’お久しぶりです’라고 말하는 경우, 상대의 위치를 고려하지 않고 사용하는 표현이므로 실례까지는 아니다. 그러나, 경의를 표현하고 싶은 경우 'ご無沙汰しておりました'를 이용하는 것이 좋다. 4) いつもお世話様です。 ’お世話様です。’는 ’ご苦労様です。’와 같은 사용법으로 본인보다 위의 위치에 있..

[python] Python의 os 모듈 사용법 정리

os모듈은 OS에 의존하는 다양한 기을 제공하는 모듈이다. 파일이나 디렉토리 조작이 가능하고, 파일의 목록이나 path를 얻을 수 있거나, 새로운 파일 혹은 디렉토리를 작성하는 것도 가능하다. 이 포스팅을 통해 os 모듈에서 사용할 수 있는 주요 메소드를 정리하고자 한다. 1. os.walk() os.walk()는 파일이나 디렉토리의 목록을 얻기 위한 모듈이다. 인수로 디렉토리명을 지정하는 것으로 파일이나 특정 확장자의 목록, 파일 경로를 취득할 수 있다. 예를 들어, 파일의 목록을 얻고 싶은 경우 아래와 같이 작성할 수 있다. [디렉토리의 구성] test/ ┣ dirA ┃ ┣ a-1.txt ┃ ┣ a-2.txt ┃ ┗ dirD/ ┃ ┗ d-1.txt ┃ ┣ dirB/ ┃ ┣ b-1.py ┃ ┗ b-2...

IT/언어 2020.05.21

[python] ArgumentParser(argpaser)의 사용법 간단 정리

Python의 실행시에 커맨드로 인수를 얻고 싶을 때, ArgumentPaser(argpaser)을 사용하면 편리하다. 다양한 형식으로 인수를 지정하는 것도 가능하다. 처음 argparse를 사용하고자하여 여러 포스팅을 읽어봤지만 자세한 옵션까지 해설한 포스팅이 많아 정작 하고 싶은 방법을 간단히 하는 방법을 알 수 없었던 기억이 있다. 필요한 최소한의 내용을 정리하여, 다른 사람들도 금방 읽고 적용하도록 할 수 있도록 하면 좋을 것 같다고 생각하여 작성하는 포스팅이다. 1. ArgumentParser이란? 프로그램 실행시 커맨드로 인수를 얻는 처리를 간단하게 구현할 수 있는 라이브러리이다. ArgumentParser를 사용하면, $ python program.py test.txt --alpha 0.01..

IT/언어 2020.05.20

[python] 리스트의 요소 추가와 다른 리스트와의 결합

만들어진 리스트에 새로운 요소를 추가하거나, 다ㄴ 리스트와 결합(연결)하는 방법에 대해 설명한다. 요소를 추가하는 것에는 append 메소드나 extend 메소드를 사용한다. 1. 리스트에 요소 추가하는 방법 리스트에 새로운 요소를 추가하는 방법이다. 리스형에 이용 가능한 append메소드를 이용하면 다음과 같다. list.append(값) 인수로 지정한 값을 가진 요소를 리스트의 마지막에 추가한다. 구체적으로는 다음과 같이 사용할 수 있다. mylist = ["A", "B", "C"] mylist.append("D") print(mylist) --> ["A", "B", "C", "D"] 2. 슬라이드 기능을 사용한 요소 추가하는 방법 리스트에서는 슬라이드 기능을 통해 시작 인덱스와 마지막 인덱스를 지정..

IT/언어 2020.05.19

[python] 교차검증(cross validation/クロスバリデーション/交差検証)과 그 방법들

1. 교차 검증이 필요한 이유 데이터는 기본적으로 label이 있는 train, test set으로 구성되어 있다. 만약 train set을 다시 trainset + validaton set으로 분리하지 않는다고 가정하면, 우리는 모델 검증을 위해 test set을 사용하여야 할 것이다. 이 경우 한 가지 취약점이 존재한다. 고정된 test set을 이용해 모델의 성능을 확인하고 파라미터를 수정하는 과정을 반복하면 결국 내가 만든 모델은 test set에서만 잘 작동하는 모델이 되어버리고 만다. 즉, test set에 과적합(overfitting)되어 실제 데이터를 가지고 예측을 수행하면 제대로 된 결과를 얻을 수 없게 된다. 즉 고정된 train set과 test set으로 평가를 하고 반복적으로 모델..

IT/AI\ML 2020.05.19

[python] Iterator와 Generator

Python의 iterator과 generator에 대해 정리해보았다. ● iterator : 요소가 복수인 컨테이너(리스트, 퓨플, 셋, 사전, 문자열)에서 각 요소를 하나씩 꺼내 어떤 처리를 수행할 수 있도록 하는 간편한 방법을 제공하는 객체이다. ● generator : iterator의 한 종류로, 하나의 요소를 꺼내려고 할 때마다 요소 generator를 수행하는 타입으로, Python에서는 yield문을 통해 구현하는 것이 보통이다. python의 내장 컬렉션 (list, tuple, set, dic 등)의 어떤 것이든 iterable을 상속받고, 내장의 컬렉션을 사용한 반복문 처리로 미리 컬렉션 값을 입력해둬야할 필요가 있으므로 아래와 같은 경우는 interator또는 generator을 직..

IT/언어 2020.05.13
728x90