Wprowadzenie

Skrypt pobiera dane o polskich miastach, a następnie rysuje miasta na mapie z uwzględnieniem województwa, do jakiego należy miasto oraz liczby jego mieszkańców.
Aby nanieść punkty na mapę pobierane są (korzystając z GoogleMaps) współrzędne geograficzne miasta.

Ale czy miasta przypisane są do województw zgodnie z jakimś algorytmem?
Sprawdźmy to próbując przypisać je na nowo, na podstawie położenia geograficznego. Sprawdzimy dwa popularne algorytmy - k-NN oraz drzewa decyzyjne.

Setup i pobranie danych

setwd("~/RProjects/miasta")

library(rvest)
library(dplyr)
library(ggplot2)
library(RgoogleMaps)


# czy mamy wcześniej zapisany plik?
if(file.exists("lista_miast.Rdata")) {
   # jest plik - wczytujemy plik
   load("lista_miast.Rdata")
} else {
   # nie ma pliku - trzeba wycztać dane online

   # pobranie listy miast z Wikipedii
   lista_miast <- read_html("https://pl.wikipedia.org/wiki/Miasta_w_Polsce_(statystyki)") %>%
      html_node("table") %>%
      html_table()
   
   # porządek w danych
   lista_miast <- lista_miast[,1:5]
   colnames(lista_miast) <- c("Miasto", "Powiat", "Wojewodztwo", "Powierzchnia", "Ludnosc")
   
   # liczby - usunięcie spacji i przecinki na kropki
   lista_miast$Powierzchnia <- gsub("[[:blank:]]", "", lista_miast$Powierzchnia)
   lista_miast$Powierzchnia <- gsub(",", ".", lista_miast$Powierzchnia)
   lista_miast$Powierzchnia <- as.numeric(lista_miast$Powierzchnia)
   lista_miast$Ludnosc <- gsub("[[:blank:]]", "", lista_miast$Ludnosc)
   lista_miast$Ludnosc <- as.numeric(lista_miast$Ludnosc)
   
   # odnośniki
   lista_miast$Powiat <- gsub("\\[a\\]", "", lista_miast$Powiat)
   
   
   # weź z GoogleMaps długość i szerokość geograficzną miast
   GetLongLat <- function(string) {
      t <- getGeoCode(string)
      return(c(t["lon"], t["lat"]))
   }
   lista_miast_cord <- t(sapply(paste(lista_miast$Miasto, lista_miast$Wojewodztwo, "Polska", sep = ", "), GetLongLat))
   
   # złącz współrzędne z listą miast
   lista_miast_cord <- as.data.frame(lista_miast_cord)
   lista_miast$long <- lista_miast_cord$lon
   lista_miast$lat <- lista_miast_cord$lat
   
   # zapisanie listy do pliku
   save(lista_miast, file="lista_miast.Rdata")
}

Mapa miast

# narysuj mapkę
ggplot() +
   geom_point(data=lista_miast, aes(long, lat, color=Wojewodztwo, size=Ludnosc)) +
   theme_minimal() +
   labs(x="E", y="N", color="Wojewodztwo", size="Ludność")

Zmiana województw na podstawie położenia miasta

Metoda k-NN

Kod

# w jakim województwie powinno być miasto na podstawie geolokalizacji
# metoda k-NN
library(class)

lista_miast$Woj_pred_knn <- knn.cv(lista_miast[,6:7], lista_miast[,3], 16)

# czy województwo się zmienia?
lista_miast$Woj_zmiana_knn <- lista_miast$Woj_pred_knn!=lista_miast$Wojewodztwo

Mapa

ggplot() +
   geom_point(data=lista_miast, aes(long, lat, color=Wojewodztwo, size=ifelse(Woj_zmiana_knn, 5, 1))) +
   geom_text(data=lista_miast, aes(long, lat, label=ifelse(Woj_zmiana_knn, Miasto, ""))) +
   theme_minimal() +
   labs(x="E", y="N", color="Wojewodztwo", size=NULL)

Tabela

