Distinguer deux groupes en statistiques et en machine learning: test d'hypothèse vs classification vs clustering

29

Supposons que j'ai deux groupes de données, étiquetés A et B (contenant chacun par exemple 200 échantillons et 1 fonction), et je veux savoir s'ils sont différents. Je pourrais:

  • a) effectuer un test statistique (par exemple un test t) pour voir s'ils sont statistiquement différents.

  • b) utiliser l'apprentissage automatique supervisé (par exemple, prendre en charge le classificateur de vecteur ou le classificateur de forêt aléatoire). Je peux former cela sur une partie de mes données et le vérifier sur le reste. Si l'algorithme d'apprentissage automatique classe correctement le reste par la suite, je peux être sûr que les échantillons sont différenciables.

  • c) utiliser un algorithme non supervisé (par exemple K-Means) et le laisser diviser toutes les données en deux échantillons. Je peux ensuite vérifier si ces deux échantillons trouvés correspondent à mes étiquettes, A et B.

Mes questions sont:

  1. Comment ces trois manières différentes se chevauchent-elles / sont-elles exclusives?
  2. Les points b) et c) sont-ils utiles pour des arguments scientifiques?
  3. Comment pourrais-je obtenir une «signification» pour la différence entre les échantillons A et B des méthodes b) et c)?
  4. Qu'est-ce qui changerait si les données avaient plusieurs fonctionnalités plutôt qu'une seule?
  5. Que se passe-t-il s'ils contiennent un nombre différent d'échantillons, par exemple 100 vs 300?
MaxG
la source
3
Je dirais que la différence entre (a) et (b) est que les tests statistiques visent à déterminer s'il est une différence, alors que les méthodes de classification se concentrent sur la taille de cette différence. Lorsque vous utilisez une forêt aléatoire, vous souhaitez connaître la précision de la validation croisée; c'est peut-être 78%. C'est le nombre qui vous intéresse, et non pas de déclarer qu'il n'est pas égal à 50% .
amoeba dit Reinstate Monica
4
Les situations à mon humble avis où a / b / c ont un sens diffèrent dans le rapport signal / bruit typique, et il augmente de (a) à (b) à (c). Dans l'application typique d'un test t, il y a un bruit élevé; nous voulons montrer que les groupes ne sont pas égaux. Si les groupes ne sont évidemment pas égaux (moins de bruit), nous n'avons plus vraiment besoin de test; au lieu de cela, nous voulons quantifier la différence entre les groupes, et la précision de la classification hors échantillon peut aider ici. S'il y a encore moins de bruit et que la précision de la classification est de ~ 100%, nous pouvons demander si les groupes sont si super-distincts qu'ils peuvent être détectés par un algorithme de clustering.
amoeba dit Reinstate Monica
1
@amoeba, je m'adresse à vous parce que vous avez modifié le titre de la question, etc. Je vous demanderais de le considérer une fois de plus. "Classification" et "clustering": ne sont pas en (seule) possession du machine learning. Ces tâches sont apparues et ont été effectuées en routine dans l'analyse des statistiques / données avant le premier m. l'apprenant est né. Cela n'est vrai que pour quelques techniques récentes comme SVM, qui ont évolué en raison de et au sein de ML. Il est incorrect d'associer la classification / le regroupement / les arbres au ML uniquement. Le ML, cependant, diffère de l'analyse des données statistiques par le fait qu'il utilise fortement le train / test.
ttnphns
@ttnphns Bien sûr, tout est correct, mais le titre original était "Distinguer les échantillons: apprentissage automatique vs tests statistiques (par exemple, test t)" et je voulais juste ajouter une précision car la question concerne vraiment le test t vs classification vs clustering (pour cet objectif scientifique particulier). Je penserai aux améliorations possibles du titre.
amibe dit Réintégrer Monica le
@ttnphns J'ai édité le titre, voyez si vous l'aimez plus.
Amoeba dit Reinstate Monica

Réponses:

15

Grande question. Tout peut être bon ou mauvais, utile ou non, en fonction de vos objectifs (et peut-être de la nature de votre situation). Pour la plupart, ces méthodes sont conçues pour répondre à différents objectifs.

  • Les tests statistiques , comme le test, vous permettent de tester des hypothèses scientifiques. Ils sont souvent utilisés à d'autres fins (parce que les gens ne connaissent tout simplement pas d'autres outils), mais ne devraient généralement pas l'être. Si vous avez une hypothèse a priori selon laquelle les deux groupes ont des moyennes différentes sur une variable normalement distribuée, le test t vous permettra de tester cette hypothèse et de contrôler votre taux d'erreur de type I à long terme (bien que vous ne sachiez pas si vous avez fait un taux d'erreur de type I dans ce cas particulier). tt
  • Les classificateurs dans l'apprentissage automatique, comme un SVM, sont conçus pour classer les modèles comme appartenant à l'un d'un ensemble connu de classes. La situation typique est que vous avez des instances connues et que vous souhaitez former le classificateur à les utiliser afin qu'il puisse fournir les classifications les plus précises à l'avenir lorsque vous aurez d'autres modèles dont la vraie classe est inconnue. L'accent est mis ici sur la précision de l'échantillon ; vous ne testez aucune hypothèse. Vous espérez certainement que la distribution des variables / caractéristiques du prédicteur diffère entre les classes, car sinon aucune aide à la classification future ne sera possible, mais vous n'essayez pas d'évaluer votre croyance que les moyennes de Y diffèrent de X. Vous voulez deviner correctement X à l'avenir lorsque Y sera connu.
  • Les algorithmes d'apprentissage non supervisés, comme le clustering , sont conçus pour détecter ou imposer une structure à un ensemble de données. Il y a plusieurs raisons possibles pour lesquelles vous pourriez vouloir faire cela. Parfois, vous pouvez vous attendre à ce qu'il y ait de véritables groupements latents dans un ensemble de données et vous voulez voir si les résultats du clustering semblent raisonnables et utilisables pour vos besoins. Dans d'autres cas, vous souhaiterez peut-être imposer une structure à un ensemble de données pour activer la réduction des données. Quoi qu'il en soit, vous n'essayez pas de tester une hypothèse sur quoi que ce soit, et vous n'espérez pas être en mesure de prédire quoi que ce soit avec précision à l'avenir.

Dans cet esprit, permet de répondre à vos questions:

  1. Les trois méthodes diffèrent fondamentalement dans les objectifs qu'elles servent.
  2. b et c pourraient être utiles dans les arguments scientifiques, cela dépend de la nature des arguments en question. Le type de recherche scientifique le plus répandu est de loin le test d'hypothèses. Cependant, la formation de modèles prédictifs ou la détection de patrons latents sont également des objectifs légitimes possibles.
  3. Vous n'essayez généralement pas d'obtenir la «signification» des méthodes b ou c.
  4. En supposant que les caractéristiques sont de nature catégorique (ce que je suppose être ce que vous avez en tête), vous pouvez toujours tester des hypothèses en utilisant une ANOVA factorielle. Dans l'apprentissage automatique, il existe un sous-thème pour la classification multi-étiquettes . Il existe également des méthodes pour plusieurs clusters d'appartenance / chevauchement, mais elles sont moins courantes et constituent un problème beaucoup moins traitable. Pour une vue d'ensemble du sujet, voir Krumpleman, CS (2010) Overlapping clustering. Dissertation, UT Austin, Génie électrique et informatique ( pdf ).
  5. De manière générale, les trois types de méthodes rencontrent plus de difficultés à mesure que le nombre de cas dans les catégories divergent.
gung - Réintégrer Monica
la source
2
Re # 4: Je pense que vous comprenez mal le mot «fonctionnalité» dans le PO. Dans l'apprentissage automatique, "fonctionnalité" signifie simplement une variable. Ainsi, «plusieurs fonctionnalités» signifie que l'on utiliserait une version multivariée d'un test t (comme le T de Hotelling), et non une ANOVA factorielle.
Amoeba dit Reinstate Monica
11

Ne va pas aborder le clustering car il a été traité dans d'autres réponses, mais:

En général, le problème de tester si deux échantillons sont significativement différents est connu sous le nom de test à deux échantillons .

tp

Il pourrait être plus facile de réfléchir à certains de ces problèmes si vous construisez un test à deux échantillons à partir d'un classificateur, par exemple, comme récemment proposé par Lopez-Paz et Oquab (2017) . La procédure est la suivante:

  • XYXtrainXtestYtrainYtest
  • XtrainYtrain
  • XtestYtest
  • p^p=12p12p12

En inspectant le classificateur appris, vous pouvez également être en mesure d'interpréter les différences entre les distributions de manière semi-significative. En modifiant la famille de classificateurs que vous envisagez, vous pouvez également aider le test à rechercher certains types de différences.

Notez qu'il est important de faire la séparation train-test: sinon un classificateur qui vient de mémoriser ses entrées aurait toujours une parfaite discriminabilité. L'augmentation de la partie des points dans l'ensemble de formation vous donne plus de données pour apprendre un bon classificateur, mais moins de chances d'être sûr que la précision de la classification est vraiment différente du hasard. Ce compromis est quelque chose qui va varier selon le problème et la famille de classificateurs et n'est pas encore bien compris.

Lopez-Paz et Oquab ont montré de bonnes performances empiriques de cette approche sur quelques problèmes. Ramdas et al. (2016) ont en outre montré qu'en théorie, une approche étroitement liée est optimale en termes de taux pour un problème simple spécifique. La "bonne" chose à faire dans ce contexte est un domaine de recherche active, mais cette approche est au moins raisonnable dans de nombreux contextes si vous voulez un peu plus de flexibilité et d'interprétabilité que d'appliquer simplement un test standard standard.

Dougal
la source
(+1) De plus, la validation croisée imbriquée est la solution, imo. Ensuite, testez l'estimation des performances que vous obtenez dans la boucle de rééchantillonnage externe par rapport aux performances d'un modèle sans information. Si elles sont significativement plus élevées que prévu par hasard, vos données sont quelque peu discriminées.
Firebug
@Firebug Qu'entendez-vous par "performances du modèle sans information"? Je ne comprends pas très bien la procédure que vous proposez.
Dougal
2
@Firebug Une mise en garde importante mais subtile est que si la précision de la classification est estimée via CV, on ne peut pas utiliser un test binomial.
Amoeba dit Reinstate Monica
2
@Firebug Mon argument demeure: vous ne pouvez appliquer aucun type de test à un échantillon aux AUC de différents plis et en particulier à partir de CV répétés car ces estimations ne sont pas indépendantes. Il s'agit d'un problème bien connu.
Amoeba dit Reinstate Monica
2
Test de permutation: je l'ai fait moi-même. Vous exécutez CV pour obtenir une estimation des performances, puis mélangez les étiquettes et réexécutez l'ensemble du pipeline CV (et effectuez ce brassage 100 ou 1000 fois pour obtenir la distribution nulle). Cela a cependant tendance à prendre énormément de temps. Cc à @Firebug.
amibe dit Réintégrer Monica le
3

Seule l'approche (a) sert à tester l'hypothèse.

En cas d'utilisation d'algorithmes d'apprentissage automatique supervisé (b), ils ne peuvent ni prouver ni infirmer les hypothèses sur la distinction des groupes. Si l'algorithme d'apprentissage automatique ne classe pas correctement les groupes, cela peut se produire parce que vous avez utilisé un "mauvais" algorithme pour votre problème, ou que vous ne l'avez pas suffisamment réglé, etc. D'un autre côté, vous pouvez "torturer" les données totalement "aléatoires" longtemps assez pour produire un modèle de sur-ajustement qui fait de bonnes prévisions. Encore un autre problème est quand et comment sauriez-vous que l'algorithme fait de "bonnes" prédictions? Presque jamais vous ne viseriez une précision de classification à 100%, alors quand sauriez-vous que les résultats de la classification prouvent quelque chose?

Les algorithmes de clustering (c) ne sont pas conçus pour l'apprentissage supervisé. Ils ne visent pas à recréer les labels, mais à regrouper vos données en termes de similitudes. Maintenant, les résultats dépendent de l'algorithme que vous utilisez et du type de similitudes que vous recherchez. Vos données peuvent avoir différents types de similitudes, vous pouvez rechercher des différences entre les garçons et les filles, mais l'algorithme peut plutôt trouver des groupes d'enfants pauvres et riches, ou intelligents et moins intelligents, droitiers et gauchers, etc. le regroupement que vous vouliez ne prouve pas que le regroupement n'a pas de sens, mais seulement qu'il a trouvé un autre regroupement «significatif». Comme dans le cas précédent, les résultats peuvent dépendre de l'algorithme utilisé et des paramètres. Est-ce que cela vous conviendrait si un algorithme / paramètre sur dix trouvait "votre" Étiquettes? Et si c'était un sur cent? Combien de temps feriez-vous une recherche avant de vous arrêter? Notez que lorsque vous utilisez l'apprentissage automatique dans la grande majorité des cas, vous ne vous arrêterez pas après avoir utilisé un algorithme avec des paramètres par défaut et le résultat peut dépendre de la procédure que vous avez utilisée.

Tim
la source
2
Pour l'approche (b): vous pouvez construire un test d'hypothèse comme indiqué dans ma réponse pour résoudre le problème de savoir si votre résultat est significatif (bien que ce soit sûrement dans une utilisation naïve de classificateurs pour ce problème). Notez que tout test d'hypothèse donné peut également ne pas rejeter la valeur null car il s'agit du "mauvais" test pour votre problème, exactement de la même manière que cela se produirait avec un classificateur; le problème du sur-ajustement est entièrement résolu par le fractionnement des données.
Dougal
@Dougal bons points (+1) mais mon principal argument est qu'en utilisant l'apprentissage automatique, le résultat dépend de la façon dont vous choisissez l'algorithme, l'utilisez, le testez et évaluez les résultats; le résultat d'un tel test dépend donc dans une large mesure de vos actions. Cela signifie que potentiellement deux statisticiens différents pourraient obtenir des résultats différents en utilisant cette méthode. D'autre part, avec les tests d'hypothèses traditionnels, cela ne dépend que du choix du test.
Tim
De plus, il n'y a pas une seule façon «correcte» de l'appliquer et vous pouvez facilement le manipuler (intentionnellement ou non) pour obtenir les résultats attendus.
Tim
Si vous essayez juste un million de choses jusqu'à ce que vous obteniez le résultat souhaité, oui. Si vous effectuez un fractionnement des données approprié, y compris à partir de votre propre analyse, la procédure de test est parfaitement valide. Avoir plus d'options vous permet une plus grande puissance dans les situations où vous savez comment l'exploiter, mais oui permet plus d'opportunités de tricher (par inadvertance ou autrement) si vous ne faites pas attention.
Dougal
@Dougal oui, mais le résultat dépend également de la procédure utilisée pour la validation croisée et du fractionnement lui-même (par exemple, la taille du groupe de test). Ainsi, à chaque étape, le résultat dépend de votre procédure. De plus, c'est votre décision lorsque vous cessez d'apprendre et d'essayer d'obtenir de meilleurs résultats (algorithme unique avec réglages par défaut, vs algorithmes uniques et réglage des paramètres, vs algorithmes multiples - combien?). Cette procédure pourrait éventuellement nécessiter quelques corrections pour plusieurs tests (mais quoi exactement?) Pour tenir compte de la procédure utilisée - de bons résultats sur un seul algorithme avec des paramètres par défaut semblent
Tim
2
  1. a) vous répond uniquement à la question de savoir si la distribution est différente, mais pas comment les distinguer. b) trouvera également la meilleure valeur pour différencier les deux distributions. c) fonctionnera si les deux distributions ont des propriétés spécifiques. Par exemple, cela fonctionnera avec une distribution normale mais pas avec deux distributions modales, car la méthode peut différencier deux modes du même groupe au lieu de deux groupes différents.

  2. c) n'est pas utile pour les arguments scientifiques en raison de deux distributions modales. b) pourrait être utilisé pour différencier deux distributions, car vous pouvez calculer la signification (voir 3.) Bien que je ne l'ai jamais rencontrée.

  3. Par bootstrapping. Vous calculez le modèle sur la base de sous-échantillons aléatoires 1000 fois. Vous obtenez un score, par exemple la somme minimale des erreurs alpha et bêta. Vous triez le score en ordre croissant. Pour une confiance de 5%, vous choisissez la 950e valeur. Si cette valeur est inférieure à 50% (pour un nombre égal de points pour les groupes A et B), alors avec une confiance de 95%, vous pouvez ignorer l'hypothèse nulle selon laquelle les distributions sont les mêmes. Le problème est que si les distributions sont toutes les deux normales, ont la même moyenne, mais ont une variation différente, alors vous ne pourrez pas comprendre qu'elles sont différentes par les techniques ML. En revanche, vous pouvez trouver un test de variation qui permettra de distinguer les deux distributions. Et ce pourrait être l'inverse que ML sera plus fort qu'un test statistique et pourra distinguer les distributions.

  4. Lorsque vous n'avez qu'une seule fonctionnalité dans ML, vous devez trouver une seule valeur pour distinguer les distributions. Avec deux caractéristiques, la bordure peut être un sinus et dans un espace multidimensionnel, cela peut être vraiment bizarre. Il sera donc beaucoup plus difficile de trouver la bonne frontière. D'un autre côté, des fonctionnalités supplémentaires apportent des informations supplémentaires. Il permettra donc généralement de distinguer plus facilement les deux distributions. Si les deux variables sont normalement distribuées, la bordure est une ligne.

  5. Les échantillons plus petits peuvent se comporter de manière inhabituelle car le théorème de limite centrale ne peut pas être appliqué. Un échantillon plus gros commence à se comporter plus normalement car le théorème de limite centrale commence à fonctionner. Par exemple, la moyenne des deux groupes sera distribuée presque normalement si l'échantillon est suffisamment grand. Mais ce n'est généralement pas 100 vs 300 mais 10 observations contre 1000 observations. Ainsi, selon ce site, le test t pour la différence de moyenne fonctionnera indépendamment de la distribution si le nombre d'observations est supérieur à 40 et sans valeurs aberrantes.

