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

 

관심 있으신 분들을 위해 분류 문제 풀 때 수업 균형 잡기 위한 스크립트를 첨부합니다.

밸런싱은 가우스 혼합 모델을 사용하여 원래 샘플을 다시 샘플링하는 것을 기반으로 합니다. 클래스 레이블은 로컬 데이터 세트에서 거의 균형을 이루지 않으므로 사용하는 것이 좋습니다.

많은 시간과 신경을 절약합니다.

import pandas as pd
from sklearn import mixture
import numpy as np

class GMM(object):
    def __init__(self, n_components):
        self.gmm = mixture.GaussianMixture(
                                            n_components=n_components,
                                            covariance_type='full', verbose= 0 ,
                                            max_iter= 1000 ,
                                            tol= 1 e- 4 ,
                                            init_params='kmeans')
        self.name_col = []
        # print("GMM_model -- create")


    def fit_data(self, data):
        self.name_col =  data.columns
        self.gmm.fit(data)
        # print("GMM_model -- fit comlite")

    def get_samples(self, n_samp):
        generated = self.gmm.sample(n_samp)
        gen = pd.DataFrame(generated[ 0 ])
         for c in range(len(self.name_col)):
            gen.rename(columns={gen.columns[c]: self.name_col[c]}, inplace=True)

         return gen

def get_balance_dataset(X,Y, gmm= 30 ,num_samples= 200 , frac= 1 ):
        '''
        X -             features
        Y -             targets [ 0 , 1 ]
        gmm -           number of mixture components
        num_samples -   number of samples for each class
        num_samples -   percentage of a random number of samples from the original sampling


        '''
    name_targ = Y.columns
    X_out = pd.DataFrame()
    Y_out = pd.DataFrame()
     for index,name in enumerate(name_targ):
        prt_data = pd.concat([X, Y[name]], axis= 1 )
         if frac!= 1 :
            prt_data = prt_data[prt_data[name] == 1 ].drop(columns=[name]).sample(frac=frac)
         else :
            prt_data = prt_data[prt_data[name] == 1 ].drop(columns=[name])

        gmm_1 = GMM(n_components=gmm)
        gmm_1.fit_data(prt_data)
        sig_X = gmm_1.get_samples(num_samples)
        sig_Y = np.zeros((num_samples, len(name_targ)))
        sig_Y[:, index] = 1
        sig_Y = pd.DataFrame(sig_Y, columns=name_targ)
        X_out = pd.concat([X_out, sig_X], axis= 0 )
        Y_out = pd.concat([Y_out, sig_Y], axis= 0 )

     return X_out.to_numpy(), Y_out.to_numpy()
 
iwelimorn # :

관심 있으신 분들을 위해 분류 문제 풀 때 수업 균형 잡기 위한 스크립트를 첨부합니다.

밸런싱은 가우스 혼합 모델을 사용하여 원래 샘플을 다시 샘플링하는 것을 기반으로 합니다. 클래스 레이블은 로컬 데이터 세트에서 거의 균형을 이루지 않으므로 사용하는 것이 좋습니다.

많은 시간과 신경을 절약합니다.

표준 성경이 있지 않습니까? 이것을 위해 파이썬에서?

 
mytarmailS # :

표준 성경이 있지 않습니까? 이것을 위해 파이썬에서?

아마도 그러한 라이브러리가 있지만 나는 만나지 못했습니다.

 
iwelimorn # :

관심 있으신 분들을 위해 분류 문제 풀 때 수업 균형 잡기 위한 스크립트를 첨부합니다.

밸런싱은 가우스 혼합 모델을 사용하여 원래 샘플을 다시 샘플링하는 것을 기반으로 합니다. 클래스 레이블은 로컬 데이터 세트에서 거의 균형을 이루지 않으므로 사용하는 것이 좋습니다.

많은 시간과 신경을 절약합니다.

신경망 으로 분류 문제를 풀 때 무엇을 명확히 할 필요가 있다고 생각합니다.
스캐폴딩과 부스팅은 균형을 필요로 하지 않습니다.

 
iwelimorn # :

아마도 그러한 라이브러리가 있지만 나는 만나지 못했습니다.

그것은 분명합니다 ... R-ke에는 MO에 대한 모든 것이 많고 눈이 크게 뜨고 파이썬은 MO에 대한 언어로 자리 잡고 있으며 2-3 개의 스크램블 된 성경 외에는 아무것도 없습니다. .

어떻게 명확하지 않은가

 
도서관 # :

신경망 으로 분류 문제를 풀 때 무엇을 명확히 할 필요가 있다고 생각합니다.
스캐폴딩과 부스팅은 균형을 필요로 하지 않습니다.

아마도.

 
mytarmailS # :

그것은 분명합니다 ... R-ke에는 MO에 대한 모든 것이 많고 눈이 크게 뜨고 파이썬은 MO에 대한 언어로 자리 잡고 있으며 2-3 개의 스크램블 된 성경 외에는 아무것도 없습니다. .

어떻게 명확하지 않은가

나는 R에 익숙하지 않고 MO를 선택 코스로 하고 Dunning-Kruger에 따르면 절망의 협곡으로 가는 길의 시작 부분에 있을 뿐입니다.

 
mytarmailS # :

표준 성경이 있지 않습니까? 이것을 위해 파이썬에서?

그것은 성경을 사용, 그냥 포장
 
iwelimorn # :

관심 있으신 분들을 위해 분류 문제 풀 때 수업 균형 잡기 위한 스크립트를 첨부합니다.

밸런싱은 가우스 혼합 모델을 사용하여 원래 샘플을 다시 샘플링하는 것을 기반으로 합니다. 클래스 레이블은 로컬 데이터 세트에서 거의 균형을 이루지 않으므로 사용하는 것이 좋습니다.

많은 시간과 신경을 절약합니다.

제 생각에는 밸런싱보다 표준화의 효과가 더 많습니다. 또한 분포에서 샘플링하는 것은 과적합을 방지하는 데 도움이 됩니다.
 
iwelimorn # :

절망의 계곡 길의 시작

))) 다 괜찮을거야!