Zmiana województwa - metoda k-NN
L.p. Miasto Obecne województwo Województwo zmienione
1 Góra dolnośląskie wielkopolskie
2 Międzybórz dolnośląskie wielkopolskie
3 Milicz dolnośląskie wielkopolskie
4 Syców dolnośląskie wielkopolskie
5 Twardogóra dolnośląskie wielkopolskie
6 Wąsosz dolnośląskie wielkopolskie
7 Górzno kujawsko-pomorskie warmińsko-mazurskie
8 Janowiec Wielkopolski kujawsko-pomorskie wielkopolskie
9 Kcynia kujawsko-pomorskie wielkopolskie
10 Nowe kujawsko-pomorskie pomorskie
11 Annopol lubelskie świętokrzyskie
12 Dęblin lubelskie mazowieckie
13 Janów Lubelski lubelskie podkarpackie
14 Ryki lubelskie mazowieckie
15 Stoczek Łukowski lubelskie mazowieckie
16 Tarnogród lubelskie podkarpackie
17 Terespol lubelskie podlaskie
18 Dobiegniew lubuskie zachodniopomorskie
19 Drezdenko lubuskie zachodniopomorskie
20 Kostrzyn nad Odrą lubuskie zachodniopomorskie
21 Strzelce Krajeńskie lubuskie zachodniopomorskie
22 Szlichtyngowa lubuskie dolnośląskie
23 Wschowa lubuskie wielkopolskie
24 Biała Rawska łódzkie mazowieckie
25 Błaszki łódzkie wielkopolskie
26 Drzewica łódzkie mazowieckie
27 Krośniewice łódzkie kujawsko-pomorskie
28 Skierniewice łódzkie mazowieckie
29 Wieruszów łódzkie wielkopolskie
30 Biecz małopolskie podkarpackie
31 Brzeszcze małopolskie śląskie
32 Chełmek małopolskie śląskie
33 Kęty małopolskie śląskie
34 Oświęcim małopolskie śląskie
35 Gostynin mazowieckie kujawsko-pomorskie
36 Iłża mazowieckie świętokrzyskie
37 Lipsko mazowieckie świętokrzyskie
38 Łosice mazowieckie podlaskie
39 Mordy mazowieckie podlaskie
40 Myszyniec mazowieckie warmińsko-mazurskie
41 Przysucha mazowieckie świętokrzyskie
42 Szydłowiec mazowieckie świętokrzyskie
43 Namysłów opolskie dolnośląskie
44 Otmuchów opolskie dolnośląskie
45 Paczków opolskie dolnośląskie
46 Baranów Sandomierski podkarpackie świętokrzyskie
47 Cieszanów podkarpackie lubelskie
48 Lubaczów podkarpackie lubelskie
49 Narol podkarpackie lubelskie
50 Pilzno podkarpackie małopolskie
51 Tarnobrzeg podkarpackie świętokrzyskie
52 Zaklików podkarpackie lubelskie
53 Czarne pomorskie wielkopolskie
54 Debrzno pomorskie wielkopolskie
55 Dzierzgoń pomorskie warmińsko-mazurskie
56 Kępice pomorskie zachodniopomorskie
57 Krynica Morska pomorskie warmińsko-mazurskie
58 Ustka pomorskie zachodniopomorskie
59 Krzanowice śląskie opolskie
60 Krzepice śląskie opolskie
61 Kazimierza Wielka świętokrzyskie małopolskie
62 Połaniec świętokrzyskie podkarpackie
63 Sandomierz świętokrzyskie podkarpackie
64 Skalbmierz świętokrzyskie małopolskie
65 Włoszczowa świętokrzyskie łódzkie
66 Zawichost świętokrzyskie podkarpackie
67 Biała Piska warmińsko-mazurskie podlaskie
68 Ełk warmińsko-mazurskie podlaskie
69 Kisielice warmińsko-mazurskie pomorskie
70 Olecko warmińsko-mazurskie podlaskie
71 Dąbie wielkopolskie łódzkie
72 Kłodawa wielkopolskie kujawsko-pomorskie
73 Przedecz wielkopolskie kujawsko-pomorskie
74 Człopa zachodniopomorskie wielkopolskie
75 Dębno zachodniopomorskie lubuskie
76 Wałcz zachodniopomorskie wielkopolskie

