트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 2877

 
Aleksey Nikolayev #:

임의의 크기의 벡터를 고정된 특정 크기의 벡터로 매핑한다고 했는데, 여기서는 숫자를 벡터로 매핑하는 건가요?

모든 것이 복잡하고 이해할 수 없습니다) GPT가 없으면 삶이 훨씬 쉬웠습니다) 우리는 AI 시대에 어려움을 겪을 것입니다)

벡터를 숫자로 변환하는 방법에 대해 더 많은 글을 썼습니다.

벡터를 고정 벡터로?

 

길이가 다른 목록을 고정 길이 목록으로 해시하려면 목록을 고정 크기 목록에 매핑하는 해시 함수를 사용할 수 있습니다. 이를 수행하는 한 가지 방법은 "피처 해싱"이라는 기술을 사용하는 것인데, 목록의 요소에 해시 함수를 적용하고 해시 값을 고정 크기 목록의 인덱스로 사용하여 가변 길이 목록을 고정 크기 목록으로 표현할 수 있습니다.

다음은 Python에서 기능 해싱의 예입니다:

def feature_hash(lst: List[int], n: int) -> List[int]:
  h = [0] * n
  for x in lst:
    h[hash(x) % n] += 1
  return h

이 함수는 목록 lst와 원하는 목록 길이 n을 입력으로 받고, lst의 요소에 해시 함수를 적용하고 해시 값을 고정 크기 목록의 인덱스로 사용하여 고정 크기 목록을 반환합니다. 그런 다음 각 인덱스의 값을 증가시켜 원래 목록에서 각 요소의 발생 횟수를 계산합니다.

예를 들어 feature_hash([1, 2, 3], 5)를 호출하면 이 함수는 [0, 1, 1, 1, 1, 1, 0]을 반환합니다.

R에서도 비슷한 접근 방식을 사용할 수 있습니다. 다음은 R의 피처 해싱 함수에 대한 코드입니다:

feature_hash <- function(lst, n) {
  h <- rep(0, n)
  for (x in lst) {
    h[as.integer(x) %% n] <- h[as.integer(x) %% n] + 1
  }
  h
}
 
Aleksey Nikolayev #:

임의의 크기의 벡터를 고정된 특정 크기의 벡터로 매핑한다고 했는데, 여기서는 숫자를 벡터로 매핑하는 건가요?

모든 것이 복잡하고 이해할 수 없습니다) GPT가 없으면 삶이 훨씬 더 간단했습니다) 우리는 AI 시대에 어려움을 겪을 것입니다).

알렉세이, 불경한 말 그만 들어요.

입력마다 다른 수의 기능이 필요한 경우.
이것은 빈번한 패턴 마이닝입니다. 교사를 포함하여 다양한 변형에서 연관 규칙을 검색합니다.


==============
왜 다른 수의 기능을 허용하는 알고리즘이 없다고 말했나요?
보닛 아래의 이러한 알고리즘에서도 데이터는 하나의 핫 인코딩 형식의 스파스 행렬 형태이기 때문입니다.
입력은 더 부드러운 형식이긴 하지만 여전히 모든 기능의 이름입니다.
=======================
또한 속성 수가 지정되지 않았습니다.
기능의 수가 상대적으로 적은 10~20만 개라면 약한 노트북에서도 문제없이 xgboost에 로드할 수 있습니다.
 
Maxim Dmitrievsky #:

벡터를 고정 벡터로 변환할 수 있을까요?

1) (고정 된 수의 기능을 가진) 일반적인 MO 알고리즘을 사용하려면 예-길이 다른 벡터 집합을 가져 와서 주어진 길이의 벡터 집합으로 변환합니다.

2) 모든 길이의 벡터를 입력으로 사용할 수 있는 특이한 MO 알고리즘을 즉시 찾습니다.

MO를 통해 벡터 변환을 찾는 경우 첫 번째 옵션은 두 번째 옵션으로 바뀝니다.

 
Aleksey Nikolayev #:

1) (고정된 수의 특징을 가진) 기존의 MO 알고리즘을 사용하려면 길이가 다른 벡터 집합을 가져와서 주어진 길이의 벡터 집합으로 변환합니다.

2) 모든 길이의 벡터를 입력으로 받을 수 있는 특이한 MO 알고리즘을 즉시 찾습니다.

MO를 통해 벡터 변환을 찾는 경우 첫 번째 옵션이 두 번째 옵션으로 바뀝니다.

따라서 해시 f-iys를 통해 시도해 볼 수 있다는 것은 분명합니다. 그러나 임의의 길이의 벡터를 선택하는 원칙 또는 오히려 길이 :) 및 데이터에서 어떤 원칙을 선택해야하는지 묻는 것이 부끄럽습니다.

