Suite

Distance euclidienne entre deux droites


J'ai deux lignes dans ArcMap 10.2.2 et je me demandais s'il était possible de créer un raster montrant la distance euclidienne entre elles.

Comment mapper chaque cellule sur une ligne à sa cellule la plus proche sur l'autre ligne ?


Vous pouvez pixelliser (polyligne vers raster) les lignes et utiliser l'outil Distance euclidienne comme suggéré. Si les lignes appartiennent à la même classe d'entités, notez que les valeurs des cellules ED seront la distance de une ligne, de sorte que les valeurs augmenteront en s'éloignant des deux lignes jusqu'à mi-chemin. Si vous voulez la distance d'une ligne à une autre, vous devrez exécuter ED sur une seule ligne (sélectionnez l'une ou l'autre avant Polyline to Raster pour exécuter l'outil uniquement sur l'entité sélectionnée), puis extrayez les valeurs de cellule où l'autre coupe le raster de résultat. Une façon de le faire serait de pixelliser l'autre ligne et d'utiliser ce raster comme masque pour Extraire par masque.


Espace euclidien

Espace euclidien est l'espace fondamental de la géométrie classique. À l'origine, c'était l'espace tridimensionnel de la géométrie euclidienne, mais dans les mathématiques modernes, il existe des espaces euclidiens de toute dimension entière non négative, [1] y compris l'espace tridimensionnel et le plan euclidien (dimension deux). Il a été introduit par le mathématicien grec ancien Euclide d'Alexandrie, [2] et le qualificatif euclidien est utilisé pour le distinguer des autres espaces qui ont été découverts plus tard en physique et en mathématiques modernes.

Les géomètres grecs anciens ont introduit l'espace euclidien pour modéliser l'univers physique. Leur grande innovation était de prouver toutes les propriétés de l'espace sous forme de théorèmes en partant de quelques propriétés fondamentales, appelées postule, qui soit étaient considérées comme évidentes (par exemple, il y a exactement une droite passant par deux points), soit semblaient impossibles à prouver (postulat parallèle).

Après l'introduction à la fin du XIXe siècle des géométries non euclidiennes, les anciens postulats ont été reformulés pour définir les espaces euclidiens à travers la théorie axiomatique. Une autre définition des espaces euclidiens au moyen d'espaces vectoriels et d'algèbre linéaire s'est avérée équivalente à la définition axiomatique. C'est cette définition qui est plus couramment utilisée dans les mathématiques modernes, et détaillée dans cet article. [3]

Dans toutes les définitions, les espaces euclidiens sont constitués de points, qui ne sont définis que par les propriétés qu'ils doivent avoir pour former un espace euclidien.

Il n'y a essentiellement qu'un seul espace euclidien de chaque dimension, c'est-à-dire que tous les espaces euclidiens d'une dimension donnée sont isomorphes. Par conséquent, dans de nombreux cas, il est possible de travailler avec un espace euclidien spécifique, qui est généralement le réel n -espace R n , ^,> équipé du produit scalaire. Un isomorphisme d'un espace euclidien à R n ^> associe à chaque point un n -uplet de nombres réels qui situent ce point dans l'espace euclidien et sont appelés les Coordonnées cartésiennes de ce point.


Sklearn.metrics.pairwise .euclidean_distances¶

En considérant les lignes de X (et Y=X) comme des vecteurs, calculez la matrice de distance entre chaque paire de vecteurs.

Pour des raisons d'efficacité, la distance euclidienne entre une paire de vecteurs ligne x et y est calculée comme suit :

Cette formulation présente deux avantages par rapport aux autres méthodes de calcul des distances. Premièrement, il est efficace du point de vue informatique lorsqu'il s'agit de données éparses. Deuxièmement, si un argument varie mais que l'autre reste inchangé, alors dot(x, x) et/ou dot(y, y) peuvent être précalculés.

Cependant, ce n'est pas la manière la plus précise de faire ce calcul, car cette équation souffre potentiellement d'une « annulation catastrophique ». De plus, la matrice de distance renvoyée par cette fonction peut ne pas être exactement symétrique comme l'exigent, par exemple, les fonctions scipy.spatial.distance.