keiv.fly
la source
0

Les tests statistiques permettent de faire des inférences à partir de données, ils vous indiquent comment les choses sont liées. Le résultat est quelque chose qui a une signification réelle. Par exemple, comment le tabagisme est associé au cancer du poumon, à la fois en termes de direction et d'ampleur. Il ne vous dit toujours pas pourquoi les choses se sont passées. Pour expliquer pourquoi les choses se sont produites, nous devons également considérer l'interrelation avec d'autres variables et procéder aux ajustements appropriés (voir Pearl, J. (2003) CAUSALITÉ: MODÈLES, RAISONNEMENT ET INFÉRENCE).

L'apprentissage supervisé sert à faire des prédictions, il vous indique ce qui va se passer. Par exemple, étant donné le statut tabagique d'une personne, nous pouvons prédire si elle aura un cancer du poumon. Dans les cas simples, il vous dit toujours «comment», par exemple en examinant le seuil de tabagisme identifié par l'algorithme. Mais les modèles plus complexes sont plus difficiles ou impossibles à interpréter (deep learning / boosting avec beaucoup de fonctionnalités).

L'apprentissage non supervisé est souvent utilisé pour faciliter les deux précédents.

  • Pour les tests statistiques, en découvrant des sous-groupes sous-jacents inconnus des données (clustering), nous pouvons déduire l'hétérogénéité des associations entre variables. Par exemple, le tabagisme augmente les chances d'avoir un cancer du poumon pour le sous-groupe A mais pas le sous-groupe B.
  • Pour l'apprentissage supervisé, nous pouvons créer de nouvelles fonctionnalités pour améliorer la précision et la robustesse des prédictions. Par exemple, en identifiant des sous-groupes (regroupement) ou une combinaison de caractéristiques (réduction de dimension) qui sont associées à la probabilité d'avoir un cancer du poumon.

