Programming & Machine Learning70 파이썬 언어에 대한 참고사항들 github 자료와 메모 자료들을 정리하던 도중, CS 관련 지식들을 정리해놓은 자료들을 발견했다.아주 기초적이고 쉬운 내용들이지만, 복습 겸 블로그에 다시 정리하고자 한다. 이 중 파이썬 언어와 관련된 참고사항들을 정리할 것이다. 1. 파이썬의 네이밍 원칙 어느 언어들이 그렇듯이, 파이썬 역시 네이밍 원칙 즉 code convention이 존재한다. 간략한 내용은 다음과 같다. - 하나의 알파벳으로 변수의 이름을 지어서는 안된다. - 모듈 : 모듈 이름은 짧아야 하고, 소문자여야만 한다. 문장이 길어지는 경우 가독성을 위한 언더스코어 사용은 허용된다. - 패키지 : 무조건 소문자여야 한다. - 클래스 이름 : CapWords 형식을 따른다. 첫글자는 대문자로 한다. - exception : 클래스와 동.. 2018. 5. 23. Python으로 regression 학습 구현하기 Machine Learning에서 가장 중요한 것 중 cost function과 theta update이 있다. 일례로, Deep learning으로 RMSE를 낮추는 prediction 모델링을 한다고 할 때 더 고급 알고리즘을 사용하거나, Batch normalization 기법을 적용하는 것 보다 learning rate나 threshold, batch size를 수정해보는 것이 훨씬 좋은 결과를 얻는 경우가 많다. 사실 해보지 않으면 잘 모른다. 해봐도 모르는 경우가 많다. 그래서 이 내용들을 제대로 이해하려면 한 번쯤 직접 구현해보는 것이 좋다고 생각했고, 파이썬으로 basic한 머신러닝 이론들을 구현하는 Implementation 프로젝트를 시작했다(github 링크). 본 포스팅에서는 간단한.. 2018. 5. 6. 파이썬 기초 문법 - 5 (format, map, isinstance 함수) 1. format 함수 format 함수는 str 타입과 관련된 함수이다. Cython을 기준으로 한 문법이며, c언어로 문자열을 출력할 때 printf 에 %를 붙이는 것과 유사한 출력 포맷이다. 원래는 파이썬으로 출력문을 작성할때 c언어와 매우 유사한 구조였지만, format 함수로 인해 이런 방식으로 코딩을 많이 하는 편이다. ##### format 함수 inputpath = '/hello/world' # :0>2 는 2자리보다 커지지 않게 숫자 앞을 0으로 채우는것 inputFormat = '{0}/{1}/{2:0>2}/{3:0>2}/time-{4:0>2}.*' print(inputFormat.format(inputpath, 2018, 2, 4, 12.1231131)) print(inputForm.. 2018. 4. 4. BeautifulSoup4를 이용한 파이썬 크롤링 데이터 분석에 활용할만한 충분한 데이터를 가지고 있지 않은 경우, 우리가 할 수 있는 가장 만만한 방법은 웹 데이터를 이용하는 것이다. 많은 경우, ResufulAPI 서버에서 자원을 얻어서 활용하기도 하지만, 사실 그건 데이터를 이미 가지고 있는 것과 마찬가지다. 그래서 크롤링을 활용해서 실제 데이터 분석에 활용하는 경우가 점점 많아지고 있다. 1. 웹에 대한 이해 크롤링을 시작하려면 먼저 웹의 기본 원리에 대한 이해가 필요하다. 웹이란 기본적으로 인터넷의 하위 개념이다. 인터넷으로 불리는 공간에서의 통신 방법은 규약이 필요하다. 서로 이해할 수 있는 언어로 이루어져 있어야 하고, 물리적인 연결 및 전송도 필요하다. 그러한 통신 규약 중 하나가 HTTP라는 것이다. 우리가 '웹' 이라고 부르는 것은 일.. 2018. 3. 26. Git에서 불필요한 파일 제거 git을 통한 버전관리를 하다 보면, OS에 따라 불필요한 파일들이 생성되는 경우가 존재한다.대표적으로 OSX의 경우에는 .DS_Store라는 파일이 생성된다. 이러한 파일들을 git version control에서 제외하거나 삭제하는 방법이 있다. 1. 특정 파일 제거하기 우선, .git이 존재하는 최상위 디렉토리로 간다.그 후, 제거하고 싶은 파일에게 다음과 같은 명령어를 사용한다. (.DS_Store가 모든 하위 디렉토리마다 있는 경우, 앞에 *을 붙인다)git rm --dry-run .DS_Store --dry-run 명령어를 사용하면, 실제로 지워지는 것이 아니라 미리 지워지는 상황을 테스트하게 된다. 그럼 다음과 같이 제거될 파일 리스트가 출력된다. 그리고 실제 삭제 명령어를 다음과 같이 입력.. 2017. 12. 4. Confusion Matrix를 통한 분류 모델의 평가 분류 모델을 학습하는 것의 목적은, 주어진 데이터를 의도에 맞게 잘 분류해내기 위한 것이다.그렇다면 이러한 모델을 평가하는 기준이 필요할 것이다.모델을 평가할때는 모델이 얼마나 정밀한지, 얼마나 실용적인 분류를 해내었는지, 얼마나 정확한 분류를 했는지를 평가해야 한다.이러한 내용들을 모두 포함하고 있는 것이 Confusion Matrix이다. 1. Confusion Matrix 레이블 0,1을 가진 데이터를 분류한다고 할 때 관심 범주를 1이라고 한다. True Positives : 1인 레이블을 1이라 하는 경우를 True Positives라고 한다. -> 관심 범주를 정확하게 분류한 값.False Negatives : 1인 레이블을 0이라 하는 경우를 False Negatives라고 한다. -> 관심.. 2017. 11. 18. 가설의 검정과 p-value 지도학습의 영역에서 모델을 학습할 때, 가장 중요한 것은 "어떤 변수를 학습에 포함할 것인가?" 라는 질문이라고 할 수 있다.이 질문에 대한 답은 반드시 수치적 해석과 검증을 통한 것이어야 한다.그래서 필요한 것이 변수에 대한 가설의 설정, 이에 대한 검정과 판단이다.변수가 의미있는 변수일 것이란 가설을 세운 뒤 이를 통계적인 방법으로 검정해야 한다. 1. p-value의 의미에 대하여 통계학적 관점에서 가설을 검증하는 방법이다. 어떤 자료에 대한 수치적 특성, 이를테면 평균 같은 것을 구한다고 하자. 하지만 실제의 집단(모집단)은 전수조사 할 수 없기 때문에 주어진 자료는 샘플링된 자료이고, 샘플링이라는 것을 통해 실제 집단의 수치적 특성을 추론해야 한다. 예를 들어 실제 모집단의 평균이 50, 분산이.. 2017. 11. 18. 인공신경망과 딥 러닝 앞선 포스팅에서는 인공신경망의 개념, 퍼셉트론과 퍼셉트론의 업그레이드 버전인 에이다라인 알고리즘에 대해 알아봤다. 오늘은 딥 러닝에 대해 이야기해보고자 한다. 딥 러닝 (Deep Learning) 컴퓨터 과학 혹은 통계학을 하는 사람이라면, 아니 어쩌면 일반인중에서도 딥 러닝이라는 단어를 못 들어본 사람은 아마 없을 것이다. 장안의 화제인 딥 러닝은, 많은 레이어를 가진 인공신경망을 효율적으로 훈련하기 위한 알고리즘의 세트이다.힌튼(G.E. Hinton) 교수가 다중 레이어 신경망의 훈련법에 대한 해답 (역전파 알고리즘)을 제시하면서 다시 각광받은 알고리즘으로, 원래는 명확한 한계점이 있다고 학계에서 외면받았던 알고리즘 이기도 하다. 하지만 현재 학계와 산업계를 이끄는 것은 바로 이녀석이다. 딥 러닝의 .. 2017. 9. 1. 비지도학습과 클러스터링 비지도 학습에서의 군집분석 머신 러닝은 크게는 두 가지, 지도학습과 비지도학습으로 나뉜다.지도학습은 이미 결과를 알고 있는, label이 있는 데이터를 예측하거나 분류하는 것이다. 반면 비지도학습은 label이 없는 데이터에서 패턴을 발견하고, 숨겨진 구조를 찾아내는 것이다.가장 대표적인 비지도학습으로 군집분석이 있다. 아래의 그림을 보자. 왼쪽의 점들은 A, B라는 label, 즉 그들의 정체가 밝혀져 있다.오른쪽 점들은 그것들의 정체를 가려 놓은 것이다. 왼쪽 데이터의 경우, 직선 하나를 그어 놓고 점들을 분류한다고 생각해보자. 우리는 그들의 정체를 알고 있기 때문에, 분류에 대한 평가까지 할 수 있다.만약 직선 위의 데이터라면 A. 직선 아래의 데이터라면 B이다. A,B 라는 기준에 따라 이리저리 .. 2017. 9. 1. 연속형 회귀분석에 대한 전반적인 내용들 머신 러닝은 크게 지도학습과 비지도학습, 강화학습으로 나뉜다.그리고 그 안에서도 분류, 예측, 추천 등의 또 다른 갈래가 있다. 그 중에서 예측 분야의 골조가 되는 알고리즘인 회귀분석의 A부터 Z까지의 대략적인 개념을 정리해 보았다. 1. 회귀 모델이란 먼저 회귀 모델이 무엇인가에 대한 정의가 필요하다.회귀 모델이란 연속형 스케일을 가진 목표변수를 예측하는 방법 중에 한 가지 모델이다.지도학습의 일종으로 변수 간 관계, 연관성을 파악하기에 좋고, 가장 단순하면서도 가장 강력한 예측 방법 중 하나이다.휘황찬란한 딥러닝 알고리즘도, 결국엔 회귀 모델 식 하나로 최종적 판단을 하게 된다. 2. 심플 선형회귀 심플 선형회귀는 단일 설명변수 하나와 연속형 반응변수간의 관계를 모델링 하는 것이다.y = w_0+w_.. 2017. 8. 23. 이전 1 2 3 4 5 6 7 다음