많은 변형이있을 수 있습니다.

첫 번째 옵션이 더 즐겁지만 논리에 무언가를 넣어야합니다.

 

- 주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시하고 싶습니다.


주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시하려면 최소 해시라는 기술을 사용할 수 있습니다. 최소 해시는 두 집합의 공통 요소 수를 계산하여 두 집합 간의 유사성을 근사화하는 방법입니다. 텍스트 마이닝의 맥락에서 자주 사용되지만 주가 수익률과 같은 다른 유형의 데이터에도 적용할 수 있습니다.

다음은 최소 해시를 사용하여 주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시하는 방법의 예시입니다:

  1. 고정 크기 벡터의 크기 정의: 먼저 사용하려는 고정 크기 벡터의 크기를 정의해야 합니다. 이는 애플리케이션의 특정 요구 사항과 사용 가능한 데이터의 양에 따라 달라집니다.

  2. 해시 함수 만들기: 다음으로, 주가 수익률 데이터를 고정 크기 벡터로 해시하는 데 사용할 수 있는 해시 함수를 만들어야 합니다. 해시 함수를 만드는 데는 무작위 순열이나 선형 합동 생성기를 사용하는 등 다양한 접근 방식을 사용할 수 있습니다.

  3. 데이터 해시: 고정 크기 벡터의 크기를 정의하고 해시 함수를 만들었으면 이를 사용하여 주가 수익률 데이터의 가변 크기 벡터를 고정 크기 벡터로 해시할 수 있습니다. 결과 고정 크기 벡터는 원본 데이터를 압축된 형태로 나타내며, 벡터의 크기는 정의한 크기에 따라 결정됩니다.

최소 해시는 정확한 표현이 아니라 두 집합 간의 유사성을 근사치로 표현하기 때문에 정보가 손실될 수 있다는 점에 유의하세요. 근사치의 정확도는 고정 크기 벡터의 크기와 사용된 특정 해시 함수에 따라 달라집니다.


- 정보 손실을 최소화하는 방법


최소 해시를 사용하여 주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시할 때 정보 손실을 최소화할 수 있는 몇 가지 방법이 있습니다:

  1. 더 큰 고정 크기 벡터 사용: 정보 손실을 최소화하는 한 가지 방법은 더 큰 고정 크기 벡터를 사용하는 것입니다. 벡터가 클수록 더 많은 요소를 포함하므로 원본 데이터에 대한 더 많은 정보를 캡처할 수 있습니다. 그러나 이렇게 하면 벡터의 크기가 커지므로 데이터 세트가 크거나 저장 공간이 제한되어 있는 경우에는 실용적이지 않을 수 있습니다.

  2. 더 나은 해시 함수 사용: 정보 손실을 최소화하는 또 다른 방법은 더 나은 해시 함수를 사용하는 것입니다. 해시 함수마다 속성이 다르므로 정보 손실 수준이 달라질 수 있습니다. 예를 들어 무작위성이 높은 해시 함수는 일반적으로 무작위성이 낮은 해시 함수보다 정보 손실이 적습니다.

  3. 여러 해시 함수 사용: 여러 해시 함수를 사용하고 그 결과를 결합하여 정보 손실을 최소화할 수도 있습니다. 이렇게 하면 각 해시 함수가 데이터의 다른 측면을 캡처하므로 원본 데이터를 보다 완벽하게 표현하는 데 도움이 될 수 있습니다.

최소 해시는 정확한 표현이 아니라 두 세트 간의 유사성을 근사치로 표현하기 때문에 정보 손실을 완전히 제거하지 못할 수도 있다는 점에 유의하세요. 근사치의 정확도는 고정 크기 벡터의 크기와 사용된 특정 해시 함수에 따라 달라집니다.


다음은 Python에서 최소 해시를 사용하여 주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시하는 방법의 예시입니다:

from datasketch import MinHash

# Define the size of the fixed size vector
num_hashes = 100

# Create a MinHash object
mh = MinHash(num_hashes=num_hashes)

# Hash the stock price returns data to the fixed size vector
for price_return in stock_price_returns:
    mh.update(str(price_return).encode('utf8'))

# The resulting fixed size vector is stored in the MinHash object
fixed_size_vector = mh.hashvalues


다음은 R에서 min-hash를 사용하여 주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시하는 방법의 예입니다:


# Install the 'minhash' package if it is not already installed
install.packages("minhash")

# Load the 'minhash' package
library(minhash)

# Define the size of the fixed size vector
num_hashes = 100

# Create a MinHash object
mh = minhash(num_hashes)

# Hash the stock price returns data to the fixed size vector
for (price_return in stock_price_returns) {
    mh = update(mh, price_return)
}