Paramètres X de forme (n_samples_X, n_features) Oui de forme (n_samples_Y, n_features), par défaut=Aucun Y_norm_squared en forme de tableau (n_samples_Y,), default=None

Les produits scalaires précalculés des vecteurs en Y (par exemple, (Y**2).sum(axis=1) ) peuvent être ignorés dans certains cas, voir la note ci-dessous.

au carré bool, par défaut=Faux

Renvoie les distances euclidiennes au carré.

X_norm_squared en forme de tableau (n_samples,), par défaut=Aucun

Les produits scalaires précalculés des vecteurs dans X (par exemple, (X**2).sum(axis=1) ) peuvent être ignorés dans certains cas, voir la note ci-dessous.

Retour distances ndarray de forme (n_samples_X, n_samples_Y)

Distances entre les paires d'éléments de X et Y.

Pour obtenir une meilleure précision, X_norm_squared et Y_norm_squared peuvent être inutilisés s'ils sont passés en tant que float32 .


Distance euclidienne entre deux lignes - Systèmes d'Information Géographique

Distance euclidienne dans l'espace 'n'-dimensionnel

La distance euclidienne est une mesure de la vraie distance en ligne droite entre deux points dans l'espace euclidien.

Dans un exemple où il n'y a qu'une variable décrivant chaque cellule (ou cas), il n'y a qu'un espace dimensionnel. La distance euclidienne entre 2 cellules serait la simple différence arithmétique : xcellule1 - Xcellule2 (ex. APHWcellule1 = 1.11603 ms et APHWcellule10 = 0,97034 ms ils sont (1,11603 - 0,97034) = 0,14569 ms l'un de l'autre).

Cela a déjà été décrit ici.

Avec 3 variables la distance peut être visualisée dans un espace 3D tel que celui vu ci-dessous.

La distance 'e' serait la distance entre la cellule 1 et la cellule 2. Nous pourrions la déterminer en utilisant le théorème de Pythagore comme vu précédemment, mais nous devons d'abord trouver la valeur de 'd' en utilisant les valeurs 'a' et 'b'.

4. c = eEPSCcellule1 - eEPSCcellule2

en remplaçant a2 + b2 par c2 à partir de la ligne 3, vous obtenez

substituant les valeurs pour 'a', 'b' & 'c' de 1, 2 & 4

7. e 2 = (APHWcellule1 - APHWcellule2) 2 + (mTaucellule1 - mTaucellule2) 2 + (eEPSCcellule1 - eEPSCcellule2) 2

De cette façon, chacune des dimensions (amplitude APHW, mTau et amp eEPSC) est additionnée pour obtenir la distance euclidienne dans une équation.

Plus de 3 dimensions ('n'-dimensions)

Bien qu'il soit pratiquement impossible de visualiser le principe de Pythagore, il peut être appliqué à plus de 3 dimensions.

Pour généraliser cela, nous pourrions dire que 'e', ​​vu ci-dessus, est la distance 'D' entre 2 cellules quelconques (cellule i et cellule j): Dje.

Le nombre de dimensions utilisées dépend du nombre de variables par lesquelles chaque cellule (cas) est décrite. Si chaque cellule est décrite par 3 variables alors c'est l'espace 3D, s'il y a 20 variables alors c'est l'espace 20D. Par conséquent, les variables 'n' sont représentées dans l'espace de dimension 'n'. Chaque cellule (case) aura une valeur 'x' pour chaque variable (les variables seront représentées du premier 'v' = 1 au dernier 'v' = 'n' de sorte que 'v' = 1 à 'n' ). Ainsi, la distance dans chaque dimension (comme dans 1, 2 et 4 ci-dessus) pourrait être représentée par :

Xvi - Xvj qui en anglais serait : La valeur de la v ième variable pour la cellule i moins la valeur de la v ième variable pour la cellule j.

