Si vous êtes intéressé, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
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()
Si vous êtes intéressé, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
N'existe-t-il pas des bibelots standards en python pour cela ?
Pour ceux qui sont intéressés, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
Je pense que nous devons le préciser, lorsque nous résolvons des problèmes de classificationavec des réseaux neuronaux. Les forêts et les boostings n'ont pas besoin d'être équilibrés.
Il existe probablement des bibliothèques de ce type, mais je n'en ai pas rencontré.
Je vois... C'est juste que R-ka a des tonnes de choses pour MO, et python est positionné comme un langage pour MO, et il n'a rien d'autre que 2-3 bibliothèques non verrouillées.
Je pense que nous devons clarifier cela, lorsque nous résolvons des problèmes de classificationavec des réseaux neuronaux. Les forêts et les boostings ne nécessitent pas d'équilibrage.
Je vois... C'est juste que R-ka a beaucoup de choses pour MO, et python est positionné comme un langage pour MO, et il n'a rien d'autre que 2-3 binaires déverrouillés.
Je ne le comprends pas ((
Je ne suis pas familier avec R, j'étudie le MO en option et je ne suis qu'au début de ma gorge de désespoir avec Daning-Krueger.
Pour ceux qui sont intéressés, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
À mon avis, il s'agit davantage d'un effet de standardisation que d'équilibre. De plus, l'échantillonnage des distributions permet d'éviter le surentraînement
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Si vous êtes intéressé, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
Si vous êtes intéressé, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
N'existe-t-il pas des bibelots standards en python pour cela ?
N'y a-t-il pas de bibliothèque standard en Python pour cela ?
Il y en a probablement, mais je n'en ai pas rencontré.
Pour ceux qui sont intéressés, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
Je pense que nous devons le préciser, lorsque nous résolvons des problèmes de classification avec des réseaux neuronaux.
Les forêts et les boostings n'ont pas besoin d'être équilibrés.
Il existe probablement des bibliothèques de ce type, mais je n'en ai pas rencontré.
Je vois... C'est juste que R-ka a des tonnes de choses pour MO, et python est positionné comme un langage pour MO, et il n'a rien d'autre que 2-3 bibliothèques non verrouillées.
Ce n'est pas compréhensible((
Je pense que nous devons clarifier cela, lorsque nous résolvons des problèmes de classification avec des réseaux neuronaux.
Les forêts et les boostings ne nécessitent pas d'équilibrage.
Peut-être.
Je vois... C'est juste que R-ka a beaucoup de choses pour MO, et python est positionné comme un langage pour MO, et il n'a rien d'autre que 2-3 binaires déverrouillés.
Je ne le comprends pas ((
Je ne suis pas familier avec R, j'étudie le MO en option et je ne suis qu'au début de ma gorge de désespoir avec Daning-Krueger.
N'existe-t-il pas des bibelots standards en python pour cela ?
Pour ceux qui sont intéressés, voici un script pour équilibrer les classes dans un problème de classification.
L'équilibrage est basé sur le rééchantillonnage de l'échantillon original en utilisant un modèle de mélange gaussien. Je conseille de l'utiliser, car dans les jeux de données locaux, les étiquettes de classe sont rarement équilibrées.
Cela permet d'économiser beaucoup de temps et de nerfs.
Le début du voyage dans la gorge du désespoir