Programming & Machine Learning/Python X 머신러닝
-
인공뉴런(퍼셉트론, 에이다라인)과 그래디언트 디센트(Gradient Descent)의 개념 및 구현Programming & Machine Learning/Python X 머신러닝 2017. 8. 3. 01:51
머신러닝의 핵심 원리1. 인공 뉴런의 개념머신 러닝과 관련된 학문은 초기에 인공 뉴런을 표방하는 것으로 시작되었다. 뇌가 어떻게 일하는지를 이해하려는 노력의 산물이 바로 인공 뉴런이다. 뉴런은 뇌에서 서로 연결되어있는 신경 세포를 의미하는데, 이를 알고리즘으로 해부하면 다음과 같다. 하나하나의 신경세포는 바이너리 출력을 갖는 간단한 논리 게이트를 가지고 있다. 신경세포가 다음 신경세포로 신호를 보내는 임계치를 판단하는 것이 바로 활성함수의 개념이다. (정확히는 활성함수의 아웃풋은 비용함수로 이용되고, 임계함수가 최종 판단의 역할을 한다. 아래의 예제코드에서 활성함수는 new_input, 임계함수는 predict이다. 글을 정독한 뒤 다시 이 문단을 읽으면 이해가 된다) 이 활성함수의 최적의 가중계수를 자..
-
Mini Batch Processing 방식의 구현과 학습모델의 임베딩Programming & Machine Learning/Python X 머신러닝 2017. 8. 2. 20:34
아웃 오브 코어 기법 (mini batch processing 방식)배치 방식이 아닌 온라인 방식으로 모델을 학습한 뒤, 학습한 모델을 저장해보고 다시 읽어보는 예제를 진행하였다. in-memory 방식으로 대용량 데이터를 학습시키고 모델을 만들기에는 한계가 있다. 따라서 mini batch의 방식으로 데이터를 chunk로 나누어서 처리해야 한다. 감성분석에서 사용한 대용량 데이터를 다시 예제로 사용하였다. tf-idf를 추출하기 위해서는 TfidfTransformer 클래스를 사용했지만, mini batch 방식(=온라인)에서는 사용할 수가 없다. 하지만 비슷한 일을 해주는 HashingVectorizer가 있다. 이를 통해 전체 문서에서 tf-idf를 하는 것과 비슷한 작업을 해줄 수 있다. 참고로,..
-
감성분석을 위한 Python에서의 텍스트 데이터 처리기법Programming & Machine Learning/Python X 머신러닝 2017. 8. 2. 13:18
감성분석을 위한 텍스트 데이터 처리1. 문서의 변수화 작업, bag-of-words감성분석은 문서의 양극성을 분석하는 작업이다. 데이터에서 추출한 단어들을 설명 변수, 해당 데이터에 대한 양과 음의 레이블을 목적 변수로 하는 것이 일반적이다. 분류를 위한 설명 변수들을 정해줘야 하는데, 즉 텍스트를 수치형 피처 벡터로 표현할 수 있어야 한다. 가장 기본적인 방법이 bag-of-words 모델이라고 할 수 있다. bag-of-words 모델은 전체 문서 집합의 단어들의 단어집을 만든 후, 특정 문서에서 단어집에 포함된 단어가 얼마나 자주 사용되었는지 횟수를 포함하는 각 문서에 대한 피처 벡터를 만든다. 각 문서의 단어들은 단어집 내에서의 부분집합을 나타낼 뿐이기 때문에, 피처벡터는 대부분 0이 된다. 문서..
-
Python - sklearn, jupyter로 Decision Tree 학습하기Programming & Machine Learning/Python X 머신러닝 2017. 7. 31. 21:17
02DecisionTree_practice In [2]: R을 공부하며 Decision Tree를 정리했었는데, 파이썬에서 비슷한 내용을 정리해보고자 한다. 소스코드는 scikit-learn의 공식 튜토리얼 문서자료와 [Python Machine Learning]을 참고하였다. In [3]: 파이썬에서 sklearn 모듈을 사용해서 의사결정 트리를 학습하는 과정은 R에 비하면 약간 덜 직관적이고, 조금 더 객체지향스러운 프로그래밍의 느낌이다. DecisionTreeClassifier라는 일종의 모델 helper를 사용하여 학습이 진행된다. X,Y 데이터셋을 fit이라는 함수에 입력하는 간단한 절차를 거치면, 놀랍게도(?) 학습이 완료된다. In [4]: from sklearn import tree X =..
-
pandas를 활용한 데이터 전처리Programming & Machine Learning/Python X 머신러닝 2017. 7. 29. 11:22
pandas를 이용한 데이터 전처리1.1 pandas를 사용하지 않은 방법### 기본적인 json read import json path = '/Users/yoon/Downloads/pydata/pydata-book-master/' path = path + 'ch02/usagov_bitly_data2012-03-16-1331923249.txt' records = [json.loads(line) for line in open(path, encoding="utf-8")] records[0]['tz'] records[0] records['tz'] # -> error! 이런 문제점을 해결하기 위해 df 구조가 필요한 것. pandas를 사용하지 않았을 때의 json 파일을 읽는 방법이다. json 모듈을 이용하..
-
파이썬 기초 문법 - 4 ('_' 언더스코어의 의미)Programming & Machine Learning/Python X 머신러닝 2017. 7. 27. 02:38
4. 언더스코어의 의미타 언어에서 언더스코어 '_'은 단순히 스네이크 표기법 정도로만 사용이 되곤 한다. 파이썬에서 언더스코어는 조금 특별한 기능을 하는데, 이는 파이썬이 인터프리터 언어라는 속성에 기인한다. 4.1 파이썬 인터프리터에서의 사용위 그림은 IPython으로 파이썬 인터프리터를 실행한 것이다. 언더스코어는 다음에서 볼 수 있듯, 마지막 변수를 저장하는 역할을 한다. 4.2 특정 값을 skip할 때a, _, b = 1, 3, 2 # a=1, b=2 a, _, b = [1, 2, 3] # a=1, b=3 for _ in range(10): print("hello")4.3 숫자의 구분자로써 활용a = 1_000_00_0 # a=1000000 b = 0b_11_0_1 # b=134.4 네이밍의 용도..
-
파이썬 기초 문법 - 3 (클래스와 오브젝트)Programming & Machine Learning/Python X 머신러닝 2017. 7. 27. 02:36
클래스와 오브젝트################################################################# ################################################################# ### 클래스에서 self, cls, static의 역할 # class는 붕어빵 빵틀, object는 붕어빵이라고 비유가 가능. # self는 붕어빵 각각이 가지는 속성이고, cls는 붕어빵 빵틀이 가지는 속성임. # 클래스의 멤버변수를 선언할때 아래처럼 선언하면 빵틀 변수가 되는 것이고, # init 에서 self로 선언하면 붕어빵의 변수가 되는 것이다. class InstanceCounter: count = 0 count2 = 0 def __init__..
-
파이썬 기초 문법 - 2 (함수와 모듈)Programming & Machine Learning/Python X 머신러닝 2017. 7. 27. 02:34
1. 파이썬의 함수1.1 함수 사용 개념파이썬에서 함수는 정의(def keyword)로 표현.파이썬에서는 함수를 일급 객체(First Class Object)로 다룸.일급 객체란 프로그래밍 언어 설계에서 매개변수로 넘길 수 있고 함수가 반환할 수도 있으며 변수에 할당이 가능한 개체를 가리키는 용어파이썬에서는 함수를 매개변수로도 사용할 수 있고 함수의 결과로 반환하는 것도 가능1.2 함수 사용 예제### 다중 리턴과 타입 def abc(a,b): re1 = a+b re2 = a-b re3 = a*b return re1,re2,re3 def abc2(a,b): re1 = a+b re2 = a-b re3 = a*b return [re1,re2,re3] def abc3(a,b): re1 = a+b re2 = a..
-
파이썬 기초 문법 - 1 (수, 텍스트, 자료구조)Programming & Machine Learning/Python X 머신러닝 2017. 7. 25. 17:23
1. 파이썬 기본 문법파이썬에서 기초가 되는, 파이썬의 독특한 문법들을 대강 코드로 정리해봤다. 제어문이나 반복문은 파이썬에서만 사용되는 특징적인 부분을 나중에 정리해야겠다. 1.1 수 다루기### 2,16,10 진법 관련 # Ob xxxxx -> 2진법 # Oc xxxxx -> 16진법 # Ox xxxxx -> 10진법 # >>> bin(8) # '0b1000' # >>> hex(10) # '0xa' # >>> oct(10) # '0o12' ### math module import math # 여러 수를 표현 가능 math.pi math.e math.abs() # 절대값 round() # 반올림 math.trunc() # 버림1.2 텍스트 다루기a = "hello world!" b = "헬로 월드!" ..
-
Install Python 3 + Anaconda(+tensorflow) + Jupyter on Mac OSProgramming & Machine Learning/Python X 머신러닝 2017. 6. 30. 01:12
0. 시작하며 Mac OS에서 GPU 버젼을 사용하려면 NVIDIA CUDA를 사용해야 한다. 유감스럽게도 비교적 최근에 나온 Mac 제품들에는 NVIDIA 그래픽카드가 들어가 있지 않기 때문에 Mac OS 에서 GPU 버젼을 쓰려면 NVIDIA 그래픽카드가 들어있는 제품을 이용하거나 Linux 환경의 서버에서 개발을 진행해야 할 것이다. 1. Install Python3 on Mac OS Mac OS에서 GPU 버젼을 사용하려면 NVIDIA CUDA를 사용해야 한다. 유감스럽게도 비교적 최근에 나온 Mac 제품들에는 NVIDIA 그래픽카드가 들어가 있지 않기 때문에 Mac OS 에서 GPU 버젼을 쓰려면 NVIDIA 그래픽카드가 들어있는 제품을 이용하거나 Linux 환경의 서버에서 개발을 진행해야 할 ..