Lequel, en se souvenant du théorème de Pythagore en anglais : Le carré de l'hypoténuse est égal à la somme des carrés des deux autres côtés. (parfaitement ringard la blague de Pythagore ici), lui-même en anglais serait : Le carré de la distance entre 2 cellules (i & j Dje) est égal à la somme ( S ), de la première variable (v = 1) à la dernière variable (n), des carrés des distances dans chaque dimension (qui se trouve en trouvant les différences pour la valeur de chaque cellule pour chaque variable (la valeur de la cellule i pour la variable v étant xvi et la valeur de la cellule j étant xvj)).


Tau de Kendall

Le tau de Kendall est assez similaire au coefficient de corrélation de Spearman. Ces deux mesures sont des mesures non paramétriques d'une relation. Plus précisément, les coefficients de Spearman et de Kendall sont calculés sur la base des données de classement et non des données brutes.

Semblable à la corrélation de Pearson et de Spearman, le Tau de Kendall est toujours compris entre -1 et +1 , où -1 suggère une relation forte et négative entre deux variables et 1 suggère une relation forte et positive entre deux variables.

Bien que les mesures de Spearman et de Kendall soient très similaires, il y a des avantages statistiques à choisir la mesure de Kendall dans la mesure où le Tau de Kendall a une plus petite variabilité lors de l'utilisation de plus grandes tailles d'échantillon. Cependant, la mesure de Spearman est plus efficace en termes de calcul, car le Tau de Kendall est O(n²) et la corrélation de Spearman est O(nLog(n)).


La somme des différences au carré est équivalente à la norme (L_2) au carré, également connue sous le nom de norme euclidienne. Elle est donc également connue sous le nom de distance euclidienne au carré. C'est la métrique fondamentale dans les problèmes des moindres carrés et l'algèbre linéaire. L'absence de la fonction abs rend cette métrique pratique à traiter analytiquement, mais les carrés la rendent très sensible aux grandes valeurs aberrantes.

[d_> : (x, y) mapsto |x-y|_2^2 = langle x-y, x-y angle = sum_^ (x_i-y_i)^2]


Ce que vous utilisez s'appelle la formule haversine, qui calcule la distance entre deux points sur une sphère à vol d'oiseau. Le lien Google Maps que vous avez fourni indique une distance de 2,2 km car ce n'est pas une ligne droite.

Wolfram Alpha est une excellente ressource pour faire des calculs géographiques, et montre également une distance de 1,652 km entre ces deux points.

Si vous recherchez une distance en ligne droite (comme les fichiers de corbeau), votre fonction fonctionne correctement. Si ce que vous voulez est une distance en voiture (ou à vélo ou en transports en commun ou à pied), vous devrez utiliser une API de cartographie (Google ou Bing étant les plus populaires) pour obtenir l'itinéraire approprié, qui inclura la distance.


Vous pouvez tracer les lignes qui forment un triangle rectangle, en utilisant ces points comme deux des coins :

Il est facile de trouver les longueurs des côtés horizontaux et verticaux du triangle rectangle : il suffit de soustraire le X -valeurs et la oui -valeurs:

