2017년 5월 16일 화요일

데이터 출처 소개

데이터 출처



로또 데이터

주식 데이터: 


  • 참조하면 좋은 사이트
  • 시스템 트레이딩을 위한 데이터 사이언스
  • (링크가 끊겨서 키워드로 제공합니다)

제안하고 싶으신 AI 문제가 있다면 댓글로 추천해주세요.

2017년 5월 2일 화요일

앱 개인정보 보호

개인정보처리방침 - 170

('andychoi.gonetis.com'이하 'aistore')은(는) 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.

('aistore') 은(는) 회사는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

○ 본 방침은부터 201711일부터 시행됩니다.


1. 개인정보의 처리 목적 ('andychoi.gonetis.com'이하 'aistore')은(는) 개인정보를 다음의 목적을 위해 처리합니다. 처리한 개인정보는 다음의 목적이외의 용도로는 사용되지 않으며 이용 목적이 변경될 시에는 사전동의를 구할 예정입니다.

가. 홈페이지 회원가입 및 관리

회원 가입의사 확인 등을 목적으로 개인정보를 처리합니다.


나. 마케팅 및 광고에의 활용

신규 서비스(제품) 개발 및 맞춤 서비스 제공, 서비스의 유효성 확인, 접속빈도 파악 또는 회원의 서비스 이용에 대한 통계 등을 목적으로 개인정보를 처리합니다.




2. 개인정보 파일 현황

1. 개인정보 파일명 : 모바일 광고 id
- 개인정보 항목 : 서비스 이용 기록
- 수집방법 : 제휴사로부터 제공 받음
- 보유근거 : 구글 모바일 광고
- 보유기간 : 지체없이 파기
- 관련법령 : 표시/광고에 관한 기록 : 6개월




3. 개인정보처리 위탁

('aistore')은(는) 원활한 개인정보 업무처리를 위하여 다음과 같이 개인정보 처리업무를 위탁하고 있습니다.

('andychoi.gonetis.com'이하 'aistore')은(는) 위탁계약 체결시 개인정보 보호법 제25조에 따라 위탁업무 수행목적 외 개인정보 처리금지, 기술적․관리적 보호조치, 재위탁 제한, 수탁자에 대한 관리․감독, 손해배상 등 책임에 관한 사항을 계약서 등 문서에 명시하고, 수탁자가 개인정보를 안전하게 처리하는지를 감독하고 있습니다.

③ 위탁업무의 내용이나 수탁자가 변경될 경우에는 지체없이 본 개인정보 처리방침을 통하여 공개하도록 하겠습니다.


4. 정보주체의 권리,의무 및 그 행사방법 이용자는 개인정보주체로서 다음과 같은 권리를 행사할 수 있습니다.

① 정보주체는 aistore(‘andychoi.gonetis.com’이하 ‘aistore) 에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.
1. 개인정보 열람요구
2. 오류 등이 있을 경우 정정 요구
3. 삭제요구
4. 처리정지 요구
② 제1항에 따른 권리 행사는aistore(‘andychoi.gonetis.com’이하 ‘aistore) 에 대해 개인정보 보호법 시행규칙 별지 제8호 서식에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 <기관/회사명>(‘사이트URL’이하 ‘사이트명) 은(는) 이에 대해 지체 없이 조치하겠습니다.
③ 정보주체가 개인정보의 오류 등에 대한 정정 또는 삭제를 요구한 경우에는 <기관/회사명>(‘사이트URL’이하 ‘사이트명) 은(는) 정정 또는 삭제를 완료할 때까지 당해 개인정보를 이용하거나 제공하지 않습니다.
④ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보 보호법 시행규칙 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.



5. 처리하는 개인정보의 항목 작성

('andychoi.gonetis.com'이하 'aistore')은(는) 다음의 개인정보 항목을 처리하고 있습니다.