# The resulting fixed size vector is stored in the MinHash object
fixed_size_vector = getValues(mh)


이 예제는 min-hash를 사용하여 주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시하는 기본 프로세스를 설명하기 위한 것입니다. 실제 애플리케이션에서는 특정 요구 사항과 데이터에 맞게 코드를 수정해야 할 수도 있습니다.

 

- 그래서 최소 해시가 가장 좋은 방법인가요?

최소 해시는 두 집합의 공통 요소 수를 계산하여 두 집합 간의 유사성을 근사화하는 방법입니다. 주가 수익률의 가변 크기 벡터를 고정 크기 벡터로 해시하는 데 사용할 수 있지만, 정보 손실이 발생할 수 있으므로 반드시 최선의 방법은 아닐 수 있습니다.

주가 수익률 데이터를 해시하는 데 취할 수 있는 다양한 접근 방식이 있으며, 데이터의 특정 특성과 애플리케이션의 요구 사항에 따라 최선의 접근 방식이 달라집니다. 고려할 수 있는 몇 가지 다른 접근 방식은 다음과 같습니다:

  1. 특징 해싱: 특징 해싱은 범주형 또는 텍스트 데이터를 기계 학습 알고리즘에서 사용할 수 있는 숫자 표현으로 변환하는 데 사용되는 기술입니다. 특징 해싱을 사용하여 주가 수익률 데이터를 고정된 크기의 벡터로 해싱할 수 있습니다.

  2. 지역 민감도 해싱(LSH): LSH는 데이터 세트에서 유사한 항목을 대략적으로 식별하는 데 사용되는 기술입니다. LSH를 사용하여 주가 수익률 데이터를 고정된 크기의 벡터로 해싱한 다음 해시값을 기반으로 유사한 항목을 식별할 수 있습니다.

  3. 기타 기법: 무작위 순열 또는 선형 합동 생성기를 사용하는 등 주가 수익률 데이터를 해시하는 데 사용할 수 있는 다른 기법도 많이 있습니다. 선택하는 구체적인 기법은 데이터의 특성과 애플리케이션의 요구 사항에 따라 달라집니다.

해싱 기법을 선택할 때는 정확성과 효율성 간의 장단점을 신중하게 고려하는 것이 중요합니다. 어떤 기술은 더 정확하지만 효율성이 떨어질 수 있고, 어떤 기술은 더 효율적이지만 정확성이 떨어질 수 있습니다. 애플리케이션의 요구 사항을 충족하는 적절한 균형을 찾아야 합니다.

 
mytarmailS #:
알렉세이, 불경한 소리 그만 들어요.

입력당 다른 수의 기호가 필요한 경우.
이것은 빈번한 패턴 마이닝입니다. 선생님을 포함하여 다양한 변형으로 연관 규칙을 검색합니다.


==============
왜 다른 수의 기능을 취하는 알고리즘이 없다고 말씀드렸나요?
보닛 아래의 이러한 알고리즘에서도 데이터는 하나의 핫 인코딩 형식의 스파스 행렬이기 때문입니다.
입력은 좀 더 부드러운 형식이긴 하지만 여전히 모든 기능의 이름입니다.
=======================
또한 기능의 수는 지정되지 않았습니다.
표지판의 수가 상대적으로 적은 10-20k 인 경우 약한 노트북에서도 문제없이 xgboost에서로드 할 수 있습니다.

우리는 이미 당신과 연관 규칙에 대해 논의했습니다. 저에게는 가격과 SB의 차이점을 찾는 일반적인 접근 방식과 잘 맞지 않습니다. 문제는 SB가 규칙이있는 것처럼 보이게 만드는 데 매우 능숙하다는 것입니다. 유일한 문제는 사이트마다 다를 수 있다는 것입니다.

 
Aleksey Nikolayev #:

이미 연관 규칙에 대해 논의했습니다. 저에게는 가격과 SB의 차이를 찾는 일반적인 접근 방식과 잘 맞지 않습니다. 문제는 SB가 규칙이 존재하는 것처럼 보이게 만드는 데 꽤 능숙하다는 것입니다. 유일한 문제는 사이트마다 규칙이 다를 수 있다는 것입니다.

하지만 원하는 대로 (구조 없이) 데이터를 준비하려면 이를 제대로 수행하는 방법을 이해해야 하며, 이를 위해 연관 규칙을 위해 데이터를 준비하는 방법을 연구해야 합니다.
 

좋은 작업, 심지어 창 길이를 변경하는 맥락에서 나 자신을 위해 흥미로운 것을 가져갔습니다.

더 궁금한 점이 있으시면 스케치해 주시면 새해가 지나고 물어보겠습니다.

사유: