Optimaliseren met k-means: Een praktijkvoorbeeld
In het volgende voorbeeld wordt een voorbeeld uit de praktijk getoond waarbij functies voor K-means en middenpunten op een gegevensverzameling zijn toegepast. Met behulp van de functie K-means worden gegevenspunten gescheiden in clusters met dezelfde eigenschappen. De clusters worden compacter en verder uitgesplitst als het K-means-algoritme is toegepast op een configureerbaar aantal iteraties.
K-means wordt gebruikt in veel sectoren en gebruikscases. Enkele voorbeelden van gebruikscases waarbij clustering is toegepast zijn klantsegmentatie, fraudedetectie, het voorspellen van klantverloop, het afstemmen van stimuleringen voor klanten, het identificeren van cybercriminaliteit en optimalisatie van bezorgroutes. Het K-means clustering algoritme wordt steeds meer gebruikt door ondernemingen die patronen willen herkennen en hun diensten willen optimaliseren.
Qlik Sense Functies voor K-means en middenpunten
Qlik Sense biedt twee functies voor K-means waarmee gegevenspunten op basis van overeenkomstigheid in clusters worden gegroepeerd. Zie KMeans2D - diagramfunctie en KMeansND - diagramfunctie. De functie KMeans2D accepteert twee dimensies en werkt goed voor het visualiseren van gegevens met behulp van een spreidingsplot. De functie KMeansND accepteert meer dan twee dimensies. Het is vrij eenvoudig om een 2D-resultaat op standaarddiagrammen toe te passen. In het volgende voorbeeld wordt K-means toegepast op een spreidingsplot met behulp van twee dimensies. K-means clustering kan worden gevisualiseerd door middel van een uitdrukking of een dimensie zoals in dit voorbeeld wordt getoond.
Middenpuntfuncties in Qlik Sense bepalen het rekenkundig gemiddelde van alle gegevenspunten in het cluster en identificeren een centraal punt, oftewel een middenpunt voor dat cluster. Voor elke diagramrij (of record) toont de middenpuntfunctie de coördinaat van het cluster waaraan dit gegevenspunt is toegewezen. Zie KMeansCentroid2D - diagramfunctie en KMeansCentroidND - diagramfunctie.
Overzicht gebruikscase en voorbeeld
In het volgende voorbeeld wordt u door een gesimuleerd scenario uit de praktijk geleid. Een textielbedrijf in de staat New York, in de VS, moet de kosten verlagen door de leveringskosten te minimaliseren. Ze kunnen dit doen door magazijnen te verplaatsen naar locaties dichter bij hun distributeurs. Het bedrijf maakt gebruik van 118 distributeurs binnen de staat New York. In het volgende voorbeeld wordt gesimuleerd hoe een operationeel manager de distributeurs kan opdelen in vijf regio's met behulp van de functie K-means en vervolgens vijf optimale magazijnlocaties kan bepalen met behulp van de middenpuntfunctie. Het doel is om coördinaten te ontdekken die gebruikt kunnen worden om de vijf centrale magazijnlocaties te identificeren.
De gegevensverzameling
De gegevensverzameling is gebaseerd op willekeurig gegenereerde namen en adressen in de staat New York met nauwkeurige lengte- en breedtecoördinaten. De dataset bevat de volgende tien kolommen: id, voornaam, achternaam, telefoon, adres, stad, staat, postcode, breedtegraad, lengtegraad. De gegevensverzameling is hieronder beschikbaar als een bestand dat u lokaal kunt downloaden en vervolgens kunt uploaden naar Qlik Sense of uitgelijnd voor de editor voor laden van gegevens. De app die wordt aangemaakt heet Distributeurs K-means en middenpunt en het eerste werkblad in de app heet Clusteranalyse distributie.
Selecteer de volgende link om het bestand met voorbeeldgegevens te downloaden: DistributorData.csv
Titel: DistributorData
Totaal aantal records: 118
De KMeans2D-functie toepassen
In dit voorbeeld wordt de configuratie van een diagram van een spreidingsplot weergegeven met behulp van de gegevensverzameling DistributorData, de KMeans2D-functie is toegepast en het diagram is gekleurd op basis van dimensie.
Houd er rekening mee dat de Qlik Sense K-meansfunctie ondersteuning biedt voor automatische clustering met behulp van de methode diepteverschil (DeD). Als een gebruiker het aantal clusters instelt op 0, wordt een optimaal aantal clusters voor die gegevensverzameling bepaalt. Voor dit voorbeeld is er een variabele gemaakt voor het argument num_clusters (raadpleeg KMeans2D - diagramfunctie voor de syntaxis). Het gewenste aantal clusters (k=5) wordt opgegeven per variabele.
- Er wordt een spreidingsplot-diagram naar het werkblad gesleept. Dit wordt Distributeurs (per dimensie) genoemd.
- Er wordt een variabele gemaakt om het aantal clusters op te geven. De variabele krijgt de naam vDistClusters. Voor de variabele wordt voor Definitie =5 ingevoerd.
- De gegevensconfiguratie voor het diagram:
- Onder Dimensies is id geselecteerd voor het veld voor Bel. Cluster-id is ingevoerd voor het label.
- Onder Metingen, is Avg([latitude]) de uitdrukking voor de X-as.
- Onder Metingen, is Avg([longitude]) de uitdrukking voor de Y-as.
- Configuratie voor Uiterlijk:
- Onder Kleuren en legenda is Aangepast geselecteerd voor Kleuren.
- Per dimensie is geselecteerd voor het kleuren van het diagram.
- De volgende uitdrukking is ingevoerd: =pick(aggr(KMeans2D(vDistClusters,only(latitude),only(longitude)),id)+1, 'Cluster 1', 'Cluster 2', 'Cluster 3', 'Cluster 4', 'Cluster 5')
- Het selectievakje Kleuren bij selectie behouden is geselecteerd.
Een tabel toevoegen: Distributeurs
Het kan handig zijn om een tabel bij de hand te hebben voor snelle toegang tot relevante gegevens. Het spreidingsplot-diagram toont weliswaar de id's, maar ter referentie is een tabel met de namen van de overeenkomstige distributeurs toegevoegd.
- Er wordt een tabel met de naam Distributeurs naar het werkblad gesleept, waaraan de volgende Kolommen (dimensies) zijn toegevoegd: id, voornaam en achternaam.
Toevoegen van een staafdiagram: # observaties per cluster
Voor het scenario magazijndistributie is het nuttig te weten hoeveel distributeurs door elk magazijn zullen worden bediend. Daarom wordt er een staafdiagram aangemaakt, dat meet hoeveel distributeurs aan elk cluster zijn toegewezen.
- Er wordt een staafdiagram naar het werkblad gesleept. Het diagram krijgt de naam: # observaties per cluster.
- Gegevensconfiguratie voor het staafdiagram:
- Er wordt een dimensie met het label Clusters toegevoegd (het label kan worden toegevoegd nadat de uitdrukking is toegepast). De volgende uitdrukking wordt ingevoerd: =pick(aggr(KMeans2D(vDistClusters,only(latitude),only(longitude)),id)+1, 'Cluster 1', 'Cluster 2', 'Cluster 3', 'Cluster 4', 'Cluster 5')
- De Meting met het label # observaties wordt toegevoegd. De volgende uitdrukking wordt ingevoerd: =count(aggr(KMeans2D(vDistClusters,only(latitude),only(longitude)),id))
- Configuratie voor Uiterlijk:
- Onder Kleuren en legenda is Aangepast geselecteerd voor Kleuren.
-
Per dimensie is geselecteerd voor het kleuren van het diagram.
- De volgende uitdrukking wordt ingevoerd: =pick(aggr(KMeans2D(vDistClusters,only(latitude),only(longitude)),id)+1, 'Cluster 1', 'Cluster 2', 'Cluster 3', 'Cluster 4', 'Cluster 5')
- Het selectievakje Kleuren bij selectie behouden is geselecteerd.
- Legenda tonen is uitgeschakeld.
- Onder Presentatie staat Waardelabels ingesteld op Auto.
- Onder de x-as is: bij Clusters is Alleen labels geselecteerd.
Toepassen van de Centroid2D-functie
Er wordt een tweede tabel toegevoegd voor de Centroid2D-functie waarmee de coördinaten voor potentiële magazijnlocaties worden bepaald. Deze tabel toont de centrale locatie (middenpuntwaarden) voor de vijf geïdentificeerde distributeurgroepen.
- Sleep een Tabel naar het werkblad, noem het Cluster middenpunten en voeg de volgende kolommen toe:
- Er wordt een dimensie met het label Clusters toegevoegd. De volgende uitdrukking wordt ingevoerd: =pick(aggr(KMeans2D(vDistClusters,only(latitude),only(longitude)),id)+1,'Warehouse 1','Warehouse 2','Warehouse 3','Warehouse 4','Warehouse 5')
- Er wordt een Meting met het label breedtegraad (D1) toegevoegd. De volgende uitdrukking wordt ingevoerd:=only(aggr(KMeansCentroid2D(vDistClusters,0,only(latitude),only(longitude)),id))
Let op: de parameter coordinate_no komt overeen met de eerste dimensie(0). In dit geval wordt de dimensie breedtegraad uitgezet tegen de x-as. Als we met de CentroidND-functie zouden werken en er zouden tot zes dimensies zijn, dan zouden deze parametergegevens om het even welke van zes waarden kunnen zijn: 0, 1, 2, 3, 4 of 5. - Er wordt een Meting met het label lengtegraad (D2) toegevoegd. De volgende uitdrukking wordt ingevoerd: =only(aggr(KMeansCentroid2D(vDistClusters,1,only(latitude),only(longitude)),id))
De parameter coordinate_no in deze uitdrukking komt overeen met de tweede dimensie(1). De dimensie lengtegraad wordt uitgezet tegen de y-as.
Toewijzen van middenpunten
De volgende stap bestaat uit het toewijzen van de middenpunten. Het is aan de ontwikkelaar van de app of hij de visualisatie op afzonderlijke werkbladen wenst te plaatsen.
- Er wordt een kaart met de naam Toewijzen van middenpunten naar het werkblad gesleept.
- In de sectie Lagen. Laag toevoegen wordt geselecteerd, vervolgens wordt Puntlaag geselecteerd.
-
Het Veld id wordt geselecteerd en het Label voor de Dist id's wordt toegevoegd.
-
In de sectie Locatie wordt het selectievakje voor de velden Lengte- en breedtegraad geselecteerd.
-
Voor Breedtegraad wordt het veld breedtegraad geselecteerd.
-
Voor Lengtegraad wordt het veld lengtegraad geselecteerd.
-
In de sectie Grootte en vorm wordt Bel geselecteerd voor Vorm en de Grootte wordt naar wens verkleind met de schuif.
-
In de sectie Kleuren wordt Enkele kleur geselecteerd en blauw wordt geselecteerd voor de Kleur en grijs voor de Omtrek (ook deze keuzes mag u zelf bepalen).
- In de sectie Lagen wordt een tweede Puntlaag toegevoegd door eerst Laag toevoegen en dan Puntlaag te selecteren.
-
De volgende uitdrukking wordt ingevoerd: =aggr(KMeans2D(vDistClusters,only(latitude),only(longitude)),id)
-
Het Label Clusters wordt toegevoegd.
-
In de sectie Locatie wordt het selectievakje voor de velden Lengte- en breedtegraad geselecteerd.
-
Voor de Breedtegraad, die in dit geval tegen de x-as wordt uitgezet, wordt de volgende uitdrukking toegevoegd: =aggr(KMeansCentroid2D(vDistClusters,0,only(latitude),only(longitude)),id)
-
Voor de Lengtegraad die in dit geval langs de y-as wordt uitgezet, wordt de volgende uitdrukking toegevoegd: =aggr(KMeansCentroid2D(vDistClusters,1,only(latitude),only(longitude)),id)
-
In de sectie Grootte en vorm wordt Driehoek geselecteerd voor Vorm en de Grootte wordt naar wens verkleind met de schuif.
-
Onder Kleuren en legenda is Aangepast geselecteerd voor Kleuren.
-
Per dimensie is geselecteerd voor het kleuren van het diagram. De volgende uitdrukking wordt ingevoerd: =pick(aggr(KMeans2D(vDistClusters,only(latitude),only(longitude)),id)+1, 'Cluster 1', 'Cluster 2', 'Cluster 3', 'Cluster 4', 'Cluster 5')
-
De dimensie krijgt het label Clusters.
- In Kaartinstellingen wordt Adaptief geselecteerd voor Projectie. Metrisch wordt geselecteerd voor Maateenheden.
Conclusie
Met behulp van de K-means-functie zijn in dit praktijkscenario distributeurs gesegmenteerd in soortgelijke groepen of clusters op basis van hun overeenkomsten; in dit geval de mate van onderlinge nabijheid. Op deze clusters is de middenpuntfunctie toegepast om vijf kaartcoördinaten te bepalen. Deze coördinaten geven een eerste centrale locatie aan voor de bouw of de vestiging van magazijnen. De middenpuntfunctie wordt toegepast op het kaartdiagram, zodat app-gebruikers kunnen zien waar de middenpunten zich ten opzichte van de omliggende clustergegevenspunten bevinden. De resulterende coördinaten staan voor potentiële locaties van magazijnen die ervoor kunnen zorgen dat de leveringskosten voor distributeurs in de staat New York kunnen worden gedrukt.
Distributor-gegevensverzameling: Uitgelijnd laden voor de editor bedoeld voor het laden van gegevens in Qlik Sense
DistributorData:
Load * Inline [
id,first_name,last_name,telephone,address,city,state,zip,latitude,longitude
1,Kaiya,Snow,(716) 201-1212,6231 Tonawanda Creek Rd #APT 308,Lockport,NY,14094,43.08926,-78.69313
2,Dean,Roy,(716) 201-1588,6884 E High St,Lockport,NY,14094,43.16245,-78.65036
3,Eden,Paul,(716) 202-4596,4647 Southwestern Blvd #APT 350,Hamburg,NY,14075,42.76003,-78.83194
4,Bryanna,Higgins,(716) 203-7041,418 Park Ave,Dunkirk,NY,14048,42.48279,-79.33088
5,Elisabeth,Lee,(716) 203-7043,36 E Courtney St,Dunkirk,NY,14048,42.48299,-79.31928
6,Skylar,Robinson,(716) 203-7166,26 Greco Ln,Dunkirk,NY,14048,42.4612095,-79.3317925
7,Cody,Bailey,(716) 203-7201,114 Lincoln Ave,Dunkirk,NY,14048,42.4801269,-79.322232
8,Dario,Sims,(408) 927-1606,N Castle Dr,Armonk,NY,10504,41.11979,-73.714864
9,Deacon,Hood,(410) 244-6221,4856 44th St,Woodside,NY,11377,40.748372,-73.905445
10,Zackery,Levy,(410) 363-8874,61 Executive Blvd,Farmingdale,NY,11735,40.7197457,-73.430239
11,Rey,Hawkins,(412) 344-8687,4585 Shimerville Rd,Clarence,NY,14031,42.972075,-78.6592452
12,Phillip,Howard,(413) 269-4049,464 Main St #101,Port Washington,NY,11050,40.8273756,-73.7009971
13,Shirley,Tyler,(434) 985-8943,114 Glann Rd,Apalachin,NY,13732,42.0482515,-76.1229725
14,Aniyah,Jarvis,(440) 244-1808,87 N Middletown Rd,Pearl River,NY,10965,41.0629,-74.0159
15,Alayna,Woodard,(478) 335-3704,70 W Red Oak Ln,West Harrison,NY,10604,41.0162722,-73.7234926
16,Jermaine,Lambert,(508) 561-9836,24 Kellogg Rd,New Hartford,NY,13413,43.0555739,-75.2793197
17,Harper,Gibbs,(239) 466-0238,Po Box 33,Cottekill,NY,12419,41.853392,-74.106082
18,Osvaldo,Graham,(252) 246-0816,6878 Sand Hill Rd,East Syracuse,NY,13057,43.073215,-76.081448
19,Roberto,Wade,(270) 469-1211,3936 Holley Rd,Moravia,NY,13118,42.713044,-76.481227
20,Kate,Mcguire,(270) 788-3080,6451 State 64 Rte #3,Naples,NY,14512,42.707366,-77.380489
21,Dale,Andersen,(281) 480-5690,205 W Service Rd,Champlain,NY,12919,44.9645392,-73.4470831
22,Lorelai,Burch,(302) 644-2133,1 Brewster St,Glen Cove,NY,11542,40.865177,-73.633019
23,Amiyah,Flowers,(303) 223-0055,46600 Us Interstate 81 Rte,Alexandria Bay,NY,13607,44.309626,-75.988365
24,Mckinley,Clements,(303) 918-3230,200 Summit Lake Dr,Valhalla,NY,10595,41.101145,-73.778298
25,Marc,Gibson,(607) 203-1233,25 Robinson St,Binghamton,NY,13901,42.107416,-75.901614
26,Kali,Norman,(607) 203-1400,1 Ely Park Blvd #APT 15,Binghamton,NY,13905,42.125866,-75.925026
27,Laci,Cain,(607) 203-1437,16 Zimmer Road,Kirkwood,NY,13795,42.066516,-75.792627
28,Mohammad,Perez,(607) 203-1652,71 Endicott Ave #APT 12,Johnson City,NY,13790,42.111894,-75.952187
29,Izabelle,Pham,(607) 204-0392,434 State 369 Rte,Port Crane,NY,13833,42.185838,-75.823074
30,Kiley,Mays,(607) 204-0870,244 Ballyhack Rd #14,Port Crane,NY,13833,42.175612,-75.814917
31,Peter,Trevino,(607) 205-1374,125 Melbourne St.,Vestal,NY,13850,42.080254,-76.051124
32,Ani,Francis,(607) 208-4067,48 Caswell St,Afton,NY,13730,42.232065,-75.525674
33,Jared,Sheppard,(716) 386-3002,4709 430th Rte,Bemus Point,NY,14712,42.162175,-79.39176
34,Dulce,Atkinson,(914) 576-2266,501 Pelham Rd,New Rochelle,NY,10805,40.895449,-73.782602
35,Jayla,Beasley,(716) 526-1054,5010 474th Rte,Ashville,NY,14710,42.096859,-79.375561
36,Dane,Donovan,(718) 545-3732,5014 31st Ave,Woodside,NY,11377,40.756967,-73.909506
37,Brendon,Clay,(585) 322-7780,133 Cummings Ave,Gainesville,NY,14066,42.664309,-78.085651
38,Asia,Nunez,(718) 426-1472,2407 Gilmore ,East Elmhurst,NY,11369,40.766662,-73.869185
39,Dawson,Odonnell,(718) 342-2179,5019 H Ave,Brooklyn,NY,11234,40.633245,-73.927591
40,Kyle,Collins,(315) 733-7078,502 Rockhaven Rd,Utica,NY,13502,43.129184,-75.226726
41,Eliza,Hardin,(315) 331-8072,502 Sladen Place,West Point,NY,10996,41.3993,-73.973003
42,Kasen,Klein,(518) 298-4581,2407 Lake Shore Rd,Chazy,NY,12921,44.925561,-73.387373
43,Reuben,Bradford,(518) 298-4581,33 Lake Flats Dr,Champlain,NY,12919,44.928092,-73.387884
44,Henry,Grimes,(518) 523-3990,2407 Main St,Lake Placid,NY,12946,44.291487,-73.98474
45,Kyan,Livingston,(518) 585-7364,241 Alexandria Ave,Ticonderoga,NY,12883,43.836553,-73.43155
46,Kaitlyn,Short,(516) 678-3189,241 Chance Dr,Oceanside,NY,11572,40.638534,-73.63079
47,Damaris,Jacobs,(914) 664-5331,241 Claremont Ave,Mount Vernon,NY,10552,40.919852,-73.827848
48,Alivia,Schroeder,(315) 469-4473,241 Lafayette Rd,Syracuse,NY,13205,42.996446,-76.12957
49,Bridget,Strong,(315) 298-4355,241 Maltby Rd,Pulaski,NY,13142,43.584966,-76.136317
50,Francis,Lee,(585) 201-7021,166 Ross St,Batavia,NY,14020,43.0031502,-78.17487
51,Makaila,Phelps,(585) 201-7422,58 S Main St,Batavia,NY,14020,42.99941,-78.1939285
52,Jazlynn,Stephens,(585) 203-1087,1 Sinclair Dr,Pittsford,NY,14534,43.084157,-77.545452
53,Ryann,Randolph,(585) 203-1519,331 Eaglehead Rd,East Rochester,NY,14445,43.10785,-77.475552
54,Rosa,Baker,(585) 204-4011,42 Ossian St,Dansville,NY,14437,42.560761,-77.70088
55,Marcel,Barry,(585) 204-4013,42 Jefferson St,Dansville,NY,14437,42.557735,-77.702983
56,Dennis,Schmitt,(585) 204-4061,750 Dansville Mount Morris Rd,Dansville,NY,14437,42.584458,-77.741648
57,Cassandra,Kim,(585) 204-4138,3 Perine Ave APT1,Dansville,NY,14437,42.562865,-77.69661
58,Kolton,Jacobson,(585) 206-5047,4925 Upper Holly Rd,Holley,NY,14470,43.175957,-78.074465
59,Nathanael,Donovan,(718) 393-3501,9604 57th Ave,Corona,NY,11373,40.736077,-73.864858
60,Robert,Frazier,(718) 271-3067,300 56th Ave,Corona,NY,11373,40.735304,-73.873997
61,Jessie,Mora,(315) 405-8991,9607 Forsyth Loop,Watertown,NY,13603,44.036466,-75.833437
62,Martha,Rollins,(347) 242-2642,22 Main St,Corona,NY,11373,40.757727,-73.829331
63,Emely,Townsend,(718) 699-0751,60 Sanford Ave,Corona,NY,11373,40.755466,-73.831029
64,Kylie,Cooley,(347) 561-7149,9608 95th Ave,Ozone Park,NY,11416,40.687564,-73.845715
65,Wendy,Cameron,(585) 571-4185,9608 Union St,Scottsville,NY,14546,43.013327,-77.7907839
66,Kayley,Peterson,(718) 654-5027,961 E 230th St,Bronx,NY,10466,40.889275,-73.850555
67,Camden,Ochoa,(718) 760-8699,59 Vark St,Yonkers,NY,10701,40.929322,-73.89957
68,Priscilla,Castillo,(910) 326-7233,9359 Elm St,Chadwicks,NY,13319,43.024902,-75.26886
69,Dana,Schultz,(913) 322-4580,99 Washington Ave,Hastings on Hudson,NY,10706,40.99265,-73.879748
70,Blaze,Medina,(914) 207-0015,60 Elliott Ave,Yonkers,NY,10705,40.921498,-73.896682
71,Finnegan,Tucker,(914) 207-0015,90 Hillside Drive,Yonkers,NY,10705,40.922514,-73.892911
72,Pranav,Palmer,(914) 214-8376,5 Bruce Ave,Harrison,NY,10528,40.970916,-73.711493
73,Kolten,Wong,(914) 218-8268,70 Barker St,Mount Kisco,NY,10549,41.211993,-73.723202
74,Jasiah,Vazquez,(914) 231-5199,30 Broadway,Dobbs Ferry,NY,10522,41.004629,-73.879825
75,Lamar,Pierce,(914) 232-0380,68 Ridge Rd,Katonah,NY,10536,41.256662,-73.707964
76,Carla,Coffey,(914) 232-0469,197 Beaver Dam Rd,Katonah,NY,10536,41.247934,-73.664363
77,Brooklynn,Harmon,(716) 595-3227,8084 Glasgow Rd,Cassadega,NY,14718,42.353861,-79.329558
78,Raquel,Hodges,(585) 398-8125,809 County Road ,Victor,NY,14564,43.011745,-77.398806
79,Jerimiah,Gardner,(585) 787-9127,809 Houston Rd,Webster,NY,14580,43.224204,-77.491353
80,Clarence,Hammond,(720) 746-1619,809 Pierpont Ave,Piermont,NY,10968,41.0491181,-73.918622
81,Rhys,Gill,(518) 427-7887,81 Columbia St,Albany,NY,12210,42.652824,-73.752096
82,Edith,Parrish,(845) 452-7621,81 Glenwood Ave,Poughkeepsie,NY,12603,41.691058,-73.910829
83,Kobe,Mcintosh,(845) 371-1101,81 Heitman Dr,Spring Valley,NY,10977,41.103227,-74.054396
84,Ayden,Waters,(516) 796-2722,81 Kingfisher Rd,Levittown,NY,11756,40.738939,-73.52826
85,Francis,Rogers,(631) 427-7728,81 Knollwood Ave,Huntington,NY,11743,40.864905,-73.426107
86,Jaden,Landry,(716) 496-4038,12839 39th Rte,Chaffee,NY,14030,43.527396,-73.462786
87,Giancarlo,Campos,(518) 885-5717,1284 Saratoga Rd,Ballston Spa,NY,12020,42.968594,-73.862847
88,Eduardo,Contreras,(716) 285-8987,1285 Saunders Sett Rd,Niagara Falls,NY,14305,43.122963,-79.029274
89,Gabriela,Davidson,(716) 267-3195,1286 Mee Rd,Falconer,NY,14733,42.147339,-79.137976
90,Evangeline,Case,(518) 272-9435,1287 2nd Ave,Watervliet,NY,12189,42.723132,-73.703818
91,Tyrone,Ellison,(518) 843-4691,1287 Midline Rd,Amsterdam,NY,12010,42.9730876,-74.1700608
92,Bryce,Bass,(518) 943-9549,1288 Leeds Athens Rd,Athens,NY,12015,42.259381,-73.876897
93,Londyn,Butler,(518) 922-7095,129 Argersinger Rd,Fultonville,NY,12072,42.910969,-74.441917
94,Graham,Becker,(607) 655-1318,129 Baker Rd,Windsor,NY,13865,42.107271,-75.66408
95,Rolando,Fitzgerald,(315) 465-4166,17164 County 90 Rte,Mannsville,NY,13661,43.713443,-76.06232
96,Grant,Hoover,(518) 692-8363,1718 County 113 Rte,Schaghticote,NY,12154,42.900648,-73.585036
97,Mark,Goodwin,(631) 584-6761,172 Cambon Ave,Saint James,NY,11780,40.871152,-73.146032
98,Deacon,Cantu,(845) 221-7940,172 Carpenter Rd,Hopewell Junction,NY,12533,41.57388,-73.77609
99,Tristian,Walsh,(516) 997-4750,172 E Cabot Ln,Westbury,NY,11590,40.7480397,-73.54819
100,Abram,Alexander,(631) 588-3817,172 Lorenzo Cir,Ronkonkoma,NY,11779,40.837123,-73.09367
101,Lesly,Bush,(516) 489-3791,172 Nassau Blvd,Garden City,NY,11530,40.71147,-73.660753
102,Pamela,Espinoza,(716) 201-1520,172 Niagara St ,Lockport,NY,14094,43.169871,-78.70093
103,Bryanna,Newton,(914) 328-4332,172 Warren Ave,White Plains,NY,10603,41.047207,-73.79572
104,Marcelo,Schmitt,(315) 393-4432,319 Mansion Ave,Ogdensburg,NY,13669,44.690246,-75.49992
105,Layton,Valenzuela,(631) 676-2113,319 Singingwood Dr,Holbrook,NY,11741,40.801391,-73.058993
106,Roderick,Rocha,(518) 671-6037,319 Warren St,Hudson,NY,12534,42.252527,-73.790629
107,Camryn,Terrell,(315) 635-1680,3192 Olive Dr,Baldinsville,NY,13027,43.136843,-76.260303
108,Summer,Callahan,(585) 394-4195,3192 Smith Road,Canandaigua,NY,14424,42.875457,-77.228039
109,Pierre,Novak,(716) 665-2524,3194 Falconer Kimball Stand Rd,Falconer,NY,14733,42.138439,-79.211091
110,Kennedi,Fry,(315) 543-2301,32 College Rd,Selden,NY,11784,40.861624,-73.04757
111,Wyatt,Pruitt,(716) 681-4042,277 Ransom Rd,Lancaster ,NY,14086,42.87702,-78.591302
112,Lilly,Jensen,(631) 841-0859,2772 Schliegel Blvd,Amityville,NY,11701,40.708021,-73.413015
113,Tristin,Hardin,(631) 920-0927,278 Fulton Street,West Babylon,NY,11704,40.733578,-73.357321
114,Tanya,Stafford,(716) 484-0771,278 Sampson St,Jamestown,NY,14701,42.0797,-79.247805
115,Paris,Cordova,(607) 589-4857,278 Washburn Rd,Spencer,NY,14883,42.225046,-76.510257
116,Alfonso,Morse,(718) 359-5582,200 Colden St,Flushing,NY,11355,40.750403,-73.822752
117,Maurice,Hooper,(315) 595-6694,4435 Italy Hill Rd,Branchport,NY,14418,42.597957,-77.199267
118,Iris,Wolf,(607) 539-7288,444 Harford Rd,Brooktondale,NY,14817,42.392164,-76.30756
];