1<마케팅 및 광고에의 활용>
- 필수항목 : 접속 로그
- 선택항목 : 접속 로그




6. 개인정보의 파기('aistore')은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.

-파기절차이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.-파기기한이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.

-파기방법
전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다.



7. 개인정보의 안전성 확보 조치 ('aistore')은(는) 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.

1. 개인정보에 대한 접근 제한
개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.



8. 개인정보 보호책임자 작성


① aistore(‘andychoi.gonetis.com’이하 ‘aistore) 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.


▶ 개인정보 보호책임자
성명 :최대복
직책 :개발자
직급 :개발자
연락처 :01055971556, cdb153@naver.com,
※ 개인정보 보호 담당부서로 연결됩니다.

▶ 개인정보 보호 담당부서
부서명 :
담당자 :
연락처 :, ,
② 정보주체께서는 aistore(‘andychoi.gonetis.com’이하 ‘aistore) 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. aistore(‘andychoi.gonetis.com’이하 ‘aistore) 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.



9. 개인정보 처리방침 변경

①이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다.

2016년 2월 23일 화요일

물리학과 학부생이 생각하는 머신러닝 알고리즘-텐서 플로우(1)

최근 화두가 되고있는 빅 데이터와 이를 똑똑하게 처리하는 기계 학습 알고리즘에 대해서 조금 관심이 생겼습니다. 구글의 오픈소스 프로젝트인 텐서 플로우를 서버에 설치하고 이렇게 저렇게 테스트 해보고있는 중입니다. (참고로 텐서 플로우는 파이썬 라이브러리로 제공됩니다!!)

텐서플로우는 리눅스위에서만 돌아가고 있어서 - 설치하시려면 윈도우 사용자분들은 vm virtual box에 리눅스를 설치하는걸 추천 드립니다 - 물론 docker도 있지만, docker는 spyder를 사용하기 불가능하니..

텐서 플로우가 신선하게 다가온 이유는 머신 러닝에 "텐서"라는 녀석을 이용한다는 점이었습니다.

물리학에서의 텐서는 한 좌표성질(i,j,k,l)에서 다른 좌표성질(a,b,c,d)로 변환하면서 특정한 "변환법칙"을 따르는 높은 차원의 행렬 이라고 생각하시면 편할 겁니다.

이 "변환법칙"에 여러가지가 있는데 대표적인 예로 회전변환이나 입실론, 델타로 표시할수 있는 변환들이 있죠.(구글에 치환 텐서라 치시면 구체적인 설명이 나올겁니다.)

재미있는 점은 좌표성질 변환이 높은 차원(i,j,k,l)에서 낮은 차원(a,b)으로 혹은 그 반대인 낮은차원에서(i,j) 높은 차원으로(a,b,c,d)으로도 가능한 점이죠.
그래서 필요에 따라 위 과정을 자유자재로 왔다갔다 가능한데, 그 과정에서 정보의 손실이 발생하지 않습니다.
 구글에서 사용하는 텐서플로우의 텐서는 이 성질을 이용한겁니다.(사실 그러기 위해선 여러가지 조건이 필요한데, 여기선 그렇게만 이해하고 넘어가죠)

텐서 플로우에서 사용하는 텐서는 수많은 텐서의 성질중에서 텐서가 곱을 통해서 특정한 정보를 담고있는 높은 차원(i,j,k,l)으로 낮은 차원(a,b)으로 바꾼다움, 이 값을 가지고 오차 계산혹은 다른 알고리즘에 넣어서 가지고 놀다가, 다시 필요에 따라 높은차원으로도 가지고 노는거죠.

그렇다면 두 텐서의 곱(내적 혹은 회적 혹은 텐서곱)은 텐서 플로우에서 무엇을 의미하는 걸까요? 이 의미는 구글의 텐서 플로우 이미지가 아주 잘 보여주고 있는 것 같습니다.


