파이썬

    [Python] keras를 활용한 뉴스분류 실습

    43. keras를 활용한 뉴스분류 실습 41.1 실습예제 # 케라스 로딩 import keras keras.__version__ # 뉴스 기사 분류: 다중 분류 문제 # 로이터 뉴스를 46개의 토픽으로 분류하는 신경망(다중분류) ## 로이터 데이터셋 # 1986년에 로이터에서 공개한 짦은 뉴스 기사와 토픽의 집합인 데이터셋(케라스 내장 데이터셋) # 텍스트 분류를 위해 널리 사용되는 간단한 데이터셋 # 46개의 토픽 # 각 토픽은 최소 10개의 샘플이 있음 # 데이터 다운로드 from keras.datasets import reuters # 자주 등장하는 단어 10,000개로 제한 (train_data, train_labels), (test_data, test_labels) = reuters.load_..

    [Python] keras를 활용한 영화리뷰 분석

    42. keras를 활용한 영화리뷰 분석 42.1 실습예제 # 영화 리뷰 분류(이진분류) # 영화 리뷰를 긍정, 부정으로 분류 import keras keras.__version__ ## IMDB 데이터셋(케라스에 내장된 데이터셋, 숫자로 전처리되어 있음, 17MB 정도의 데이터셋) # 영화 리뷰 50,000개의 데이터셋 # 학습용 데이터 25,000개와 검증용 데이터 25,000개, 각각 50%는 부정, 50%는 긍정 리뷰로 구성 # num_words=10000 가장 자주 나타나는 단어 10,000개만 사용, 드물게 나타나는 단어는 무시 # train_data, test_data: 리뷰의 목록 # 각 리뷰는 단어 인덱스의 리스트(단어 시퀀스가 인코딩된 것) # train_labels, test_labe..

    [Python] 합성곱 신경망(CNN)

    40. 합성곱 신경망(CNN) 40.1 CNN 40.1.1 이미지를 작은 구역으로 나누어 부분적인 특징을 인식하고 이것을 결합하여 전체를 인식하는 알고리즘 40.1.2 이미지 인식에 성능이 뛰어나며 최근 텍스트 분류에도 많이 사용되고 있음 40.1.3 텍스트 데이터를 word2vec을 적용하여 벡터로 변환한 후 CNN에 입력하여 분석하는 모델 40.2 실습예제1(이미지 분류-mnist) # 합성곱 신경망 # MNIST 숫자 이미지 분류에 CNN 사용 # (image_height, image_width, image_channels) 크기의 입력 텐서를 사용 # 첫 번째 입력층의 매개변수로 input_shape=(28, 28, 1) 전달 import keras keras.__version__ from ker..

    [Python] DNN(Keras)

    39. DNN(keras) 39.1 실습예제(mnist) # 필기체를 분류하는 DNN 구현 # 심층신경망(Deep Neural Network, DNN) 은닉층을 많이 쌓아서 만든 인공신경망 # 학습데이터가 적거나 복잡한 이미지에 더 우수한 성능을 보이는 기법 %matplotlib inline import numpy as np import pandas as pd import os from keras.utils import up_utils from keras import layers, models, datasets # seaborn import seaborn as sns sns.set(style = 'white', font_scale = 1.7) sns.set_style('ticks&#..

    [Python] 인공신경망 실습(Keras)

    38. 인공신경망 실습(keras) 38.1 실습예제1(기초적인 인공신경망) # 케라스 패키지 임포트 from keras.models import Sequential from keras.layers import Dense import numpy as np # 입출력 데이터 # 딥러닝 모델에 입력할 값 x = np.array([0, 1, 2, 3, 4]) # 출력값: x * 가중치 + 편향 y = x * 2 + 1 print("x: ", x) print("y: ", y) # 인공신경망 모델링 # 케라스 인공신경망 생성 model = Sequential() # 입력노드 1개를 가지는 선형처리계층 추가 model.add(Dense(1, input_shape = (1,))) # 모델 컴파일, 확률적 경사 하강법..

    [Python] 회귀분석(keras)

    37. 회귀분석(keras) 37.1 케라스(keras) 37.1.1 케라스의 개요 파이썬으로 구현된 쉽고 간결한 딥러닝(deep learning) 라이브러리 구글의 엔지니어인 프랑소와 숄레(Francois Chollet)가 2015년 3월에 발표 최근 버전: 2019년 10월 현재 2.3.0 내부적으로는 텐서플로우(tensorflow) 엔진이 구동되지만 직관적인 API로 쉽게 딥러닝 실험을 할 수 있도록 지원함 37.1.2 케라스의 주요 특징 모듈화(Modularity): 독립적인 모듈들을 조합하여 구현 최소주의(Minialism): 각 모듈은 짧고 간결 쉬운 확장성: 클래스나 함수로 모듈을 쉽게 추가할 수 있음 파이썬 기반: 별도의 설정이 필요없음 37.1.3 케라스 설치 pip install ker..

    [Python] Tensorflow 실습

    36. Tensorflow 실습 36.1 TensorFlow의 주요 개념 36.1.1 오퍼레이션(Operation) 그래프 상의 노드 하나 이상의 텐서를 받을 수 있음 계산을 수행하고 결과를 하나 이상의 텐서로 리턴 36.1.2 텐서(Tensor) 일종의 다차원 배열 내부적으로 모든 데이터는 텐서를 통해 표현됨 그래프 내의 오퍼레이션 간에는 텐서만이 전달됨 36.1.3 세션(Session) 그래프를 실행하기 위해서 필요한 객체 36.1.4 변수(Variables) 그래프의 실행 시 파라미터를 저장하고 갱신하는데 사용됨 메모리 상에서 텐서를 저장하는 버퍼 역할

    [Python] Tensorflow 기초

    35. Tensorflow 기초 35.1 머신러닝 / 인공지능 35.1.1 인간이 코딩 등으로 사전에 정의 내린 행동이 아닌 행동을 하도록 하는 것에 가까운 개념(Arthur Samuel, 1959) 35.1.2 스팸필터, 상품추천, 자율주행차 등의 다양한 분야에서 활용되고 있음 35.1.3 머신러닝은 러닝, 즉 "학습"의 개념이 포함됨 35.2 학습 머신러닝을 코딩한다는 것은 결국 "학습"하는 방법을 코딩한다는 것 어떻게 학습을 시킬 것인가? = 어떻게 시행착오를 거치게 할 것인가? 35.2.1 어떤 목표를 정해 놓고 목표를 달성하게 할 경우 의도된 결과를 도출하도록 하는 것 35.2.2 손실 함수, 비용 함수(cost function, loss function) 학습을 통해 그 값을 최소로 만드는 것..

    [Python] Java와 Python 연동

    34. Java와 Python 연동 34.1 Java에서 Python 명령어를 실행하는 방법 34.1.1 Jython Python 2.7 기준의 문법이 적용됨 numpy, pandas 등의 외부 라이브러리 사용이 어려운 단점이 있음 34.1.2 JEP 34.1.3 pyro4 34.1.4 Java에 내장된 Process 명령어를 사용하는 방법 34.2 Jython 설치 Jython 2.7.2 Installer 버전 다운로드 및 설치 다운로드받은 python-installer-2.7.2.jar 파일을 더블 클릭하여 기본 옵션으로 설치함(설치 디렉토리는 C:\jython2.7로 통일) 프로젝트 경로에 한글이 포함되어 있으면 아래와 같은 에러가 발생함 Cannot create PyString with non-b..

    [Python] SVM(Support Vector Machines)

    32. SVM(Support Vector Machines) 32.1 개요 32.1.1 예측 기법 Boser, Guyon 및 Vapnik에 의해 1992년 제안된 이후, 1990년대 후반부터 현재까지 학계와 업계(주로 미국 및 유럽 선진국)에서 활발하게 활용되고 있는 예측 기법 32.1.2 기계학습의 분야 기계학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도학습 모델 32.1.3 용도 주로 분류와 회귀 분석을 위해 사용됨 32.1.4 알고리즘 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때 새로운 데이터가 어느 카테고리에 속할지 판단하는 기준으로 가장 큰 폭을 가진 경계를 찾는 알고리즘 직선 B1과 B2 모두 두 범주를 잘 분류하고 있음 B2보다는 B1이 두 범주를 여유있게 분류하고..

    [Python] 의사결정나무

    31. 의사결정나무(Decision Tree) 31.1 의사결정나무 모형 31.1.1 일련의 독립변수들을 활용하여 분류를 하거나 예측을 수행하는 기법 31.1.2 최종 결과물이 "일련의 규칙들"로 표현됨 31.1.3 Decision Trees 또는 Trees라고 불림 31.2 의사결정나무의 2가지 기본 아이디어 31.2.1 반복적 분할(Recursive partitioning) 31.2.1.1 레코드들을 두 부분으로 반복해서 잘라 세분된 영역 내의 동질성이 최대가 되도록 함 31.2.1.2 계속 잘라나가다 보면 모든 학습용 데이터를 100% 정확하게 분류해 낼 수 있을 만큼 세분화 해 나갈 수 있음 31.2.2 분류나무의 가지치기(Pruning the tree) 31.2.2.1 앞서 설명한 반복적 분할을..

    [Python] Pandas

    25. Pandas 25.1 실습 예제 - Pandas 기초 Series - 1차원 배열 DataFrame - 2차원 배열, 표 형태 import numpy as np import pandas as pd Series 자료형 생성 obj = pd.Series([3, 6, 9, 12]) print(obj) print(type(obj)) # 자료형 print(len(obj)) # 개수 기본적으로 숫자 인덱스로 처리됨 obj = pd.Series([3, 6, 9, 12]) obj 숫자 대신 문자열 인덱스 사용 가능 # obj = pd.Series([3, 6, 9, 12]), index = ["a", "b", "c", "d"]) obj = pd.Series([3, 6, 9, 12]), index = ["1번", ..