Metoda drzew decyzyjnych

Kod

# w jakim województwie powinno być miasto na podstawie geolokalizacji
# metoda drzew decyzyjnych
library(rpart)

model <- rpart(Wojewodztwo ~ long + lat, lista_miast)
lista_miast$Woj_pred_rpart <- apply(predict(model,lista_miast[,6:7]), 1,
                              function(x) names(x)[which(x==max(x), arr.ind = TRUE)])

# czy województwo się zmienia?
lista_miast$Woj_zmiana_rpart <- lista_miast$Woj_pred_rpart!=lista_miast$Wojewodztwo

Mapa

ggplot() +
   geom_point(data=lista_miast, aes(long, lat, color=Wojewodztwo, size=ifelse(Woj_zmiana_rpart, 5, 1))) +
   geom_text(data=lista_miast, aes(long, lat, label=ifelse(Woj_zmiana_rpart, Miasto, ""))) +
   theme_minimal() +
   labs(x="E", y="N", color="Wojewodztwo", size=NULL)

Tabela

Zmiana województwa - drzewa decyzyjne
L.p. Miasto Obecne województwo Województwo zmienione
1 Bierutów dolnośląskie opolskie
2 Głogów dolnośląskie wielkopolskie
3 Góra dolnośląskie wielkopolskie
4 Międzybórz dolnośląskie opolskie
5 Oleśnica dolnośląskie opolskie
6 Syców dolnośląskie opolskie
7 Twardogóra dolnośląskie opolskie
8 Wąsosz dolnośląskie wielkopolskie
9 Grudziądz kujawsko-pomorskie pomorskie
10 Łasin kujawsko-pomorskie pomorskie
11 Mogilno kujawsko-pomorskie wielkopolskie
12 Nowe kujawsko-pomorskie pomorskie
13 Strzelno kujawsko-pomorskie wielkopolskie
14 Tuchola kujawsko-pomorskie pomorskie
15 Dęblin lubelskie mazowieckie
16 Dobiegniew lubuskie zachodniopomorskie
17 Drezdenko lubuskie zachodniopomorskie
18 Gozdnica lubuskie dolnośląskie
19 Iłowa lubuskie dolnośląskie
20 Sława lubuskie wielkopolskie
21 Strzelce Krajeńskie lubuskie zachodniopomorskie
22 Szlichtyngowa lubuskie wielkopolskie
23 Wschowa lubuskie wielkopolskie
24 Biała Rawska łódzkie mazowieckie
25 Drzewica łódzkie mazowieckie
26 Łowicz łódzkie mazowieckie
27 Opoczno łódzkie mazowieckie
28 Rawa Mazowiecka łódzkie mazowieckie
29 Skierniewice łódzkie mazowieckie
30 Tomaszów Mazowiecki łódzkie mazowieckie
31 Wieruszów łódzkie opolskie
32 Andrychów małopolskie śląskie
33 Brzeszcze małopolskie śląskie
34 Chełmek małopolskie śląskie
35 Chrzanów małopolskie śląskie
36 Kęty małopolskie śląskie
37 Libiąż małopolskie śląskie
38 Miechów małopolskie świętokrzyskie
39 Oświęcim małopolskie śląskie
40 Wolbrom małopolskie świętokrzyskie
41 Gąbin mazowieckie kujawsko-pomorskie
42 Gostynin mazowieckie kujawsko-pomorskie
43 Kosów Lacki mazowieckie podlaskie
44 Łosice mazowieckie podlaskie
45 Mordy mazowieckie podlaskie
46 Płock mazowieckie kujawsko-pomorskie
47 Siedlce mazowieckie podlaskie
48 Sierpc mazowieckie kujawsko-pomorskie
49 Sokołów Podlaski mazowieckie podlaskie
50 Węgrów mazowieckie podlaskie
51 Dobrodzień opolskie śląskie
52 Gorzów Śląski opolskie śląskie
53 Kolonowskie opolskie śląskie
54 Olesno opolskie śląskie
55 Otmuchów opolskie dolnośląskie
56 Paczków opolskie dolnośląskie
57 Praszka opolskie łódzkie
58 Ujazd opolskie śląskie
59 Zawadzkie opolskie śląskie
60 Baranów Sandomierski podkarpackie świętokrzyskie
61 Narol podkarpackie lubelskie
62 Nisko podkarpackie lubelskie
63 Nowa Dęba podkarpackie świętokrzyskie
64 Rudnik nad Sanem podkarpackie lubelskie
65 Stalowa Wola podkarpackie lubelskie
66 Tarnobrzeg podkarpackie świętokrzyskie
67 Ulanów podkarpackie lubelskie
68 Zaklików podkarpackie lubelskie
69 Augustów podlaskie warmińsko-mazurskie
70 Dąbrowa Białostocka podlaskie warmińsko-mazurskie
71 Goniądz podlaskie warmińsko-mazurskie
72 Grajewo podlaskie warmińsko-mazurskie
73 Lipsk podlaskie warmińsko-mazurskie
74 Nowogród podlaskie mazowieckie
75 Rajgród podlaskie warmińsko-mazurskie
76 Sejny podlaskie warmińsko-mazurskie
77 Suchowola podlaskie warmińsko-mazurskie
78 Suwałki podlaskie warmińsko-mazurskie
79 Szczuczyn podlaskie warmińsko-mazurskie
80 Dzierzgoń pomorskie warmińsko-mazurskie
81 Krynica Morska pomorskie warmińsko-mazurskie
82 Koniecpol śląskie świętokrzyskie
83 Krzanowice śląskie opolskie
84 Ogrodzieniec śląskie świętokrzyskie
85 Pilica śląskie świętokrzyskie
86 Racibórz śląskie opolskie
87 Szczekociny śląskie świętokrzyskie
88 Kazimierza Wielka świętokrzyskie małopolskie
89 Końskie świętokrzyskie mazowieckie
90 Skarżysko-Kamienna świętokrzyskie mazowieckie
91 Stąporków świętokrzyskie mazowieckie
92 Wąchock świętokrzyskie mazowieckie
93 Działdowo warmińsko-mazurskie mazowieckie
94 Lidzbark warmińsko-mazurskie kujawsko-pomorskie
95 Nidzica warmińsko-mazurskie mazowieckie
96 Dąbie wielkopolskie łódzkie
97 Dobra wielkopolskie łódzkie
98 Grabów nad Prosną wielkopolskie opolskie
99 Kępno wielkopolskie opolskie
100 Kłodawa wielkopolskie łódzkie
101 Koło wielkopolskie łódzkie
102 Ostrzeszów wielkopolskie opolskie
103 Przedecz wielkopolskie łódzkie
104 Sompolno wielkopolskie łódzkie
105 Turek wielkopolskie łódzkie
106 Człopa zachodniopomorskie wielkopolskie
107 Mirosławiec zachodniopomorskie wielkopolskie
108 Tuczno zachodniopomorskie wielkopolskie
109 Wałcz zachodniopomorskie wielkopolskie
110 Złocieniec zachodniopomorskie wielkopolskie

