programming

    [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..

    [R] 인공신경망

    11. 인공신경망 11.1 인공신경망의 개요 11.1.1 개요 11.1.1.1 인공지능의 한 분야 11.1.1.2 인간 두뇌의 생물학적 작동 형태를 모방하여 컴퓨터로 하여금 지적인 능력을 갖추게 하는 방법론 11.1.1.3 공학 부문에서 시작되어 재무 관리 등에 도입되기 시작 11.1.2 선형분류와 비선형분류 11.1.3 인공신경망의 구조 11.1.4 학습결과의 예 11.2 기본 개념 11.2.1 처리요소(PE) 11.2.1.1 각자의 인자(neuron)를 의미 11.2.1.2 노드(node) 또는 유니트(unit)라고 함 11.2.2 층(layer) 11.2.2.1 보통 세 개의 층(three-layered) 11.2.2.2 은닉(hidden) 층 입력값과 출력값을 연결시켜 주는 매개변수값으로 채워지게..

    [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] Clustering, KNN

    33. Clustering, KNN 33.1 분류의 2가지 종류 33.1.1 Classification 33.1.2 Clustering 33.2 군집분석(Clustering)의 원리 33.2.1 거리가 가까운 (유사도가 높은) 개체들을 서로 묶어 하나의 그룹으로 정리 33.2.2 거리(유사도)의 계산방법 유클리드 거리(Euclidean distance)가 주로 사용됨 맨해튼 거리(Manhattan distance) 33.2.3 군집화 방법 33.2.3.1 계층적 군집화 방법 Hierarchical method 33.2.3.2 비계층적 군집화 방법 K-means clustering(비지도학습, Unsupervised Learning) 33.3 K-means 군집화의 실행단계 33.3.1 나누고자 하는 클러..

    [Git] 저장소에 텅 빈 디렉터리를 만들어보자!

    프로젝트 중에는 경우에 따라 빈 폴더가 있어야 하는 경우가 있습니다. 예를 들어 파일 업로드/다운로드 기능 개발 시 uploads/ 등의 비어 있는 공간을 만들고 이곳에 경로를 잡아 자원을 관리하기도 합니다. 소스 코드를 GitHub로 관리하고 있다면 원격 저장소에 이 정적 디렉터리 안의 샘플 파일까지 커밋할 필요는 없습니다. 하지만 안의 내용을 다 지우고 아무리 Push를 진행하더라도 Git은 빈 디렉터리를 인식 대상에서 제외합니다. 그런데 나는 꼭 빈 디렉터리를 원격 저장소에 함께 올리고 싶다면? 해결책이 전혀 없는 건 아닙니다. 바로 .keep이라는 임시 숨김 파일을 만들어서 넣어주는 방법인데요. 파일 이름에 정해진 규칙은 없지만, 관례상 .keep 또는 .gitkeep을 많이 사용하는 것 같습니다..

    [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 앞서 설명한 반복적 분할을..

    [Github] 저장소(Repository)에 라이선스를 달아보자!

    Github를 자주 이용한다면 저장소(Repository)를 보다 완성도 있게 만들고 싶은 욕구가 생깁니다(?). 실제 유명한 오픈소스 프로젝트 역시 두리번거리다 보면 하나같이 공통점이 있는데요. 바로 라이선스를 명시하고 있다는 것입니다. 사실 많은 분이 간과하고 있는 점 중 하나가 라이선스 명시를 지키지 않는 부분인데요. 오픈소스 생태계에서 이 부분은 되게 중요합니다. 저도 경각심을 가지고 이번 포스팅을 작성하게 되었습니다. 대표적인 S/W 라이선스로 GPL이나 BSD, MIT 등등 많은 종류가 있는데, 이번에는 자신의 Github 저장소에 라이선스를 추가해보도록 하겠습니다. 실제로 그렇게 어렵지 않으니 한번 정리해놓으면 그다음부터는 손쉽게 진행할 수 있습니다. 원격 저장소 확인 및 새 파일 생성 먼저..