Lorsque le nombre de caractéristiques / variables augmente, la différence entre les tests statistiques et l'apprentissage supervisé devient plus importante. Les tests statistiques ne bénéficient pas nécessairement de cela, cela dépend par exemple si vous voulez faire une inférence causale en contrôlant d'autres facteurs ou en identifiant l'hétérogénéité dans les associations comme mentionné ci-dessus. L'apprentissage supervisé fonctionnera mieux si les fonctionnalités sont pertinentes et il ressemblera davantage à une boîte noire.

Lorsque le nombre d'échantillons augmente, nous pouvons obtenir des résultats plus précis pour les tests statistiques, des résultats plus précis pour l'apprentissage supervisé et des résultats plus robustes pour l'apprentissage non supervisé. Mais cela dépend de la qualité des données. Des données de mauvaise qualité peuvent introduire des biais ou du bruit dans les résultats.

Parfois, nous voulons savoir «comment» et «pourquoi» pour éclairer les actions interventionnelles, par exemple en identifiant que le tabagisme cause le cancer du poumon, une politique peut être élaborée pour y faire face. Parfois, nous voulons savoir «quoi» pour éclairer la prise de décision, par exemple découvrir qui est susceptible d'avoir un cancer du poumon et leur donner des traitements précoces. Un numéro spécial a été publié sur Science à propos de la prédiction et de ses limites ( http://science.sciencemag.org/content/355/6324/468). «Le succès semble être atteint de manière plus cohérente lorsque les questions sont abordées dans des efforts multidisciplinaires qui associent la compréhension humaine du contexte à la capacité algorithmique de gérer des téraoctets de données.» À mon avis, par exemple, les connaissances découvertes à l'aide de tests d'hypothèses peuvent aider à l'apprentissage supervisé en nous informant quelles données / fonctionnalités nous devons collecter en premier lieu. D'un autre côté, l'apprentissage supervisé peut aider à générer des hypothèses en informant quelles variables

Tom KL
la source