목록Language (122)
우노
라틴 하이퍼큐브 샘플링 (Latin Hypercube Sampling : LHS) 표본 추출(샘플링) 방법 중 하나로, 위 그림과 같이 데이터가 고르게 분포 되는 특징이 있습니다. python의 Latin Hyper Cube Sampling 라이브러리를 활용하면 고른 분포의 데이터셋을 생성해 줍니다. https://pythonhosted.org/pyDOE/randomized.html 특징 비교적 일관성 있게 샘플링 됩니다. 전반적으로 고른 분포의 표본을 추출하고자 할 때 사용합니다. 분포를 동일한 확률 구간으로 분할합니다. 예제 코드 pyDOE의 라틴 하이퍼 큐브 디자인은 다음과 같은 간단한 구문을 사용하여 만들 수 있습니다. lhs(n, [samples, criterion, iterations]) n ..
Map Scala의 Map은 Python의 Dictionary와 유사하게 사용된다. 특성 Map 은 변경 가능한 것 (mutable.Map) 과 변경 불가능한 것 (immutable.Map) 모두를 제공합니다. 예를들어 put 이라든지 remove 메소드는 immutable.Map 에서는 사용 불가. import scala.collection.mutable.Map 생성 val m = Map[Int,String]() val m2 = Map(1 -> "one" , 2-> "two") // 이렇게 초기화 할 수 있고 val m3 = Map((1,"one") , (2,"two")) // 이렇게도 할 수 있다. 추가 val m = mutable.Map[Int,String]() // 아래 처럼 가능 ( mutabl..
String Interpolation이란? String Interpolation은 스칼라 2.10에 추가된, 데이터를 기반으로 문자열을 더 쉽게 만들수 있는 새로운 기능이다. 즉, 문자열을 출력하거나 선언할 때 중간중간 다른 변수를 끼워넣는 구문이다. String Interpolation은 s, f, raw 세가지의 방식을 제공한다. s String Interpolator 문자열 앞에 s를 붙혀서 사용하고, ${변수명}으로 변수의 내용을 참조할 수 있다. val a = "Hello" val b = s"${a} 1" println(a) // Hello println(b) // Hello 1 println(s"${a} World") // Hello World
break 스칼라에서는 기본 break 구문이 없어서 Breaks 객체를 만들어서 루프를 break 해야한다. 예제코드 // a가 6이 되면 루프중단 import scala.util.control._ var a = 1 var loop = new Breaks loop.breakable{ while(a
실험계획법(DOE, design of experiments)이란? 참고 https://wooono.tistory.com/136 D-optimal Design 기본 개념 전체 데이터셋에서 중요한 데이터만 가져와 효율적으로 실험하기 위해 쓰이는 실험계획법이다. 데이터는 X로 표현되며 정보행렬인 |X’X(대각행렬)|를 최대화하여, 추정 된 회귀 계수의 전체 분산을 최소화하도록 구성된다. 자세한 설명 선형모형 N : 데이터의 개수 (행개수) k : 입력 데이터의 특성 개수 (열개수) Y : N x 1 출력 벡터 X : N x k 입력 데이터 행렬 β : 미지의 회귀 계수 k x 1 벡터 ε : E(ε)=0, N x N 단위행렬인 공분산 행렬을 가진 실험오차 N x 1 벡터 회귀 계수 β 최소제곱법에 의해 추정하..
실험계획법(DOE, design of experiments)이란? 문제 해결을 위해 실험을 계획 하는 방법으로, 최소의 실험 횟수에서 최대의 정보를 얻을 수 있도록 계획하는 것이다. 특성치 (Characteristic value) 실험을 통해 얻어지는 모든 결과치(종속변수 Y)를 의미한다. 인자 (Factor) 실험에 사용되는 원인(독립변수 X)를 의미한다. 인자는 정량적일 뿐만아니라 정성적 데이터로 표현할 수 있다. 예를 들면 온도나 시간은 정량적 데이터로 표현되지만 청결함이나 사람의 심리상태 같은 부분은 정성적 데이터로 표현되기도 한다. 수준 (Level) 실험에서 '인자의 정도나 값' 을 의미한다. 예를 들면 온도와 같은 정량적인 인자의 경우에는 모든 온도 값이, 온도라는 인자의 수준..
1.23456789 를 소수점 둘 째 자리로 반올림 해 1.23으로 표현하는 방법 import scala.math.BigDecimal val number = BigDecimal(1.23456789).setScale(2, BigDecimal.RoundingMode.HALF_UP).toDouble
파이썬에서 입력 값을 받을 때 보통 input()을 이용한다. 하지만 알고리즘에서 input()을 이용할 때 종종 시간 초과가 발생하기 때문에 sys 모듈의 sys.stdin을 사용한다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다. 여러 줄을 문자열로 입력 받고 싶을 때 import sys lines = sys.stdin.read() 여러 줄을 리스트로 입력 받고 싶을 때 import sys lines = sys.stdin.readlines() 간단한 stdin, stdout 예제 import re from collections import Counter import sys # 파일 입력 받기 document = sy..
데이터 살펴보기 머신러닝 모델을 만들기 전에, 해당 문제가 머신러닝 없이도 풀 수 있는 문제는 아닌지, 혹은 필요한 정보가 누락되지는 않았는지, 데이터를 조사해보는 것이 좋습니다. 또한, 데이터를 탐색하면서 비정상적인 값이나 특이한 값들을 찾을 수도 있습니다. 데이터를 탐색하는 가장 좋은 방법 중 하나는 시각화이며, 시각화 방법 중 하나는 산점도 행렬(scatter matrix)입니다. 산점도 행렬(scatter matrix)은 데이터의 특성 중 하나를 x 축에 놓고 다른 특성 중 하나를 y 축에 놓아, 두 특성의 관계를 하나의 점으로 나타내는 그래프입니다. 즉, 2개의 특성을 묶어 2차원으로 표현하므로, 모든 특성의 관계가 나타나는 것이 아닌, 짝지어진 두 특성의 관계만 나타내게 됩니다. 따라서, 특성..
Matplotlib 기초 https://wooono.tistory.com/89 scatter() 함수를 사용해 3차원 산점도(3D Scatter plot) 그리기 예제 코드 import matplotlib.pyplot as plt import numpy as np # 3차원 그래프를 그리기 위해서 from mpl_toolkits.mplot3d import Axes3D를 추가해줍니다. from mpl_toolkits.mplot3d import Axes3D # 0 ~ 10 까지 랜덤으로 20개씩 생성 x = [np.random.randint(10) for _ in range(20) ] y = [np.random.randint(10) for _ in range(20) ] z = [np.random.randin..