본문 바로가기

728x90
반응형

연구개발/Machine Learning

(12)
set_session import tensorflow as tf from keras.backend.tensorflow_backend import set_session # tf.compat.v1.disable_eager_execution() # config = tf.compat.v1.ConfigProto() # config.gpu_options.per_process_gpu_memory_fraction = 0.1 # set_session(tf.compat.v1.Session(config=config)) config = tf.compat.v1.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = 0.1 tf.compat.v1.keras.backend.set_sess..
[Chapter6] 모델 평가와 하이퍼파라미터 튜닝에 관한 사례학습 # 파이프라인을 가진 스트리밍 워크플로우 ''' 위스콘신 유방암 데이터 이 데이터는 악성(malignant)과 양성(benign)의 암세포로 구성된 569개 샘플을 포함. ~2 열까지는 각 샘플의 ID숫자와 이들의 진단 결과값을 저장 3 ~ 32 열은 30개의 실제 값으로 이루어진 피처 ''' import pandas as pd df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data', header=None) from sklearn.preprocessing import LabelEncoder X = df.loc[:, 2:].values y = df.loc[:, 1]..
[Chapter5] 차원축소를 이용한 데이터 압축 ''' 차원축소를 위한 피처 선택의 방법 중 피처 추출이 있다. 원래보다 낮은 차원의 새로운 피처 부분공간으로 변환시킴으로써 데이터의 정보를 요약할 수 있도록 도와주는 세 가지 기초 기법에 대해 학습한다. * 비지도적 데이터 압축을 위한 주성분 분석(PCA) * 최대화 분류 분리를 위한 지도적 차원축소 기법으로써의 선형 분리 분석(LDA) * 커널(kernel) 주성분 분석을 활용한 비선형 차원축소 ''' # 주성분 분석을 활요한 비지도적 차원축소 # 전체 분산과 설명 분산 import pandas as pd df_wine = pd.read_csv('wine.data', header=None) from sklearn.cross_validation import train_test_split from skl..
[Chapter4] 데이터 전처리 import pandas as pd from io import StringIO csv_data = '''A,B,C,D 1.0,2.0,3.0,4.0 5.0,6.0,,8.0 0.0,11.0,12.0, ''' df = pd.read_csv(StringIO(csv_data)) print('df:\n ', df) print('df.isnull().sum():\n ', df.isnull().sum()) # 결측값을 가진 샘플이나 피처 제거 print('df.dropna():\n ', df.dropna()) # 결측값을 가진 행을 제거하는 방법 print('df.dropna(axis=1):\n ', df.dropna(axis=1)) # 결측값을 가진 열을 제거하는 방법 print("df.dropna(how='all'..
모두를 위한 머신러닝과 딥러닝의 강의 https://hunkim.github.io/ml/ 모두를 위한 머신러닝과 딥러닝의 강의알파고와 이세돌의 경기를 보면서 이제 머신 러닝이 인간이 잘 한다고 여겨진 직관과 의사 결정능력에서도 충분한 데이타가 있으면 어느정도 또는 우리보다 더 잘할수도 있다는 생각을 많이 하게 되었습니다. Andrew Ng 교수님이 말씀하신것 처럼 이런 시대에 머신 러닝을 잘 이해하고 잘 다룰수 있다면 그야말로 "Super Power"를 가지게 되는 것이 아닌가 생각합니다.더 많은 분들이 머신 러닝과 딥러닝에 대해 더 이해하고 본인들의 문제를 이 멋진 도구를 이용해서 풀수 있게 하기위해 비디오 강의를 준비하였습니다. 더 나아가 이론에만 그치지 않고 최근 구글이 공개한 머신러닝을 위한 오픈소스인 TensorFlow를 이용해서 ..
7. 매트릭스와 벡터 계산하기(Linear algebra) 이번에는 선형대수학(Linear algebra)에 대해서 공부를 합니다.이름은 거창하지만 실제로는 더하기, 곱하기 이런 기본 산수 수준인데 단지 다른 것은 알고리즘을 사용하기 위해서 필요한 행렬과 벡터 위주로 다루고 있습니다. 행렬이나 벡터도 이름만 거창하지 실제로는 여러번 산수해야하는 것을 한번에 산수하면 되도록 해주는 도구라고 생각하면 될 것 같습니다. 알아두면 매우 유용한 면이 많아 보이는 내용입니다. 예를 들어서, 1+1, 1+2, 1+3을 한다고 생각해보겠습니다.단순한 더하기를 3번 수행해야 하는데, 행렬이나 벡터를 이용하면 더하기 1번에 3개의 결과를 얻어낼수 있는 효과가 있을 뿐이지 더하기는 동일합니다. 행렬(Matrix) 사각형 모양안에 숫자들을 나열해 놓은 형태로 아래 그림과 같이 표기가..
6. 머신이 학습하는 알고리즘 (Gradient descent algorithm) 지난번에 Cost 함수에 대해서 알아보았습니다. 이번에는 Cost 함수를 minimizing 하기 위한 알고리즘에 대해서 알아보겠습니다.이 알고리즘의 이름은 Gradient descent algorithm이라고 합니다. 변역해서 이야기 하면 경사면을 하강하는 알고리즘이 되는데 실제로도 그렇습니다. 우리는 기본이 되는 linear regression에서 하나씩 살펴보고 있지만 실제로 이 알고리즘은 여러 다양한 분야에서 범용적으로 사용이 되는 알고리즘입니다. 중요하다는 뜻이 되겠습니다. Cost 함수를 minimizing하기 위한 방법중에 하나인 이 Gradient descent algorithm은 이미 알고 계시듯이 우리가 목표로 하는 직선을 찾기 위한 방법이되고 이를 머신이 학습한다고 표현합니다. 현재까..
5. 결과 값을 비교하는 방식(Cost function) 우리는 Supervised 방식을 공부하고 있기 때문에 결과 값을 비교할 수 있습니다.왜냐하면 실제 정확한 결과 값을 알고 있기 때문입니다.이 결과 값을 비교할 수 있는 표현이 Cost입니다. 그리고 Cost를 수학적인 함수로 표현하는 것도 배우게 될 것입니다. 이전 내용에서 이어서h 함수를 일차방정식으로 표현할 수 있었습니다. ( h = Ax + B)여기서 A와 B를 Parameters라고 합니다. 이 파라미터가 결정이 되면 우리는 원하는 결과 값을 찾을 수 있게 됩니다. 그럼 이 파라미터 값은 어떻게 찾을 수 있을까요?바로 minimize를 해서 찾을 수 있습니다. 우리는 이미 결과 값을 알고 있기 때문에 실제 결과 값과 알고리즘이 수행하여 예측한 결과 값을 비교해서 그 차이를 구할 수 있는데, 이 ..

728x90
반응형