Zestawienie obu metod

Miasta wskazane w obu metodach (lub)

Mapa

# proponowane zmiany według obu algorytmów (porównanie)
ggplot() +
   geom_point(data=lista_miast, aes(long, lat, color=Wojewodztwo, size=ifelse(Woj_zmiana_knn | Woj_zmiana_rpart, 5, 1))) +
   theme_minimal() +
   labs(x="E", y="N", color="Wojewodztwo", size=NULL)

Tabela

Porównanie proponowanych zmian
L.p. Miasto Obecne województwo Zmiana wg k-NN Zmiana wg drzewa
1 Bierutów dolnośląskie dolnośląskie opolskie
2 Głogów dolnośląskie dolnośląskie wielkopolskie
3 Góra dolnośląskie wielkopolskie wielkopolskie
4 Międzybórz dolnośląskie wielkopolskie opolskie
5 Milicz dolnośląskie wielkopolskie dolnośląskie
6 Oleśnica dolnośląskie dolnośląskie opolskie
7 Syców dolnośląskie wielkopolskie opolskie
8 Twardogóra dolnośląskie wielkopolskie opolskie
9 Wąsosz dolnośląskie wielkopolskie wielkopolskie
10 Górzno kujawsko-pomorskie warmińsko-mazurskie kujawsko-pomorskie
11 Grudziądz kujawsko-pomorskie kujawsko-pomorskie pomorskie
12 Janowiec Wielkopolski kujawsko-pomorskie wielkopolskie kujawsko-pomorskie
13 Kcynia kujawsko-pomorskie wielkopolskie kujawsko-pomorskie
14 Łasin kujawsko-pomorskie kujawsko-pomorskie pomorskie
15 Mogilno kujawsko-pomorskie kujawsko-pomorskie wielkopolskie
16 Nowe kujawsko-pomorskie pomorskie pomorskie
17 Strzelno kujawsko-pomorskie kujawsko-pomorskie wielkopolskie
18 Tuchola kujawsko-pomorskie kujawsko-pomorskie pomorskie
19 Annopol lubelskie świętokrzyskie lubelskie
20 Dęblin lubelskie mazowieckie mazowieckie
21 Janów Lubelski lubelskie podkarpackie lubelskie
22 Ryki lubelskie mazowieckie lubelskie
23 Stoczek Łukowski lubelskie mazowieckie lubelskie
24 Tarnogród lubelskie podkarpackie lubelskie
25 Terespol lubelskie podlaskie lubelskie
26 Dobiegniew lubuskie zachodniopomorskie zachodniopomorskie
27 Drezdenko lubuskie zachodniopomorskie zachodniopomorskie
28 Gozdnica lubuskie lubuskie dolnośląskie
29 Iłowa lubuskie lubuskie dolnośląskie
30 Kostrzyn nad Odrą lubuskie zachodniopomorskie lubuskie
31 Sława lubuskie lubuskie wielkopolskie
32 Strzelce Krajeńskie lubuskie zachodniopomorskie zachodniopomorskie
33 Szlichtyngowa lubuskie dolnośląskie wielkopolskie
34 Wschowa lubuskie wielkopolskie wielkopolskie
35 Biała Rawska łódzkie mazowieckie mazowieckie
36 Błaszki łódzkie wielkopolskie łódzkie
37 Drzewica łódzkie mazowieckie mazowieckie
38 Krośniewice łódzkie kujawsko-pomorskie łódzkie
39 Łowicz łódzkie łódzkie mazowieckie
40 Opoczno łódzkie łódzkie mazowieckie
41 Rawa Mazowiecka łódzkie łódzkie mazowieckie
42 Skierniewice łódzkie mazowieckie mazowieckie
43 Tomaszów Mazowiecki łódzkie łódzkie mazowieckie
44 Wieruszów łódzkie wielkopolskie opolskie
45 Andrychów małopolskie małopolskie śląskie
46 Biecz małopolskie podkarpackie małopolskie
47 Brzeszcze małopolskie śląskie śląskie
48 Chełmek małopolskie śląskie śląskie
49 Chrzanów małopolskie małopolskie śląskie
50 Kęty małopolskie śląskie śląskie
51 Libiąż małopolskie małopolskie śląskie
52 Miechów małopolskie małopolskie świętokrzyskie
53 Oświęcim małopolskie śląskie śląskie
54 Wolbrom małopolskie małopolskie świętokrzyskie
55 Gąbin mazowieckie mazowieckie kujawsko-pomorskie
56 Gostynin mazowieckie kujawsko-pomorskie kujawsko-pomorskie
57 Iłża mazowieckie świętokrzyskie mazowieckie
58 Kosów Lacki mazowieckie mazowieckie podlaskie
59 Lipsko mazowieckie świętokrzyskie mazowieckie
60 Łosice mazowieckie podlaskie podlaskie
61 Mordy mazowieckie podlaskie podlaskie
62 Myszyniec mazowieckie warmińsko-mazurskie mazowieckie
63 Płock mazowieckie mazowieckie kujawsko-pomorskie
64 Przysucha mazowieckie świętokrzyskie mazowieckie
65 Siedlce mazowieckie mazowieckie podlaskie
66 Sierpc mazowieckie mazowieckie kujawsko-pomorskie
67 Sokołów Podlaski mazowieckie mazowieckie podlaskie
68 Szydłowiec mazowieckie świętokrzyskie mazowieckie
69 Węgrów mazowieckie mazowieckie podlaskie
70 Dobrodzień opolskie opolskie śląskie
71 Gorzów Śląski opolskie opolskie śląskie
72 Kolonowskie opolskie opolskie śląskie
73 Namysłów opolskie dolnośląskie opolskie
74 Olesno opolskie opolskie śląskie
75 Otmuchów opolskie dolnośląskie dolnośląskie
76 Paczków opolskie dolnośląskie dolnośląskie
77 Praszka opolskie opolskie łódzkie
78 Ujazd opolskie opolskie śląskie
79 Zawadzkie opolskie opolskie śląskie
80 Baranów Sandomierski podkarpackie świętokrzyskie świętokrzyskie
81 Cieszanów podkarpackie lubelskie podkarpackie
82 Lubaczów podkarpackie lubelskie podkarpackie
83 Narol podkarpackie lubelskie lubelskie
84 Nisko podkarpackie podkarpackie lubelskie
85 Nowa Dęba podkarpackie podkarpackie świętokrzyskie
86 Pilzno podkarpackie małopolskie podkarpackie
87 Rudnik nad Sanem podkarpackie podkarpackie lubelskie
88 Stalowa Wola podkarpackie podkarpackie lubelskie
89 Tarnobrzeg podkarpackie świętokrzyskie świętokrzyskie
90 Ulanów podkarpackie podkarpackie lubelskie
91 Zaklików podkarpackie lubelskie lubelskie
92 Augustów podlaskie podlaskie warmińsko-mazurskie
93 Dąbrowa Białostocka podlaskie podlaskie warmińsko-mazurskie
94 Goniądz podlaskie podlaskie warmińsko-mazurskie
95 Grajewo podlaskie podlaskie warmińsko-mazurskie
96 Lipsk podlaskie podlaskie warmińsko-mazurskie
97 Nowogród podlaskie podlaskie mazowieckie
98 Rajgród podlaskie podlaskie warmińsko-mazurskie
99 Sejny podlaskie podlaskie warmińsko-mazurskie
100 Suchowola podlaskie podlaskie warmińsko-mazurskie
101 Suwałki podlaskie podlaskie warmińsko-mazurskie
102 Szczuczyn podlaskie podlaskie warmińsko-mazurskie
103 Czarne pomorskie wielkopolskie pomorskie
104 Debrzno pomorskie wielkopolskie pomorskie
105 Dzierzgoń pomorskie warmińsko-mazurskie warmińsko-mazurskie
106 Kępice pomorskie zachodniopomorskie pomorskie
107 Krynica Morska pomorskie warmińsko-mazurskie warmińsko-mazurskie
108 Ustka pomorskie zachodniopomorskie pomorskie
109 Koniecpol śląskie śląskie świętokrzyskie
110 Krzanowice śląskie opolskie opolskie
111 Krzepice śląskie opolskie śląskie
112 Ogrodzieniec śląskie śląskie świętokrzyskie
113 Pilica śląskie śląskie świętokrzyskie
114 Racibórz śląskie śląskie opolskie
115 Szczekociny śląskie śląskie świętokrzyskie
116 Kazimierza Wielka świętokrzyskie małopolskie małopolskie
117 Końskie świętokrzyskie świętokrzyskie mazowieckie
118 Połaniec świętokrzyskie podkarpackie świętokrzyskie
119 Sandomierz świętokrzyskie podkarpackie świętokrzyskie
120 Skalbmierz świętokrzyskie małopolskie świętokrzyskie
121 Skarżysko-Kamienna świętokrzyskie świętokrzyskie mazowieckie
122 Stąporków świętokrzyskie świętokrzyskie mazowieckie
123 Wąchock świętokrzyskie świętokrzyskie mazowieckie
124 Włoszczowa świętokrzyskie łódzkie świętokrzyskie
125 Zawichost świętokrzyskie podkarpackie świętokrzyskie
126 Biała Piska warmińsko-mazurskie podlaskie warmińsko-mazurskie
127 Działdowo warmińsko-mazurskie warmińsko-mazurskie mazowieckie
128 Ełk warmińsko-mazurskie podlaskie warmińsko-mazurskie
129 Kisielice warmińsko-mazurskie pomorskie warmińsko-mazurskie
130 Lidzbark warmińsko-mazurskie warmińsko-mazurskie kujawsko-pomorskie
131 Nidzica warmińsko-mazurskie warmińsko-mazurskie mazowieckie
132 Olecko warmińsko-mazurskie podlaskie warmińsko-mazurskie
133 Dąbie wielkopolskie łódzkie łódzkie
134 Dobra wielkopolskie wielkopolskie łódzkie
135 Grabów nad Prosną wielkopolskie wielkopolskie opolskie
136 Kępno wielkopolskie wielkopolskie opolskie
137 Kłodawa wielkopolskie kujawsko-pomorskie łódzkie
138 Koło wielkopolskie wielkopolskie łódzkie
139 Ostrzeszów wielkopolskie wielkopolskie opolskie
140 Przedecz wielkopolskie kujawsko-pomorskie łódzkie
141 Sompolno wielkopolskie wielkopolskie łódzkie
142 Turek wielkopolskie wielkopolskie łódzkie
143 Człopa zachodniopomorskie wielkopolskie wielkopolskie
144 Dębno zachodniopomorskie lubuskie zachodniopomorskie
145 Mirosławiec zachodniopomorskie zachodniopomorskie wielkopolskie
146 Tuczno zachodniopomorskie zachodniopomorskie wielkopolskie
147 Wałcz zachodniopomorskie wielkopolskie wielkopolskie
148 Złocieniec zachodniopomorskie zachodniopomorskie wielkopolskie