이 이미지가 담고있는 의미가 참 많은 것 같습니다. 사실 위에서 이야기한 많은 설명들이 이 이미지로 한번에 설명이 가능하죠. 임의로 T 라는 데이터와 F 라는 데이터가 있다고 할 때 T라는 데이터와 F 라는 데이터 의 텐서 곱이 저 중간의 3차원 형태의 블록 이미지 처럼 두가지 정보를 압축해서 담고 있다고 생각하시면 됩니다. 

텐서 플로우에서 사용하는 "텐서"에 대해서 간략하게 설명했는데 다음에 올릴 글은 "딥 러닝" 이라는 알고리즘 자체를 간단하게 설명하는 글을 올리도록 하겠습니다. softmax 함수와 정보 손실 엔트로피 개념이 열물리학에서 쓰이는 Boltzman factor 와 엔트로피의 관계 비슷해서 많이 놀랐습니다. 

혹시 궁금한 점이나 수정할 부분이 보이시면 댓글로 말씀해주시면 답변 해드리록 하겠습니다.

2015년 9월 24일 목요일

파이썬(python)으로 수치해석 및 통계분석이 가능한 환경 만들기 - matlab 처럼 이용하기

최근에 떠오르는 언어인 python 의 최대 강점은 직관적이고 이해하기 쉽다는 것에 있다. 그리고 무엇보다 많은 library들이 무료라는 점이다!

python의 수치해석 통계분석 프로그램용 IDE로 가장 많이 쓰이고 있는 것은 spyder이다. 그 IDE형태를 보면 다음과같이 생겼다.

IDE 구성 형태

  • python 스크립트 편집기
  • 커널에 존재하고 있는 변수 목록, 및 디렉터리 목록
  • 파이썬 커널

Spyder 는 Anaconda 나 Winpython 패키지를 다운받으면 필요한 라이브러리들과 함께 다운 받을 수 있다.

Anaconda는 spyder 말고도 다양한 패키지를 제공한다. 앞으로 python으로 spyder 이외에도 여러가지를 시도하고싶은 사람들은 다운로드 하는 것을 추천한다.

Winpython의 경우 spyder 관련 lib 및 기능들은 모두 제공하지만, 다른 패키지는 제공하지 않으므로, 용량이 부족하거나 spyder말고 다른 기능을 이용하고 싶은 생각이 없다면 이걸 다운로드 하는 것을 추천한다. winpython 의 경우에는 window 운영체제만 서비스를 제공한다.

Anaconda Winpython 에서 제공하는 패키지 목록은 다음과 같다.

  • numpy: 파이썬 수치연산 패키지, 행렬연산이 매우 빠르다.
  • matplotlib: 데이터 visualization 에 매우 효율적인 패키지
  • sci-py: 과학 분야에서 사용하고 있는 여러 데이터 fitting 툴 패키지
  • pandas: 통계 및 시계열 객체, DB처럼 다루기 용이하다.
  • etc...

필자의 경우에는 Anaconda 패키지를 다운로드하여 사용하고 있다.

Anaconda 다운로드 사이트- http://continuum.io/downloads
Winpython 다운로드 사이트 -http://sourceforge.net/projects/winpython/


현재 올라온 python 관련 코드와 앞으로 올라올 모든 코드는 spyder 환경 내에서 작성한 것이다.

블루투스 마스터 슬레이브 통신(Bluetooth Master & Slave module paring)

최근 다루고 있는 Arduino DUE 보드. 두 보드끼리 Bluetooth 통신을 시도해 보았다. 하나는 Bluetooth Master 모듈을, 또다른 하나는 Bluetooth Slave 모듈을 각 보드에 Serial 통신 가능한 Pin 인 RX1, TX1 에 각각 꼽고 paring 하는 코드를 짰다. 블루투스 모듈 은 HC-06을 사용했다. paring 할 조건은 블루투스에서 AT 모드로 들어가 마스터, 슬레이브 각각의 PIN number를 똑같게 해주면 된다. 해당 테스트에서는 PIN번호를 1234로 동일하게 설정하여 블루투스 마스터 슬레이브 모듈을 가까이 놓아 페어링이 일어나도록 설정했다.
블루투스 마스터 모듈은 총 8개의 슬레이브와 페이링 및 통신이 가능하다고 한다. 차후에 하나의 마스터 모듈과 여러개의 슬레이브 모듈을 페어링하고, 통신하는 test를  할 예정

