'머신러닝'에 해당되는 글 11건
- 2019.10.11 :: 챗봇을 응용한 파이썬 텍스트 게임 제작
- 2019.10.11 :: 넘파이 NumPy
- 2019.10.09 :: 머신러닝의 개념
세부 내용은 같은 카테고리의 글들을 확인해주세요.
미니 프로젝트3 - 자연어 처리 또는 얼굴 인식을 활용한 프로그램 제작
제작 날짜 : 9월 17일 ~ 9월 24일
인원 : 5명
주제 선정 : 자연어 처리를 이용하여 게임 만들어보기
주제 선정 이유
- 챗봇을 응용하여 자연어 처리를 이용
- 대사를 플레이어가 직접 작성하므로 몰입감과 자유도 증가
- 스토리를 줌으로써 플레이어의 선택에 대한 폭을 줄임
프로젝트 명 : 챗봇을 응용한 텍스트 기반 방탈출 게임
문제점 : 플레이어가 생각할 수 있는 모든 경우의 수를 고려해야 함.
해결방법 : 방이라는 장소로 인해 플레이어가 생각할 수 있는 경우의 수를 줄임.
많은 테스터(다른 조원, 지인 등)들에게 베타테스트 시켜서 확인
맡았던 역할
- raw데이터 처리부
- 게임 전체 스토리 구상 (2人)
- 게임 챕터2 제작(총 5챕터)
- 1,2챕터 그림 디자인
프로젝트 파일 구성
- 모델생성기
- 게임구동기
- data file
- 이미지 폴더
- 게임에 사용되는 그림(.jpg, .png)
- raw 데이터 폴더
- raw 데이터(.yml)
플레이어가 '주변을 살피다'라고 적으면,
'주변','살피'로 인식되어 rawdata에 있는 데이터들을 검색하여, 같은 토큰으로 인식하는 '주변을 산핀다'의 답변을 불러옵니다. 자세한 것은 차후 github에 올릴 것이며, 블로그에서 게임구동기를 확인하시면 아실 수 있으실겁니다.
'Python 파이썬 > 챗봇을 응용한 방탈출 게임' 카테고리의 다른 글
게임구동기 (0) | 2019.10.11 |
---|---|
모델생성기 (0) | 2019.10.11 |
머신러닝의 주요 알고리즘은 선형대수와 통계에 기반합니다.
NumPy는 파이썬 언어를 기반으로 하는 수학 및 과학 연산을 위한 패키지입니다.
NumPy는 다차원 배열과 이 배열을 대상으로 여러가지 수학적 연산을 수행하는 많은 함수들을 제공합니다.
루프를 사용하지 않고 대량 데이터의 배열 연산을 가능하게 하므로 빠른 배열 연산 속도를 보장합니다.
때문에 빠른 계산 능력을 중요시하는 과학과 공학 패키지들이 넘파이에 의존하고 있습니다.
권고하는 설치 명령 :
$ pip install numpy
NumPy를 불러올 때 np로 호출하는 것이 관례입니다.
import numpy as np
ndarray
넘파이의 기반 데이터 타입은 ndarray입니다. 넘파이에서는 ndarray를 통하여 다차원 배열을 쉽게 생성하고 다양한 연산을 수행할 수 있습니다.
arr1의 형태는 (3,)으로 1차원 array로서 데이터 3개를 가지고 있음을 뜻합니다.
arr2의 형태는 (2,3)으로 2차원 array로서 2개의 로우(행)와 3개의 칼럼(열)으로 구성되어 데이터 6개(2*3)를 가지고 있음을 뜻합니다.
arr3의 형태는 (1,3)으로 2차원 array로서 1개의 로우(행)와 3개의 칼럼(열)으로 구성되어 데이터 3개를 가지고 있음을 알 수 있습니다.
arr1과 arr3은 데이터 수는 같지만 차원이 다른 것을 알 수 있습니다.
머신러닝 알고리즘을 하다보면 데이터 값으로는 서로 동일하나 차원이 달라서 오류가 발생하는 경우가 많습니다. 이러한 경우, 차원의 차수를 변환시켜야 하며, reshape()함수 등을 사용하면 됩니다.
arange
arange() 함수는 0부터 함수 인자 값 -1 까지의 값을 순차적으로 ndarray의 데이터값으로 변환합니다.
0이 아닌 원하는 함수 값으로 시작 할 수 있습니다.
linspace
linspace() 함수는 지정된 개수만큼 두 값 사이를 나눈 데이터로 채워진 ndarray를 반환합니다. 단, arange와는 다르게 마지막 함수 인자값이 포함되어 있습니다.
zeros
zeros() 함수는 모든 값이 0으로 채워진 ndarray를 반환합니다.
ones
ones() 함수는 모든 값이 1로 채워진 ndarray를 반환합니다.
dtype을 정해주지 않으면 디폴트 값인 float64 형태가 됩니다.
full
full() 함수는 지정된 값으로 채워진 ndarray를 반환합니다.
reshape
reshape() 함수는 ndarray의 차원과 크기를 변경합니다. 단, 지정된 사이즈로 변경이 불가능하면 오류를 발생합니다. 예를 들자면, (9,) ndarray를 (5,2) 형태로 변경할 수 없습니다.
-1을 사용하면 원래 ndarray와 호환되는 모양으로 변환해 줍니다.
random.rand
random.rand() 함수는 0과 1사이의 무작위의 부동 소수로 채워진 ndarray를 반환합니다.
random.randn
random.randn() 함수는 평균이 0이고 분산이 1인 일변량 정규분포에서 랜덤 샘플링한 부동 소수로 채워진 ndarray를 반환합니다.
sort
sort() 함수는 행렬을 정렬하는 대표적인 방법입니다.
행렬이 2차원 이상일 경우에 axis 축 값을 설정하여 로우 방향, 캄럼 방향으로 정렬할 수 있습니다.
argsort
argsort() 함수는 정렬된 행렬의 인덱스를 반환시켜 줍니다.
transpose
transpose() 함수를 통해 전치 행렬을 구할 수 있습니다.
'Python 파이썬 > 머신러닝' 카테고리의 다른 글
군집 분석 (클러스터 분석) (0) | 2019.11.12 |
---|---|
K-최근접 이웃 알고리즘 (KNN) 간단한 파이썬 코드 (0) | 2019.11.11 |
K-최근접 이웃 알고리즘 (KNN) (0) | 2019.11.11 |
범주형 데이터 선형회귀 분석하기 (2) | 2019.11.06 |
머신러닝의 개념 (0) | 2019.10.09 |
정의
기계학습 또는 머신러닝(machine learning)은 애플리케이션을 수정하지 않고도 데이터를 기반으로 패턴을 학습시켜 결과를 예측하는 알고리즘 기법들의 통칭입니다.
분류
일반적으로 머신러닝은 지도학습과 비지도학습, 강화학습으로 나눠집니다.
지도학습 - 데이터에 대한 레이블(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법입니다.
지도학습의 대표적인 머신러닝은 분류와 회귀가 있습니다.
비지도학습 - 데이터에 대한 레이블(명시적인 답)이 주어지지 않은 상태에서 컴퓨터를 학습시키는 방법입니다.
비지도학습의 대표적인 머신러닝은 군집화(클러스터링), 차원축소 등이 있습니다.
강화학습 - 현재의 상태에서 어떤 행동을 취하는 것이 최적인지를 학습시키는 방법입니다.
행동을 취할 때마다 외부 환경에서 보상이 주어지고, 이 보상을 최대화하는 방향으로 학습을 진행시킵니다.
오픈 소스 프로그램 언어
머신러닝 프로그램을 작성할 수 있는 대표적인 오픈 소스 프로그램 언어는 파이썬과 R입니다.
C/C++, JAVA 등의 언어도 머신러닝 프로그램 작성이 가능하지만, 파이썬이나 R에 비해 지원 패키지나 개발 생산성이 많이 떨어집니다.
머신러닝 분야에서의 R
- 통계 분석을 위해 특화된 언어이며 많은 사용자들이 생성하고 검증해온 다양한 통계 패키지를 보유하고 있습니다.
- 데이터 시각화 기능이 매우 뛰어납니다.
머신러닝 분야에서의 파이썬
- 쉽고 뛰어난 개발 생산성으로 전 세계 개발자들이 파이썬을 선호합니다.
- 인터프리터 언어의 특성상 속도는 느리지만 확장성, 유연성, 호환성이 뛰어나 다양한 영역에서 사용됩니다.
- 딥러닝 프레임워크인 텐서플로, 케라스, 파이토치 등에서 파이썬 우선 정책으로 파이썬을 지원하고 있습니다.
'Python 파이썬 > 머신러닝' 카테고리의 다른 글
군집 분석 (클러스터 분석) (0) | 2019.11.12 |
---|---|
K-최근접 이웃 알고리즘 (KNN) 간단한 파이썬 코드 (0) | 2019.11.11 |
K-최근접 이웃 알고리즘 (KNN) (0) | 2019.11.11 |
범주형 데이터 선형회귀 분석하기 (2) | 2019.11.06 |
넘파이 NumPy (0) | 2019.10.11 |