티핑

[Julia] function내에서 동적 Module 로딩 및 분산처리

function 내에서 using ModuleXX 등으로 동적으로 모듈을 로딩하는 것은 쉽지 않다. function내에서 using ModuleXX로 모듈을 로딩하는 경우 “syntax: “using” expression not at top level “에러가 발생한다. 이런 경우 에러없이 동적으로 모듈을 로딩하기 위해서 eval 사용등으로 메타프로그램을 해야 된다. 아래 예제에서는 분산처리(Parallel Processing)예를 들어 설명한다. 특정 폴더 예를 들어 “/home/shpark/julia_test/exproptimizatoin/examples” 에 TestM01.jl을 생성한다.파일명과 모듈명을 같이 해야 […]

[Julia] function내에서 동적 Module 로딩 및 분산처리 더 읽기"

Julia에서 시계열 데이터 처리 예제 (2#2) – 업그레이드

Julia에서 시계열 데이터 처리 예제 (2#2) 글에서 Genetic Programming 부분에서 grammar를 동적으로 생성 될 수 있게 구조를 바꾸었다. 이전 (#2/2) 에서는 grammar 작성시 입력되는 변수 예를 들어 x1,x2,..,x21을 미리 설정하였으나 이 버전에서는 입력되는 데이터를 읽어 데이터 계열 수 만큼 즉 변수 갯수 만큼 grammar에 들어가는 변수를 자동 생성 한다. 구현소스(Julia Notebook – html 버전)

Julia에서 시계열 데이터 처리 예제 (2#2) – 업그레이드 더 읽기"

Julia에서 시계열 데이터 처리 예제 (2#2)

ML Approaches for Time Series을 참조 했으며 해당 자료는 python으로 구현 되었다. 여기서는 Julia로 바꿔서 구현 하였다. 특히 Genetic Programming을 사용한 부분은 원 게시글에서 python “gplearn” 이라는 라이브러를 사용하여 회귀분석을 하였으나 여기서는 스탠포드에서 제공하는 “ExprOptimization”이라는 Julia용 package를 사용하여 구현 하였다. pyton Scikitlearn 부분은 Julia용 Scikilearn을 사용하여 동일하게 구현 하였다. python과 julia의 random number발생시 seed가 동일하고 랜덤넘버

Julia에서 시계열 데이터 처리 예제 (2#2) 더 읽기"

[Python] 시계열 데이터 처리 예제 (2#2)

자세한 내용은 ML Approaches for Time Series을 참조하면 된다. 위 게시글에서 동작하는 소스 전체가 없어 재구성 하였다. 여기서는 Genetic Programming을 사용한 회귀분석 결과를 나타 내었다. “gplearn” 이라는 genetic programming 알고리즘을 구현한 패키지로 Scikitlearn의 LinearRegression과 동일한 인터페이스로 구현되어 있다. gp외에도 몇가지 optimization package가 포함되어 있다. 구현소스(jupyter notebook)

[Python] 시계열 데이터 처리 예제 (2#2) 더 읽기"

[Julia] Julia vs Julia numpy with PyCall vs python numpy performace 비교

Pi값을 구하는 기능을 줄리아에서 numy를 사용했을 때, 줄리아로 구현 했을 때, 파이썬에서 했을 때 성능을 비교 한다. Julia : v1.2.0python : v3.7 https://frhyme.github.io/python-lib/python_interface_to_julia/ 사이트의 내용을 보고 참조를 했는데 n 값은 최대 15까지 가능 하며 이 이상 넘어 가면 무한대가 나오기 때문에 15까지 한다. 참조 사이트에서는 9 까지만 시행 했고 코드를 다시 작성하여 테스트 한 결과는

[Julia] Julia vs Julia numpy with PyCall vs python numpy performace 비교 더 읽기"

[Julia] Plot에서 다중 시계열 데이터의 라벨(label) 표시

t에 대해 여러개의 x1(t),x2(t) 등이 있을 때 원하는 원하는 라벨(label)을 붙이려면 plot 옵션에서 label=[“x1(t)” “x2(t)”] 로 표현 한다. label=[“x1(t)” , “x2(t)”] 즉 라벨을 콤마(“,”)로 구분하면 안됨 n = 161:161+length(test_y_real)-1 display(plot(n,[test_y_real,test_y_pred],label=[“Real Test” “Predicted Test”],size=(900,300),legend=:topright))

[Julia] Plot에서 다중 시계열 데이터의 라벨(label) 표시 더 읽기"

[Julia] Debugging with Juno (줄리아 디버깅)

모듈 WS에 test() 하는 function이 있을 때 이를 디버깅 하는 방법은 먼저 Juno에서 디버깅 대상이 되는 블록을 잡고 실행 한다블록을 실행 하면 해당 블록의 모듈, 함수,변수 등이 REPL session에 로딩된다. 그 이후 아래와 같이 REPL 에서 타이핑하고 디버깅을 시작 한다 julia> Juno.@enter WS.test() 를 타이핑 하고 실행 한다. 그러면 아래와 같이 화면이 디버깅 모드로 된다.

[Julia] Debugging with Juno (줄리아 디버깅) 더 읽기"

[Julia] 선언한 type을 재선언 하는 방법

jupyter notebook이나 REPL에서 이미 선언한 타입을 변경하거나 삭제하기는 어렵다.workspace()등은 julia 1.0 이전에는 동작 했으나 그 이후에는 동작 하지 않는다.개발시 잘 못된 type선을 수정하기기 어렵다. REPL이나 notebook을 다시 시작하는 경우가 많다. 해결책은 module을 사용하면 된다. module 내에 선언된 type은 다시 선언 하여 사용할 수 있기 때문에 변경이 용이 하다. 아래와 같이 XYZ을 선언하고 바로 아래에 수정된

[Julia] 선언한 type을 재선언 하는 방법 더 읽기"