AT 모드로 들어가는 방법은 해당 사이트 참조 -http://www.hardcopyworld.com/ngine/aduino/index.php/archives/177

최근 NDsocket 이라는 wifi 모듈에 대한 Test도 진행중에 있다.  차후 올릴 예정

2015년 9월 21일 월요일

파이썬으로 z filter 구현하기

low filter 를 파이썬으로 구현, 2차 Z-filter 된 함수

위에가 z filter 전, 아래가 filter 후


# -*- coding: utf-8 -*-
"""
Created on Tue Jul  7 15:26:38 2015

@author: sec
"""

import numpy as np
import matplotlib.pyplot as plt

f = 'C:\\Users\\sec\\Desktop\\data1.txt'
y1 = np.loadtxt(f)
input1 = 0
input2 = 0
output1 = 0
output2 = 0

for i in range(y1.size) :
    if (i ==0) :
        input2 =  y1[i]#ain.read() 대신에 sensorValue 값을 대신 넣는다.
        output1 = input2
    
    else :
          input2 = y1[i] #ain.read() 대신에 sensorValue 값을 대신 넣는다.
          output2 = 0.9394*output1+0.0303*input2+0.0303*input1
          output1= output2
          input1 = input2
          




x = np.linspace(0,y1.size,y1.size)
       
plt.subplot(2,1,1)
plt.plot(x,y1)
plt.title('ADC_val/Z-trans')
plt.xlabel('Time (ps)')    
plt.ylabel('Amplitude (arb. units)')

     

plt.subplot(2,1,2)    
plt.plot(x, y2)
plt.xlabel('Time')    
plt.show()

아직 c 언어 코드 수정전, 차후 Fourier 변환과(Fast Fourier Transform) Lorentz Fitting 에 대해서 코드 작성 예정

2015년 9월 12일 토요일

파이썬으로 가우시안 확률 분포 구현하기

파이썬(python)으로 가우시안(Gaussian) 확률 분포와 Factorial 확률 분포 비교
확률의 사건은 Spin, 동전뒤집기 를 N번 시도했을때 나오는 빈도수
초록색이 Factorial, 파란색이 Gaussian
참조한 라이브러리는 numpy 와 matplotlib 입니다
표본 20개
200개

1800개


Source code
# -*- coding: utf-8 -*-
"""
Spyder Editor Andychoi

This is a temporary script file.
"""
import numpy as np
import matplotlib.pyplot as plt

def pac(k) :    
    j=1
    for i in range(k+1) :
        if i != 0 :
            j *= i
            
    return j

        
    
def pactorial(N,s) :
    k = pac(N)/(pac(N//2-s)*pac(N//2+s))
    return k

def gausian(N,s):
    e = 2.72
    pi = 3.14
    k = ((2/(pi*N))**(1/2))*(2**N)*(e**(-2*s*s/N))
    return k
    
G = np.array([])
P = np.array([])

n = input("표본들의 수를 써주세요 : \t")
N = int(n)

for i in range(N//2) :
    P = np.append(P,pactorial(N,-N//2+i))
    G = np.append(G,gausian(N,-N//2+i))    

for i in range(N//2+1) :
    P = np.append(P,pactorial(N,i))
    G = np.append(G,gausian(N,i))
    
x = np.linspace(-N//2,N//2,N+1)
plt.plot(x,P)
plt.plot(x,G)

plt.show()