'전체 글'에 해당되는 글 67건
- 2019.11.13 :: AI튜터 출시, AI기술로 영어 공부
- 2019.11.12 :: 군집 분석 (클러스터 분석)
- 2019.11.11 :: 연주자 감성까지 반영하는 '음악AI'연구
- 2019.11.11 :: K-최근접 이웃 알고리즘 (KNN) 간단한 파이썬 코드
- 2019.11.11 :: K-최근접 이웃 알고리즘 (KNN)
- 2019.11.08 :: 대학생에게 홈쇼핑 데이터를 주면 매출을 예측할 수 있을까?
- 2019.11.07 :: 더존비즈온, '위하고' 기반으로 이커머스 사업 진출
- 2019.11.06 :: 범주형 데이터 선형회귀 분석하기 2
뉴스 출처입니다~ 자세한 내용은 밑의 기사에서 확인해주세요^^
(http://www.aitimes.com/news/articleView.html?idxno=121321)
AI와 외국어 교육 분야를 접목시킨 AI튜터 서비스가 올 하반기에 출시한다고 합니다.
관계자에 따르면 음성 AI 기술과 문장 유사도 알고리즘을 활용하여 비즈니스, 일상 상황 영어를 대화형 UX로 시공간의 제약 없이 스스로 학습할 수 있는 트레이닝 서비스라고 합니다.
문장 유사도 알고리즘
워드투벡터(Word2Vec)
단어 간 유사도를 반영할 수 있도록 단어의 의미를 벡터화하는 방법이 필요합니다. 그리고 이를 위해 사용되는 대표적인 방법이 워드투백터(Word2Vec)입니다.
Word2Vec에는 CBOW(Continuous Bag of Words)와 Skip-Gram 두 가지 방식이 있습니다.
CBOW는 주변에 있는 단어들을 가지고, 중간에 있는 단어들을 예측하는 방법입니다.
Skip-Gram은 중간에 있는 단어로 주변 단어들을 예측하는 방법입니다. 메커니즘 자체는 CBOW와 거의 동일합니다.
글로브(GloVe)
글로브는 카운트 기반과 예측 기반을 모두 사용하는 방법론입니다. 예측 기반의 Word2Vec의 단점을 보완한다는 목적으로 나왔으나 현재까지의 연구에 따르면 두 개 중 어느 것이 더 우수하다고 할 수 없다고 합니다.
'기타 > IT 관련 뉴스 기사수집' 카테고리의 다른 글
BNK·DGB·JB금융, 빅데이터 플랫폼 구축…‘디지털 전환’ 가속 (0) | 2020.05.20 |
---|---|
‘삼성 AI 포럼 2019’ 기술 한계 극복을 위해 글로벌 전문가 한 자리에 (0) | 2019.11.14 |
연주자 감성까지 반영하는 '음악AI'연구 (0) | 2019.11.11 |
대학생에게 홈쇼핑 데이터를 주면 매출을 예측할 수 있을까? (0) | 2019.11.08 |
더존비즈온, '위하고' 기반으로 이커머스 사업 진출 (0) | 2019.11.07 |
군집분석은 주어진 데이터셋 내에서 각 객체의 유사성을 측정하여 집단을 분류하고 군집으로 나누는 비지도 기계 학습 기법입니다. 데이터의 분할 및 요약에 널리 사용되고 있으며, 데이터에서 유용한 지식을 추출하는 데 활용됩니다.
군집분석을 통해 수백만의 데이터를 직접 확인하지 않고 각각의 대푯값만을 확인해 전체 데이터의 특성을 파악할 수 있습니다.
군집을 분류하는 데 있어 가장 기본적인 가정은 군집 내에 속한 객체들의 특성은 서로 동질적이고, 다른 군집에 속한 객체들 간의 특성은 서로 이질적이 되도록 분류해야 합니다.
군집화를 수행할 시 주요적으로 고려할 사항으로는 어떤 알고리즘을 사용할지, 어떤 거리 척도를 사용할지, 최적 군집 수는 어떻게 결정할지 등이 있습니다.
대표적인 군집분석기법으로는 k-means이 있으며, partitioning, categorical, k-medoid, clara, clarans 등이 있습니다.
객체의 종류에 따라 다양한 유사도 기준이 적용됩니다. 대표적인 유사도 척도로 유클리디안 거리가 있으며, 맨하탄 거리, 마할라노비스 거리, 상관계수 거리 등이 있습니다.
'Python 파이썬 > 머신러닝' 카테고리의 다른 글
[파이썬, 텐서플로우] 단순회귀분석 (Simple Regression Analysis) (2) | 2019.11.21 |
---|---|
K-최근접 이웃 알고리즘 (KNN) 간단한 파이썬 코드 (0) | 2019.11.11 |
K-최근접 이웃 알고리즘 (KNN) (0) | 2019.11.11 |
범주형 데이터 선형회귀 분석하기 (2) | 2019.11.06 |
넘파이 NumPy (0) | 2019.10.11 |
출처입니다. 자세한 내용은 밑에 뉴스에서 확인해주세요~
(http://www.munhwa.com/news/view.html?no=2019110401031503009001)
내용 요약
카이스트와 서울대 교수분들이 3년째 '인간 작곡가와 연주자의 감성을 인공지능 피아노에 담는다는 주제를 목표로 하고 있다고 합니다. 기존 데이터와 비슷한 경과가 나오는 모방 기반의 생성 기술은 어렵지 않지만, 지금까지와 전혀 새로운 창작을 할 수 있을지는 의문이라고 하네요. 연구가 어려운 점으로는 음악 데이터의 부족과 시간과 돈의 제약 융합 미비라고 합니다. 그리고 과학자와 음악가들의 협업이 국내에선 덜 활발하다는 이야기도 있었습니다.
용어설명
GAN(Generative Adversarial Network, 생성적 적대 신경망)
생성적 적대 신경망(GAN)이란 두개의 네트워크로 구성된 심층 신경망 구조입니다. 최대한 진짜 같은 데이터를 생성하려는 생성 모델(generator)과 진짜와 가짜를 판별하려는 분류 모델(discriminator)이 각각 존재하여 서로 적대적으로 학습합니다.
GAN은 다음과 같은 동작으로 이루어집니다.
- 생성 모델이 임의의 수를 입력받아 생성한 이미지로 반환합니다.
- 이렇게 생성된 이미지와 실제 데이터 세트에서 가져온 이미지들을 분류 모델에 전달합니다.
- 분류모델에서는 실제 이미지와 가짜 이미지를 판별해 0과 1사이의 확률값으로 반환시킵니다.
( 1 : 실제 이미지, 0 : 가짜 이미지)
'기타 > IT 관련 뉴스 기사수집' 카테고리의 다른 글
BNK·DGB·JB금융, 빅데이터 플랫폼 구축…‘디지털 전환’ 가속 (0) | 2020.05.20 |
---|---|
‘삼성 AI 포럼 2019’ 기술 한계 극복을 위해 글로벌 전문가 한 자리에 (0) | 2019.11.14 |
AI튜터 출시, AI기술로 영어 공부 (0) | 2019.11.13 |
대학생에게 홈쇼핑 데이터를 주면 매출을 예측할 수 있을까? (0) | 2019.11.08 |
더존비즈온, '위하고' 기반으로 이커머스 사업 진출 (0) | 2019.11.07 |
이론 부분은 전편에서 확인해주세요(https://sno-machinelearning.tistory.com/61)
KNN알고리즘을 파이썬으로 간단하게 표현했습니다.
우선 필요 패키지부터 불러옵니다.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
그 후 데이터를 불러옵니다. (데이터는 네이버의 2019년 자동차 데이터 중 일부를 가져왔습니다.)
data = pd.read_csv('cars.csv', encoding="euc-kr")
data.city_mpg = data.city_mpg*10 # 변수끼리 간단하게나마 비율을 맞추었습니다.
df_z = np.array(data.fuel)
df_xy = data[["hp", "city_mpg"]]
data_xy = df_xy.as_matrix()
그다음에는 새롭게 분류할 데이터를 생성합니다.
hp = int(input('마력 입력 : '))
mpg = float(input('도심연비 입력 : '))*10
target = [hp, mpg]
dataset을 만들어 데이터를 분석하기 쉽게 만들어, 분류대상 및 범주를 생성합니다.
def data_set():
size = len(df_xy)
class_target = np.tile(target, (size, 1))
class_z = np.array(df_z)
return df_xy, class_target, class_z
dataset, class_target, class_z = data_set()
유클리디안 거리 공식(Euclidean Distance)을 이용하여, 분류할 대상과 분류범주와의 거리를 구합니다.
그후, 가까운 값에따라 오름차순으로 정렬한 후 그 값에 따라 어떤 카테고리에 가까운지 분류합니다.
def classify(dataset, class_target, class_category, k):
diffMat = class_target - dataset
sqDiffMat = diffMat**2
row_sum = sqDiffMat.sum(axis=1)
distance = np.sqrt(row_sum)
sortDist = distance.argsort()
class_result = {}
for i in range(k):
c = class_category[sortDist[i]]
class_result[c] = class_result.get(c, 0) + 1
return class_result
이제 k값을 입력하는 코드와 함수를 호출하는 코드를 작성합니다.
k = int(input('k값을 입력해주세요 :'))
class_result = classify(data_xy, class_target, class_z, k) # classify()함수호출
print(class_result)
k값을 입력해주세요 :5
{'가솔린': 3, '디젤': 2}
위의 결과를 확인하였을 때, 내가 분류할 대상은 '가솔린' 연료 사용 카테고리에 가장 가까운 것을 알 수 있습니다.
def resultprint(class_result):
hev = Gas = die = 0
for c in class_result.keys():
if c == '하이브리드':
hev = class_result[c]
elif c =='가솔린':
Gas = class_result[c]
else :
die = class_result[c]
if hev > Gas and hev > die:
result = "분류대상은 하이브리드 입니다."
elif Gas > die and Gas > hev:
result = "분류대상은 가솔린 입니다"
elif die > hev and die > Gas:
result = "분류대상은 디젤 입니다."
else:
result = "k값을 변경해주세요."
return result
print(resultprint(class_result))
출력결과로는
분류대상은 가솔린 입니다.
라고 나올것입니다.
밑의 그림은 보기 쉽도록 시각화한 그래프입니다.
파란색 동그라미가 가솔린, 녹색 십자가가 하이브리드, 회색 엑스가 디젤입니다. 그리고 적색 별이 타켓입니다.
그래프는 밑에 있는 코드로 작성할 수 있습니다.
for c in range(len(df_xy)):
data_xy[c][1] = data_xy[c][1]/10
if df_z[c] == '가솔린':
plt.scatter(data_xy[c][0],data_xy[c][1],marker='o',color='b')
elif df_z[c] == '하이브리드':
plt.scatter(data_xy[c][0],data_xy[c][1],marker='+',color='g')
else:
plt.scatter(data_xy[c][0],data_xy[c][1],marker='x',color='gray')
plt.scatter(hp,mpg/10,marker='*',color='r')
plt.show()
출처 :
자동차 데이터 (https://auto.naver.com/car/mainList.nhn)
'Python 파이썬 > 머신러닝' 카테고리의 다른 글
[파이썬, 텐서플로우] 단순회귀분석 (Simple Regression Analysis) (2) | 2019.11.21 |
---|---|
군집 분석 (클러스터 분석) (0) | 2019.11.12 |
K-최근접 이웃 알고리즘 (KNN) (0) | 2019.11.11 |
범주형 데이터 선형회귀 분석하기 (2) | 2019.11.06 |
넘파이 NumPy (0) | 2019.10.11 |
K-최근접 이웃 알고리즘은 특정 공간 내에서 입력과 가장 근접한 K개의 요소를 찾아서 더 많이 일치하는 것으로 분류하는 알고리즘으로 가장 간단한 기계학습 알고리즘입니다.
그림으로 살펴보도록 하겠습니다.
최근접 이웃 알고리즘은 그림 속의 물음표의 주변에 세모가 있기 때문에 세모라고 판단하는 알고리즘입니다.
다음 그림도 살펴보겠습니다.
위의 그림은 주변에서 몇 개를 골라서 볼 것인가에 따라 물음표의 분류가 바뀝니다.
이렇게 주변에 있는 몇 개의 요소들을 같이 봐서 가장 많이 골라내는 것을 K-최근접 이웃 알고리즘(KNN)이라고 할 수 있습니다. KNN 알고리즘에서 K는 주변의 개수를 의미한다고 보시면 됩니다.
K가 1일 때는 동그라미라고 판단하겠지만, K를 3으로 변경한다면 세모라고 판단할 것입니다.
하지만 문제가 있습니다. 과연 K는 몇인가 가장 좋을까요?
위의 그림에서 확인할 수 있듯이, 물음표를 네모인지 세모인지 결론을 내릴 수 없게 됩니다.
위의 그림 처럼 k값이 커지면 항목 간의 경계가 불분명해지며, 결론을 내기 더 힘들어 질 수 있습니다.
이진(2개의 항목) 분류 문제에서는 홀수인 K를 선택하는 것이 바람직 하지만 항목이 여러개일 수도 있습니다.
따라서, KNN알고리즘을 사용할 때는 분류될 그룹의 종류등을 고려하여 적절한 K값을 설정하는 것이 중요합니다.
'Python 파이썬 > 머신러닝' 카테고리의 다른 글
군집 분석 (클러스터 분석) (0) | 2019.11.12 |
---|---|
K-최근접 이웃 알고리즘 (KNN) 간단한 파이썬 코드 (0) | 2019.11.11 |
범주형 데이터 선형회귀 분석하기 (2) | 2019.11.06 |
넘파이 NumPy (0) | 2019.10.11 |
머신러닝의 개념 (0) | 2019.10.09 |
출처 (자세한 내용은 밑에 뉴스에서 확인해주세요.)
https://byline.network/2019/11/08-21/
내용 요약
17회 SAS 분석 챔피언십은 기업에서 실제로 사용하는 데이터를 통해 학생들에게 실제 비즈니스 툴과 데이터를 주어 데이터를 예측하는 대회입니다.
동국대학교 팀이 대상을 수상하였으며, 그 이유는 홈쇼핑에 대한 지식을 잘 쌓았으며, 이상치 제거 등도 함부로 하지 않고 높은 이유를 찾아냈습니다. 분석과 변수, 모델링이 활용방안과 연계된 것이 특징이라고 합니다.
모델링의 경우 SAS 비주얼 데이터 마이닝 앤드 머신러닝(SAS® Visual Data Mining and Machine Learning; SAS VDMML)을 사용하였습니다.
SAS 비주얼 데이터 마이닝 앤드 머신러닝
- 통합적인 시각화(프로그래밍) 인터페이스를 통하여 분석 라이프 사이클의 모든 작업을 처리하는 엔드 투 엔드(End-to-end)로 데이터 마이닝 및 머신런이 프로세스를 지원합니다.
- Python, R, Java 등의 다양한 프로그래밍 언어를 지원합니다. 다른 프로그래밍 언어를 통해 검증된 SAS 머신러닝 알고리즘에 액세스하여 강력한 성능을 경험할 수 있으며, 자동 생성된 SAS 스코어 코드를 사용하여 예측 모델을 신속하게 배포할 수 있습니다.
- 데이터 접근부터 정교한 모델의 적용까지 머신러닝이나 딥러닝 등의 인공지능 개발의 전 과정을 단순하고 직관적으로 이미지를 시각화합니다.
'기타 > IT 관련 뉴스 기사수집' 카테고리의 다른 글
BNK·DGB·JB금융, 빅데이터 플랫폼 구축…‘디지털 전환’ 가속 (0) | 2020.05.20 |
---|---|
‘삼성 AI 포럼 2019’ 기술 한계 극복을 위해 글로벌 전문가 한 자리에 (0) | 2019.11.14 |
AI튜터 출시, AI기술로 영어 공부 (0) | 2019.11.13 |
연주자 감성까지 반영하는 '음악AI'연구 (0) | 2019.11.11 |
더존비즈온, '위하고' 기반으로 이커머스 사업 진출 (0) | 2019.11.07 |
출처 (자세한 내용은 밑에 뉴스에서 확인해주세요~)
https://www.zdnet.co.kr/view/?no=20191015172242&re=R_20191101175626
내용 요약
더존비즈온에서 비즈니스 플랫폼 '위하고(WEHAGO)' 기반의 웹빌더 서비스를 이번달(2019.11) 중에 오픈한다고 합니다.
웹빌더는 홈페이지, 쇼핑몰 등을 전문적인 지식 없이도 손쉽게 제작하고 운영할 수 있도록 돕는 서비스입니다.
뉴스에 따르면, 더존비즈온에서 보유한 빅데이터, 인공지능 등의 첨단 기술과 전사적자원관리(ERP), 결제대행(PG) 등 핵심 솔루션과의 연계를 통해 이커머스 플랫폼을 성장시키겠다고 합니다.
위하고(WEHAGO)
더존비즈온이 개발한 빅데이터 활용 플랫폼 서비스
위하고 플랫폼은 메신저, 이메일, 문서작성프로그램, 클라우드 드라이브까지 각종 업무 기능을 통합적으로 사용할 수 있습니다.
세무회계 전문가용 버전으로 'WEHAGO T'가 있습니다.
전사적 자원관리(ERP) 시스템
경영 정보 시스템의 한 종류로 기업 내 생산, 재무, 회계, 구매, 재고 등 전반적인 경영 활동을 통합 관리하고 기업 정보를 공유해 새로운 정보 생성과 빠른 의사결정을 돕는 시스템입니다.
'기타 > IT 관련 뉴스 기사수집' 카테고리의 다른 글
BNK·DGB·JB금융, 빅데이터 플랫폼 구축…‘디지털 전환’ 가속 (0) | 2020.05.20 |
---|---|
‘삼성 AI 포럼 2019’ 기술 한계 극복을 위해 글로벌 전문가 한 자리에 (0) | 2019.11.14 |
AI튜터 출시, AI기술로 영어 공부 (0) | 2019.11.13 |
연주자 감성까지 반영하는 '음악AI'연구 (0) | 2019.11.11 |
대학생에게 홈쇼핑 데이터를 주면 매출을 예측할 수 있을까? (0) | 2019.11.08 |
아는 사람이 졸업작품으로 '날씨에 따른 중국집 배달 수를 조사'하고 싶다고 하여서 참고하라고 만들어보았습니다.
우선 필요할 듯한 패키지입니다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import matplotlib.ticker as plticker
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
import os
import tensorflow as tf
import statsmodels.formula.api as sm
from patsy import dmatrices
지인의 데이터를 확인하지 못하여 임의로 만들었습니다.
x1 x2 x3
1 0 0 - 맑음
0 1 0 - 흐림
0 0 1 - 비
0 0 0 - 눈
순위가 정해지지 않은 범주형 데이터를 분석할 때에는 변수를 위와 같이 만들어야합니다.
일단 데이터를 불러옵니다.
data = pd.read_csv('data.csv')
model = sm.ols(formula = 'y ~ x1 + x2 + x3',data=data).fit()
model.summary()
선형회귀표입니다.
P>|t| 가 0.05 보다 높으면 쓸모 없는 변수이지만, x1,x2,x3는 날씨라고 하는 한 변수의 더미변수이기 때문에 전부 버려야하는 상황이 아니면 버리지 않습니다.
Adj.R-squared 는 수정된 상관관계입니다. 실제로 종속변수에 영향을 주는 독립변수들에 의해 설명되는 분산의 비율을 알려줍니다. 이번 블로그의 주제인 '날씨에 따른 중국집 배달 수를 조사'는 사회과학에 속하기에 시계열, 패널 데이터가 아닌 이상 결정계수가 낮을 가능성이 매우 크지만, 적절한 추정방법을 사용했다면 작더라도 상관은 없습니다.
다루기 편하게 x와 y를 NumPy 배열로 변경합니다.
multi_y = np.array(data.y)
df_x = data[["x1", "x2", "x3"]]
multi_x = df_x.as_matrix()
그 다음부터는 본격적으로 tensorflow를 사용하겠습니다.
with tf.Graph().as_default() as multi_regresstion:
num_x = 3 # x변수는 몇개?
X = tf.placeholder(tf.float32, [None, num_x], name='X')
Y = tf.placeholder(tf.float32, [None], name='Y')
lr = tf.constant(1e-3,tf.float32)
W = tf.get_variable("W", [1,num_x], tf.float32)
b = tf.get_variable("b",dtype=tf.float32,initializer=tf.constant(1.,tf.float32))
h = tf.matmul(W,X,transpose_b=True) + b
cost = tf.reduce_mean(tf.square(tf.subtract(h,Y)))
train = tf.train.GradientDescentOptimizer(lr).minimize(cost)
우선 multi_regresstion이라는 이름을 가진 그래프를 만듭니다.
그후 placeholder 2개를 그래프에 추가합니다. placeholder는 외부데이터를 받아서 저장하는 변수로,
tf.placeholder(자료형, 텐서모양,이름)으로 구성됩니다.
tf.constant는 상수를 정의해주며, tf.constant(값, 자료형)으로 구성됩니다.
tf.get_variable은 학습 중에 계속 변하는 변수이며, tf.get_variable(이름,자료형,초기값)으로 구성됩니다.
여기까지가 선형회귀에 필요한 변수입니다.
cost는 계산할 오차이며, 이 오차를 줄이기 위해 GradientDescent알고리즘을 이용하였습니다.
이제 그래프 그리기는 모두 끝났으며, Session을 사용하여 방금 만든 그래프를 불러옵니다.
with tf.Session(graph=multi_regresstion) as sess:
sess.run(tf.global_variables_initializer())
for i in range(3000):
_,l = sess.run([train,cost],feed_dict={X:multi_x,Y:multi_y})
print("loss",l)
W_multi, b_multi = sess.run([W,b])
학습을 진행할 수록 loss(cost)가 줄어드는 것을 볼 수 있습니다. (만약 NA값이 뜨거나 점점 커지면 식의 설명력이 너무 낮아서 변수를 바꾸거나 다른 방법을 써야 합니다. 이건 나중에 쓸 일이 있으면 올리겠습니다.)
for j in range(len(multi_x)):
sum = 0
for i in range(3):
sum += W_multi[0][i] * multi_x[j,i]
print(multi_y[j],sum+b_multi)
print(W_multi,b_multi)
이제 학습을 마쳤으니 결과를 확인할 차례입니다.
실행시에 위와 비슷한 결과가 나옵니다.
결과적으로
h = -2.593823*x1 + 1.0692451*x2 + 3.6352885*x3 + 5.5272436
라는 식을 얻을 수 있습니다.
def weather(weather):
if weather == '맑음':
a,b,c = 1,0,0
elif weather == '흐림':
a,b,c = 0,1,0
elif weather == '비':
a,b,c = 0,0,1
elif weather == '눈':
a,b,c = 0,0,0
else:
a,b,c = 'error'
d = W_multi[0][0]*a+W_multi[0][1]*b+W_multi[0][2]*c+b_multi
return(a,b,c,d)
이제 새로운 값을 얻었을 경우 값 예측을 만들면 됩니다.
weather('눈')
'Python 파이썬 > 머신러닝' 카테고리의 다른 글
군집 분석 (클러스터 분석) (0) | 2019.11.12 |
---|---|
K-최근접 이웃 알고리즘 (KNN) 간단한 파이썬 코드 (0) | 2019.11.11 |
K-최근접 이웃 알고리즘 (KNN) (0) | 2019.11.11 |
넘파이 NumPy (0) | 2019.10.11 |
머신러닝의 개념 (0) | 2019.10.09 |