전체보기 106

머신러닝 모델 - 학습곡선(다항 회귀의 차원 설정)

들어가며 이전 글에서는 데이터 간의 비선형관계를 구하기 위한 다항회귀에 대해서 알아보았습니다. 이제 데이터에 적합한 차수(degree( 2차, 3차 등 ))를 어떻게 구할지 고민해야합니다. 이번에는 학습곡선을 통해서 다항회귀를 할때 차수를 적절하게 구하는 방법에 대해서 알아보도록 하겠습니다. 목차 1. 차수의 중요성 2. 학습곡선을 통한 적합성파악 3. 모델의 일반화 오차 1. 차수의 중요성 위 그림은 이전 글(다항회귀)에서 사용한 2차곡선형의 데이터 샘플입니다. 만약 Degree를 300이나 1로 지정할 경우 어떻게 되는지 한번 알아보도록 하겠습니다. from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipelin..

Machine Learning 2020.04.16

머신러닝 모델 - 2. 다항회귀(Polynomial Regression)

들어가며 이전 글에서는 샘플과 결괏값 사이의 관계를 1차식으로 구하는 선형 회귀에 대해서 알아보았습니다. 선형회귀만으로는 2차 이상의 관계를 구할 수 없으므로 이번에는 다항관계를 구하는 다항회귀에 대해서 알아보도록 하겠습니다. 목차 정의 코드 구현 다항회귀의 특징 1.1정의 앞서 말했듯 다항회귀는 2차 이상의 방정식을 통한 관계 구현입니다. 이를 구하기 위해서는 기존 특성의 거듭제곱을 구하고 이를 새로운 특성으로서 샘플에 추가한 후 선형회귀(LinearRegression)를 구하는 것입니다. 이렇게 한 경우 x^2과 x^1을 서로 다른 특성으로 인식하여 선형회귀는 두 개의 특성에 맞는 결과를 구하기 위해 정규방정시을 사용합니다. 코드구현을 통해서 쉽게 알아보도록 하겠습니다. 1.2 코드구현 1. 2차방정..

Machine Learning 2020.04.16

머신러닝 모델 - 1. 선형회귀(Linear Regression)

목차 들어가며 선형회귀의 정의 파라미터 계산 정규방정식 정규방정식의 장단점 경사하강법 정의 학습률로인한 장단점 배치 경사 하강법 확률적 경사 하강법 미니배치 경사 하강법 들어가며 이번 글에서는 머신러닝의 모델 중 하나인 선형회귀의 정의와 모델의 파라미터를 최적화하는 방법들에 대해서 설명하도록 하겠습니다. 선형회귀의 정의 선형회귀란 주어진 데이터( x는 샘플, y는 예측값)들을 사용해서 샘플과 예측값과의 관계를 직선으로 표현하는것을 의미합니다. 직선의 방정식을 구하기 위해서는 하나의 샘플에서 각 특성에 곱할 기울기들과 편향이 필요합니다. 우리는 주어진 데이터들을 통해서 해석적으로 또는 경사하강법같은 계산을 통해서 파라미터(기울기, 편향)을 파악할 수 있습니다. 파라미터 계산 1. 정규방정식 선형회귀는 최적..

Machine Learning 2020.04.15

Kotlin - 2. Packages and Imports

들어가며 코틀린의 패키지 호출은 파이썬과 동일하므로 이를 안다면 굳이 아래의 내용을 볼 필요가 없습니다. 1.Packages 패키지는 다른 소스파일의 패키지를 호출하는 것을 의미합니다. 사용법은 간단하게 package로 호출하면 됩니다. package org.example fun printMessage() { /*...*/ } class Message { /*...*/ } // ... 2.Imports import지시어를 통해서 패키지 내부의 클래스를 따로 호출 할 수 있습니다. import org.example.Message // Message is now accessible without qualification import org.example.* // everything in 'org.exampl..

Android/Kotlin 2020.03.29

Kotlin - 1. 기본 타입(numbers, characters, booleans, arrays, and strings)

들어가며 이번 글에서는 처음으로 코틀린을 공부해보는 만큼 코틀린에 쓰이는 기본타입(numbers, characters, booleans, arrays, and strings)에 대해서 알아보도록 하겠습니다. 1. Numbers 1. 정수 1. 파이썬, javascript처럼 변수에 따로 타입을 선언하지 않음 2. 일반적인 정수를 저장하면 Int로 설정 3. Int의 범위 밖이나 뒤에 L을 추가하면 Long으로 설정 4. 변수이름 : 타입 = ? 구문을 통해서 직접 타입 설정 가능 val one = 1 // Int val threeBillion = 3000000000 // Long val oneLong = 1L // Long val oneByte: Byte = 1 2. 실수 val pi = 3.14 // ..

Android/Kotlin 2020.03.27

케이아이엔엑스(KINX) 기업 분석(IX,Internet eXchange)

