Per chi è interessato, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, perché nei dataset locali le etichette di classe sono raramente bilanciate.
Risparmia un sacco di tempo e di nervi.
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()
Se siete interessati, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, perché nei dataset locali le etichette di classe sono raramente bilanciate.
Se siete interessati, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, poiché nei dataset locali le etichette di classe sono raramente bilanciate.
Risparmia un sacco di tempo e di nervi.
Penso che sia necessario specificarlo, quando si risolvono problemi di classificazionecon le reti neurali. Le foreste e i potenziamenti non richiedono il bilanciamento.
Penso che dobbiamo chiarirlo, quando si risolvono problemi di classificazionecon le reti neurali. Le foreste e i potenziamenti non richiedono il bilanciamento.
Per chi è interessato, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, perché nei dataset locali le etichette di classe sono raramente bilanciate.
Risparmia un sacco di tempo e di nervi.
C'è più un effetto di standardizzazione che di bilanciamento qui, secondo me. Inoltre il campionamento dalle distribuzioni aiuta a evitare il sovrallenamento
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Per chi è interessato, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, perché nei dataset locali le etichette di classe sono raramente bilanciate.
Risparmia un sacco di tempo e di nervi.
Se siete interessati, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, perché nei dataset locali le etichette di classe sono raramente bilanciate.
Risparmia un sacco di tempo e di nervi.
Non ci sono bibbie standard in python per questo?
Non ci sono librerie standard in Python per questo?
Probabilmente ce ne sono, ma non ne ho incontrato nessuno.
Se siete interessati, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, poiché nei dataset locali le etichette di classe sono raramente bilanciate.
Risparmia un sacco di tempo e di nervi.
Penso che sia necessario specificarlo, quando si risolvono problemi di classificazione con le reti neurali.
Le foreste e i potenziamenti non richiedono il bilanciamento.
Probabilmente ci sono biblioteche come questa, ma non ne ho trovata nessuna.
Capisco... È solo che R-ka ha tonnellate di roba per MO, e python è posizionato come un linguaggio per MO, e non ha altro che 2-3 librerie sbloccate.
Questo non è comprensibile((
Penso che dobbiamo chiarirlo, quando si risolvono problemi di classificazione con le reti neurali.
Le foreste e i potenziamenti non richiedono il bilanciamento.
Forse.
Capisco... È solo che R-ka ha un sacco di roba per MO, e python è posizionato come un linguaggio per MO, e non ha altro che 2-3 binari sbloccati.
Non lo capisco ((
Non ho familiarità con R, studio MO come elettivo e sono solo all'inizio della mia gola di disperazione con Daning-Krueger.
Non ci sono bibbie standard in python per questo?
Per chi è interessato, ecco uno script per bilanciare le classi in un problema di classificazione.
Il bilanciamento si basa sul ricampionamento del campione originale utilizzando il modello di miscela gaussiana. Consiglio di usarlo, perché nei dataset locali le etichette di classe sono raramente bilanciate.
Risparmia un sacco di tempo e di nervi.
L'inizio del viaggio nella gola della disperazione