Miasta wskazane w obu metodach (oraz)

Mapa

# proponowane takie same zmiany wg obu algorytmów
ggplot() +
   geom_point(data=lista_miast, aes(long, lat, color=Wojewodztwo, size=ifelse(Woj_zmiana_knn & Woj_zmiana_rpart, 5, 1))) +
   theme_minimal() +
   labs(x="E", y="N", color="Wojewodztwo", size=NULL)

Tabela

Proponowane zmiany według obu algorytmów
L.p. Miasto Obecne województwo Proponowana zmiana
1 Góra dolnośląskie wielkopolskie
2 Wąsosz dolnośląskie wielkopolskie
3 Nowe kujawsko-pomorskie pomorskie
4 Dęblin lubelskie mazowieckie
5 Dobiegniew lubuskie zachodniopomorskie
6 Drezdenko lubuskie zachodniopomorskie
7 Strzelce Krajeńskie lubuskie zachodniopomorskie
8 Wschowa lubuskie wielkopolskie
9 Biała Rawska łódzkie mazowieckie
10 Drzewica łódzkie mazowieckie
11 Skierniewice łódzkie mazowieckie
12 Brzeszcze małopolskie śląskie
13 Chełmek małopolskie śląskie
14 Kęty małopolskie śląskie
15 Oświęcim małopolskie śląskie
16 Gostynin mazowieckie kujawsko-pomorskie
17 Łosice mazowieckie podlaskie
18 Mordy mazowieckie podlaskie
19 Otmuchów opolskie dolnośląskie
20 Paczków opolskie dolnośląskie
21 Baranów Sandomierski podkarpackie świętokrzyskie
22 Narol podkarpackie lubelskie
23 Tarnobrzeg podkarpackie świętokrzyskie
24 Zaklików podkarpackie lubelskie
25 Dzierzgoń pomorskie warmińsko-mazurskie
26 Krynica Morska pomorskie warmińsko-mazurskie
27 Krzanowice śląskie opolskie
28 Kazimierza Wielka świętokrzyskie małopolskie
29 Dąbie wielkopolskie łódzkie
30 Człopa zachodniopomorskie wielkopolskie
31 Wałcz zachodniopomorskie wielkopolskie