목차IX(Internet eXchange)정의국내 경쟁업체 현황 및 차별성고객 및 KINX의 필요성진입장벽매출분석매출 성장 가능성매출 하락 가능성1. IX (Internet eXchange)정의IX란, 초고속 인터넷 망을 가지고 가정이나 기업에 인터넷회선을 제공하는 ISP(Internet Service Provider) 상호간 비효율적인 직접접속을 해결하기 위해 중계 또는 인터체인지 역할을 수행하며 각각의 ISP가 가지고 있는 네트워크를 연결하기 위한 연동 시스템을 말합니다. (출처. 케이아이엔엑스/분기보고서/2019.11.14)위 분기보고서에 언급된 정의를 이해하기 위해 쉽게 풀어보도록 하겠습니다.ISP는 개인에게 회선을 제공하여 인터넷에 접속하도록하고 이용료를 받기 위한 회사입니다.보통 아래와 같은 ..

교양공부/주식 2020.03.17

머신러닝 프로젝트 - 10. 최상의 모델과 오차 분석

들어가며 지난 글에서는 모델의 정확도를 올리기 위해서 최종적으로 하이퍼파라미터 조합을 탐색하는 그리드 탐색에 대해서 진행하고 최상의 하이퍼파라미터 조합을 통해 최적화된 모델을 구현해봤습니다. 이번 글에서는 최상의 모델을 분석하여 모델의 문제를 분석하고 이를 해결하기 위한 통찰을 얻고 처음에 분할 한 테스트 세트로 모델을 평가해보도록 하겠습니다. 최상의 모델과 오차 분석 각 특성의 중요도 파악 최상의 모델을 분석하면 문제에 대한 통찰을 얻을 수 있습니다. 예를들어서 주택가격을 구하기 위한 특성을 중요도를 파악할 수 있습니다. 분석을 통한 통찰 중요도를 통해서 우리는 다시 특성을 정제할 수 있습니다. 위 결과를 보니 ocena_proximity의 경우 하나의 범주를 제외하고는 별로 중요하지 않으므로 이를 제..

Machine Learning 2020.03.10

머신러닝 프로젝트 - 9. 모델 세부 튜닝(그리드 탐색, 랜덤 탐색)

들어가며 지금까지 모델의 정확도를 높이기 위해서 데이터를 정제하고 여러 가지 모델을 테스트를 해보았습니다. 이번에는 데이터 정제가 끝나고 모델 또한 확정되었을 때 마지막으로 정확도를 올리기 위한 시도인 모델 세부 튜닝에 대해서 설명해보도록 하겠습니다. 모델 세부 튜닝 (그리드 탐색) 세부 튜닝을 한다는 의미는 각 추정기와 변환기의 하이퍼 파라미터를 변경시켜 테스트한다는 의미입니다. 이것을 그리드 탐색이라고 지칭합니다. 그리드 탐색을 수동으로 조정하는 것은 매우 지루한 작업이기 때문에 이를 자동화시켜줄 GridSearchCV를 사용해봅시다. 원하는 하이퍼파라미터의 조합을 인자로 넣어서 실행할 경우 자동으로 가장 최적화된 하이퍼 파라미터의 조합을 출력해줍니다. 사용법 GridSearchCV를 사용하면 위 처..

Machine Learning 2020.03.10

머신러닝 프로젝트 - 8. 교차검증( K-fold cross-validation)

들어가며 이전 글에서는 모델을 훈련시키고 RMSE로 간단하게 평가하는 방법을 알아보았습니다. 그러나 RMSE로 평가하기에는 부족한 점이 있었습니다. 좀 더 자세하게 평가하기 위해서 교차검증(cross-validation)에 대해서 알아보도록 하겠습니다. 교차 검증(cross-validation) 교차검증은 훈련 세트를 K개 만큼 나누어 각각 폴드라고 명시합니다. 그리고 하나의 폴드를 평가를 위한 데이터로 남기고 나머지 폴드를 모델 학습에 사용합니다. 폴드를 선택하는 데는 K개의 경우의 수가 있으므로 K번 훈련, 평가를 반복하고 이 평균값과 표준편차를 추출하여 데이터를 평가할 수 있습니다. 이를 최종적으로 K-fold corss validation이라고 명명합니다. 구현 사이킷런에서 sklearn.mode..

Machine Learning 2020.03.09

머신러닝 프로젝트 - 7. 모델 선택, 훈련 그리고 평가

들어가며 드디어 마지막입니다! 문제를 정의하고 데이터를 탐색하고 훈련 세트와 테스트 세트로 나누고 데이터를 정제하고 이를 자동으로 진행하기 위해서 추정기, 변환기 그리고 파이프라인에 대해서 알아보았습니다. 그렇다면 이제 머신러닝을 위한 데이터를 준비했으니 실제로 모델을 학습시켜 보도록합시다. 선형 회귀(Linear Regression) 모델 지금까지 주택 가격을 예측하는 모델을 위해서 데이터를 준비했으므로 선형 회귀(LinearRegression) 모델을 학습시켜 예측을 진행해봅시다. https://colab.research.google.com/drive/1wWaPMCEb3ewf3CNKIeu262vQaCG36apw#scrollTo=la3RvTsfXAFv&line=1&uniqifier=1 Google Co..

Machine Learning 2020.03.08