Ensuite, utilisez le théorème de Pythagore pour trouver la longueur du troisième côté (qui est l'hypoténuse du triangle rectangle):

Ce format est toujours vrai. Étant donné deux points, vous pouvez toujours les tracer, tracer le triangle rectangle, puis trouver la longueur de l'hypoténuse. La longueur de l'hypoténuse est la distance entre les deux points. Étant donné que ce format fonctionne toujours, il peut être transformé en une formule :

Formule de distance : Étant donné les deux points (X1, oui1) et (X2, oui2) , la distance entre ces points est donnée par la formule :

Ne laissez pas les indices vous effrayer. Ils indiquent seulement qu'il y a un "premier" point et un "second" point c'est-à-dire que vous avez deux points. Celui que vous appelez « premier » ou « deuxième » dépend de vous. La distance sera la même, peu importe.


Supposons que vous réalisiez une enquête pour connaître vos préférences en matière de films :

  1. Comment avez-vous aimé Rambo? (1-10)
  2. Comment avez-vous aimé Bambi ? (1-10)
  3. Comment avez-vous aimé Seinfeld ? (1-10)

Comment comparer les notes des gens ? Trouver des préférences similaires ? Pythagore à la rescousse !

Si nous représentons les évaluations comme un « point » (Rambo, Bambi, Seinfeld), nous pouvons représenter nos réponses à l'enquête comme ceci :

Et en utilisant le théorème, nous pouvons voir à quel point les personnes sont différentes :

  • Un dur à un Joe moyen : $(10 – 5, 1 – 5, 3 – 5) = (5, -4, -2) = sqrt <(5)^2 + (-4)^2 + (-2 )^2>= sqrt <45>= 6.7$
  • Du type coriace au type sensible : $(10 – 1, 1 – 10, 3 – 7) = (9, -9, -4) = sqrt <(9)^2 + (-9)^2 + (-4 )^2>= sqrt <178>= 13.34$

Nous pouvons calculer les résultats en utilisant une version 2 + b 2 + c 2 = distance 2 du théorème. Comme nous le soupçonnions, il y a un grand écart entre le Tough et le Sensitive Guy, avec Average Joe au milieu. Le théorème nous aide quantifier cette distance et faire des choses intéressantes comme regrouper des résultats similaires.

Cette technique peut être utilisée pour évaluer les préférences de films Netflix et d'autres types de filtrage collaboratif où vous essayez de faire des prédictions basées sur les préférences (c'est-à-dire les recommandations d'Amazon). Dans le langage geek, nous représentions les préférences sous forme de vecteur et utilisons le théorème pour trouver la distance entre elles (et regrouper des éléments similaires, peut-être).


8. Cas d'utilisation 3 : Classification à une classe

La classification à une classe est un type d'algorithme dans lequel l'ensemble de données d'apprentissage contient des observations appartenant à une seule classe.

Avec seulement cette information connue, l'objectif est de déterminer si une observation donnée dans un nouvel ensemble de données (ou de test) appartient à cette classe.

Vous pourriez vous demander quand une telle situation se produirait. Eh bien, c'est un problème assez courant en Data Science.

Par exemple, considérons la situation suivante : vous avez un grand ensemble de données contenant des millions d'enregistrements qui ne sont PAS encore classés en 1 et en 0. Mais vous avez également avec vous un petit échantillon de données contenant uniquement des enregistrements positifs. En apprenant les informations de cet exemple de jeu de données, vous souhaitez classer tous les enregistrements du grand jeu de données en 1 et en 0.

Sur la base des informations de l'ensemble de données de l'échantillon, il est possible de dire si un échantillon donné est un 1 ou un 0 en ne visualisant que les 1 (et en n'ayant aucune connaissance des 0).

Cela peut être fait en utilisant la distance de Mahalanobis.

Essayons ceci sur l'ensemble de données BreastCancer, mais cette fois, nous ne considérerons que les observations malignes (colonne de classe=1) dans les données d'entraînement.

Diviser 50 % de l'ensemble de données en entraînement et test. Seuls les 1 sont conservés dans les données d'entraînement.

Construisons le MahalanobisOneClassClassifier et obtenons la distance mahalanobis de chaque point de données en x à partir de l'ensemble d'apprentissage ( xtrain_pos ).

Nous avons la distance de Mahalanobis et la classe réelle de chaque observation.

Je m'attendrais à ce que ces observations avec une faible distance de Mahalanobis soient de 1.

Donc, je trie les mdist_actuals par distance de Mahalanobis et le quantile coupe les lignes en 10 groupes de taille égale. Les observations dans les quantiles supérieurs devraient avoir plus de 1 par rapport à celles du bas. Voyons.

Si vous remarquez ci-dessus, près de 90% des 1 (cas malins) se situent dans les premiers 40% de la distance de Mahalanobis. Incidemment, tous sont inférieurs à la valeur critique pf 14,05. Alors, prenons la valeur critique comme seuil et marquons ces observations avec une distance de Mahalanobis inférieure au seuil comme positives.

Ainsi, sans la connaissance de la classe bénigne, nous sommes en mesure de prédire avec précision la classe de 87 % des observations.


Voir la vidéo: Les distances: 2 droites (Octobre 2021).