日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

地理空间数据

發(fā)布時(shí)間:2023/12/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 地理空间数据 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

摘要 (Summary)

In this article, using Data Science and Python, I will show how different Clustering algorithms can be applied to Geospatial data in order to solve a Retail Rationalization business case.

在本文中,我將使用數(shù)據(jù)科學(xué)和Python演示如何將不同的聚類(lèi)算法應(yīng)用于地理空間數(shù)據(jù),以解決零售合理化業(yè)務(wù)案例。

Store Rationalization is the reorganization of a company in order to increase its operating efficiency and decrease costs. As a result of the Covid-19 crisis, several retail businesses from all around the world are closing stores. That is not exclusively a symptom of financial distress, in fact many companies have been focusing their investments on making their business more digital.

商店合理化是為了提高公司的運(yùn)營(yíng)效率和降低成本而對(duì)公司進(jìn)行的重組。 Covid-19危機(jī)的結(jié)果是,來(lái)自世界各地的多家零售企業(yè)都關(guān)閉了商店。 這不僅是財(cái)務(wù)困境的征兆,事實(shí)上,許多公司一直將其投資重點(diǎn)放在使業(yè)務(wù)數(shù)字化上。

Clustering is the task of grouping a set of objects in such a way that observations in the same group are more similar to each other than to those in other groups. It is one of the most popular applications of the Unsupervised Learning (Machine Learning when there is no target variable).

聚類(lèi) 任務(wù)是將一組對(duì)象進(jìn)行分組,以使同一組中的觀(guān)察彼此之間的相似度高于其他組中的觀(guān)察。 它是無(wú)監(jiān)督學(xué)習(xí) (當(dāng)沒(méi)有目標(biāo)變量時(shí)的機(jī)器學(xué)習(xí))最受歡迎的應(yīng)用之一。

Geospatial analysis is the field of Data Science that processes satellite images, GPS coordinates, and street addresses to apply to geographic models.

地理空間分析是數(shù)據(jù)科學(xué)領(lǐng)域,其處理衛(wèi)星圖像,GPS坐標(biāo)和街道地址以應(yīng)用于地理模型。

In this article, I’m going to use clustering with geographic data to solve a retail rationalization problem. I will present some useful Python code that can be easily applied in other similar cases (just copy, paste, run) and walk through every line of code with comments so that you can replicate this example (link to the full code below).

在本文中,我將使用集群與地理數(shù)據(jù)來(lái)解決零售合理化問(wèn)題。 我將介紹一些有用的Python代碼,這些代碼可以輕松地應(yīng)用于其他類(lèi)似情況(只需復(fù)制,粘貼,運(yùn)行),并在每行代碼中添加注釋,以便您可以復(fù)制此示例(鏈接至下面的完整代碼)。

I will use the “Starbucks Stores dataset” that provides the location of all the stores in operation (link below). I shall select a particular geographic area and, in addition to the latitude and longitude provided, I will simulate some business information for each store in the dataset (cost, capacity, staff).

我將使用“ 星巴克商店數(shù)據(jù)集 ”,它提供了所有正在運(yùn)營(yíng)的商店的位置(下面的鏈接)。 我將選擇一個(gè)特定的地理區(qū)域,除了提供的緯度和經(jīng)度之外,我還將模擬數(shù)據(jù)集中每個(gè)商店的一些業(yè)務(wù)信息(成本,容量,員工)。

In particular, I will go through:

特別是,我將經(jīng)歷:

  • Setup: import packages, read geographic data, create business features.

    設(shè)置:導(dǎo)入軟件包,讀取地理數(shù)據(jù),創(chuàng)建業(yè)務(wù)功能。
  • Data Analysis: presentation of the business case on the map with folium and geopy.

    數(shù)據(jù)分析:使用大葉 草和geopy在地圖上呈現(xiàn)業(yè)務(wù)案例。

  • Clustering: Machine Learning (K-Means / Affinity Propagation) with scikit-learn, Deep Learning (Self Organizing Map) with minisom.

    聚類(lèi):具有scikit-learn的機(jī)器學(xué)習(xí)(K均值/親和力傳播),具有minisom的深度學(xué)習(xí)(自組織圖)。

  • Store Rationalization: build a deterministic algorithm to solve the business case.

    商店合理化:構(gòu)建確定性算法來(lái)解決業(yè)務(wù)案例。

建立 (Setup)

First of all, I need to import the following packages.

首先,我需要導(dǎo)入以下軟件包。

## for data
import numpy as np
import pandas as pd## for plotting
import matplotlib.pyplot as plt
import seaborn as sns## for geospatial
import folium
import geopy## for machine learning
from sklearn import preprocessing, cluster
import scipy## for deep learning
import minisom

Then I shall read the data into a pandas Dataframe.

然后,我將數(shù)據(jù)讀入pandas Dataframe。

dtf = pd.read_csv('data_stores.csv')

The original dataset contains over 5,000 cities and 25,000 stores, but for the purpose of this tutorial, I will work with just one city.

原始數(shù)據(jù)集包含5,000多個(gè)城市和25,000個(gè)商店,但是出于本教程的目的,我將僅處理一個(gè)城市。

filter = "Las Vegas"dtf = dtf[dtf["City"]==filter][["City","Street Address","Longitude","Latitude"]].reset_index(drop=True)dtf = dtf.reset_index().rename(columns={"index":"id"})
dtf.head()

In that area, there are 156 stores. In order to proceed with the business case, I’m going to simulate some information for each store:

在那個(gè)地區(qū),有156家商店。 為了繼續(xù)進(jìn)行業(yè)務(wù)案例,我將為每個(gè)商店模擬一些信息

  • Potential: total capacity in terms of staff (e.g. 10 means that the store can have up to 10 employees)

    潛力 :以員工人數(shù)計(jì)算的總?cè)萘?例如10表示商店最多可容納10名員工)

  • Staff: current staff level (e.g. 7 means that the store is currently operating with 7 employees)

    員工 :當(dāng)前員工級(jí)別(例如7表示商店目前有7名員工)

  • Capacity: current left capacity (e.g. 10–7=3, the store can still host 3 employees)

    容量 :當(dāng)前剩余容量(例如10–7 = 3,商店仍可容納3名員工)

  • Cost: annual cost for the company to keep the store operating (“l(fā)ow”, “medium”, “high”)

    成本 :公司維持商店運(yùn)營(yíng)的年度成本(“ 低 ”,“ 中 ”,“ 高 ”)

dtf["Potential"] = np.random.randint(low=3, high=10+1, size=len(dtf))dtf["Staff"] = dtf["Potential"].apply(lambda x: int(np.random.rand()*x)+1)dtf["Capacity"] = dtf["Potential"] - dtf["Staff"]dtf["Cost"] = np.random.choice(["high","medium","low"], size=len(dtf), p=[0.4,0.5,0.1])dtf.head()

Please note that this is just a simulation, these numbers are generated randomly and don’t actually reflect Starbucks (or any other company) business.

請(qǐng)注意,這只是一個(gè)模擬,這些數(shù)字是隨機(jī)生成的,實(shí)際上并不反映星巴克(或任何其他公司)的業(yè)務(wù)。

Now that it’s all set, I will start by analyzing the business case, then build a clustering model and a rationalization algorithm.

現(xiàn)在已經(jīng)準(zhǔn)備就緒,我將首先分析業(yè)務(wù)案例,然后構(gòu)建聚類(lèi)模型和合理化算法。

Let’s get started, shall we?

讓我們開(kāi)始吧,好嗎?

數(shù)據(jù)分析 (Data Analysis)

Let’s pretend we own a retail business and we have to close some stores. We would want to do that maximizing the profit (by minimizing the cost) and without laying off any staff.

假設(shè)我們擁有一家零售企業(yè),而我們不得不關(guān)閉一些商店。 我們希望做到這一點(diǎn),以最大化利潤(rùn)(通過(guò)最小化成本)并且不裁員。

The costs are distributed as follows:

成本分配如下:

x = "Cost"ax = dtf[x].value_counts().sort_values().plot(kind="barh")
totals = []
for i in ax.patches:
totals.append(i.get_width())
total = sum(totals)
for i in ax.patches:
ax.text(i.get_width()+.3, i.get_y()+.20,
str(round((i.get_width()/total)*100, 2))+'%',
fontsize=10, color='black')
ax.grid(axis="x")
plt.suptitle(x, fontsize=20)
plt.show()

Currently, only a small portion of stores are running at full potential (left Capacity = 0), meaning that there are some with really low staff (high left Capacity):

當(dāng)前,只有一小部分商店正以全部潛力運(yùn)營(yíng)(左產(chǎn)能= 0),這意味著有些員工的數(shù)量真的很低(左產(chǎn)能很高):

Let’s visualize those pieces of information on a map. First of all, I need to get the coordinates of the geographic area to start up the map. I shall do that with geopy:

讓我們?cè)诘貓D上可視化這些信息。 首先,我需要獲取地理區(qū)域的坐標(biāo)才能啟動(dòng)地圖。 我將用geopy做到這一點(diǎn) :

city = "Las Vegas"## get location
locator = geopy.geocoders.Nominatim(user_agent="MyCoder")
location = locator.geocode(city)
print(location)## keep latitude and longitude only
location = [location.latitude, location.longitude]
print("[lat, long]:", location)

I am going to create the map with folium, a really convenient package that allows us to plot interactive maps without needing to load a shapefile. Each store shall be identified by a point with size proportional to its current staff and color based on its cost. I’m also going to add a small piece of HTML code to the default map to display the legend.

我將使用folium創(chuàng)建地圖,這是一個(gè)非常方便的程序包,它使我們能夠繪制交互式地圖而無(wú)需加載shapefile 。 每個(gè)商店都應(yīng)通過(guò)一個(gè)點(diǎn)來(lái)標(biāo)識(shí),該點(diǎn)的大小與其當(dāng)前員工人數(shù)成正比,并根據(jù)其成本來(lái)區(qū)分顏色。 我還將在默認(rèn)地圖中添加一小段HTML代碼以顯示圖例。

x, y = "Latitude", "Longitude"
color = "Cost"size = "Staff"popup = "Street Address"
data = dtf.copy()
## create color column

lst_colors=["red","green","orange"]
lst_elements = sorted(list(dtf[color].unique()))
data["color"] = data[color].apply(lambda x:
lst_colors[lst_elements.index(x)])## create size column (scaled)
scaler = preprocessing.MinMaxScaler(feature_range=(3,15))
data["size"] = scaler.fit_transform(
data[size].values.reshape(-1,1)).reshape(-1)
## initialize the map with the starting location
map_ = folium.Map(location=location, tiles="cartodbpositron",
zoom_start=11)## add points
data.apply(lambda row: folium.CircleMarker(
location=[row[x],row[y]], popup=row[popup],
color=row["color"], fill=True,
radius=row["size"]).add_to(map_), axis=1)## add html legendlegend_html = """<div style="position:fixed; bottom:10px; left:10px; border:2px solid black; z-index:9999; font-size:14px;">&nbsp;<b>"""+color+""":</b><br>"""
for i in lst_elements:
legend_html = legend_html+"""&nbsp;<i class="fa fa-circle
fa-1x" style="color:"""+lst_colors[lst_elements.index(i)]+"""">
</i>&nbsp;"""+str(i)+"""<br>"""
legend_html = legend_html+"""</div>"""map_.get_root().html.add_child(folium.Element(legend_html))
## plot the map

map_

Our objective is to close as many high-cost stores (red points) as possible by moving their staff into low-cost stores (green points) with capacity located in the same neighborhood. As a result, we’ll maximize profit (by closing high-cost stores) and efficiency (by having low-cost stores working at full capacity).

我們的目標(biāo)是通過(guò)將員工轉(zhuǎn)移到容量相同的低成本商店(綠點(diǎn))中來(lái)關(guān)閉盡可能多的高成本商店(紅點(diǎn))。 結(jié)果,我們將最大化利潤(rùn)(通過(guò)關(guān)閉高成本商店)和效率(通過(guò)使低成本商店滿(mǎn)負(fù)荷運(yùn)轉(zhuǎn))。

How can we define neighborhoods without selecting distance thresholds and geographic boundaries? Well, the answer is … Clustering.

我們?nèi)绾卧诓贿x擇距離閾值和地理邊界的情況下定義鄰域? 好吧,答案是…群集。

聚類(lèi) (Clustering)

There are several algorithms that can be used, the main ones are listed here. I will try K-Means, Affinity Propagation, Self Organizing Map.

可以使用幾種算法, 此處列出了主要算法。 我將嘗試K-均值,親和傳播,自組織映射。

K-Means aims to partition the observations into a predefined number of clusters (k) in which each point belongs to the cluster with the nearest mean. It starts by randomly selecting k centroids and assigning the points to the closest cluster, then it updates each centroid with the mean of all points in the cluster. This algorithm is convenient when you need the get a precise number of groups (e.g. to keep a minimum number of operating stores), and it’s more appropriate for a small number of even clusters.

K-Means旨在將觀(guān)察結(jié)果劃分為預(yù)定義數(shù)量的聚類(lèi)( k ),其中每個(gè)點(diǎn)均屬于具有最均值的聚類(lèi)。 首先從隨機(jī)選擇k個(gè)質(zhì)心并將點(diǎn)分配給最近的聚類(lèi)開(kāi)始,然后使用聚類(lèi)中所有點(diǎn)的平均值更新每個(gè)質(zhì)心。 當(dāng)您需要獲取精確數(shù)量的組(例如,保持最少數(shù)量的運(yùn)營(yíng)商店)時(shí),此算法非常方便,它更適合少數(shù)偶數(shù)集群。

Here, in order to define the right k, I shall use the Elbow Method: plotting the variance as a function of the number of clusters and picking the k that flats the curve.

在這里,為了定義正確的k,我將使用Elbow方法 :繪制方差作為簇?cái)?shù)的函數(shù),并選擇使曲線(xiàn)平坦的k 。

X = dtf[["Latitude","Longitude"]]max_k = 10## iterations
distortions = []
for i in range(1, max_k+1):
if len(X) >= i:
model = cluster.KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=10, random_state=0)
model.fit(X)
distortions.append(model.inertia_)## best k: the lowest derivative
k = [i*100 for i in np.diff(distortions,2)].index(min([i*100 for i
in np.diff(distortions,2)]))## plot
fig, ax = plt.subplots()
ax.plot(range(1, len(distortions)+1), distortions)
ax.axvline(k, ls='--', color="red", label="k = "+str(k))
ax.set(title='The Elbow Method', xlabel='Number of clusters',
ylabel="Distortion")
ax.legend()
ax.grid(True)
plt.show()

We can try with k = 5 so that the K-Means algorithm will find 5 theoretical centroids. In addition, I will identify the real centroids too (the closest observation to the cluster center).

我們可以嘗試使用k = 5,以便K-Means算法將找到5個(gè)理論質(zhì)心。 此外,我還將識(shí)別真實(shí)的質(zhì)心(最接近聚類(lèi)中心的觀(guān)測(cè)值)。

k = 5
model = cluster.KMeans(n_clusters=k, init='k-means++')
X = dtf[["Latitude","Longitude"]]## clustering
dtf_X = X.copy()
dtf_X["cluster"] = model.fit_predict(X)## find real centroids
closest, distances = scipy.cluster.vq.vq(model.cluster_centers_,
dtf_X.drop("cluster", axis=1).values)
dtf_X["centroids"] = 0
for i in closest:
dtf_X["centroids"].iloc[i] = 1## add clustering info to the original datasetdtf[["cluster","centroids"]] = dtf_X[["cluster","centroids"]]
dtf.sample(5)

I added two columns to the dataset: “cluster” indicating what cluster the observation belongs to, and “centroids” that is 1 if an observation is also the centroid (the closest to the center) and 0 otherwise. Let’s plot it out:

我在數(shù)據(jù)集中添加了兩列:“ cluster ”,指示觀(guān)察值所屬的聚類(lèi);“ centroids ”,如果觀(guān)察值也是質(zhì)心(最靠近中心),則為1;否則為0。 讓我們把它畫(huà)出來(lái):

## plot
fig, ax = plt.subplots()
sns.scatterplot(x="Latitude", y="Longitude", data=dtf,
palette=sns.color_palette("bright",k),
hue='cluster', size="centroids", size_order=[1,0],
legend="brief", ax=ax).set_title('Clustering
(k='+str(k)+')')th_centroids = model.cluster_centers_
ax.scatter(th_centroids[:,0], th_centroids[:,1], s=50, c='black',
marker="x")

Affinity Propagation is a graph-based algorithm that assigns each observation to its nearest exemplar. Basically, all the observations “vote” for which other observations they want to be associated with, which results in a partitioning of the whole dataset into a large number of uneven clusters. It’s quite convenient when you can’t specify the number of clusters, and it’s suited for geospatial data as it works well with non-flat geometry.

相似性傳播是一種基于圖的算法,可將每個(gè)觀(guān)察值分配給最接近的示例。 基本上,所有觀(guān)察都“投票”與它們想要關(guān)聯(lián)的其他觀(guān)察,這導(dǎo)致整個(gè)數(shù)據(jù)集被劃分為大量不均勻的簇。 當(dāng)您無(wú)法指定簇?cái)?shù)時(shí),這非常方便,并且它適用于地理空間數(shù)據(jù),因?yàn)樗m用于非平面幾何。

model = cluster.AffinityPropagation()

Using the same code from before, you can fit the model (finds 12 clusters), and you can use the following code to plot (the difference is that k wasn’t declared at the beginning and there are no theoretical centroids):

使用與之前相同的代碼,可以擬合模型(找到12個(gè)聚類(lèi)),并且可以使用以下代碼進(jìn)行繪圖(不同之處在于,開(kāi)頭沒(méi)有聲明k ,并且沒(méi)有理論上的質(zhì)心):

k = dtf["cluster"].nunique()sns.scatterplot(x="Latitude", y="Longitude", data=dtf,
palette=sns.color_palette("bright",k),
hue='cluster', size="centroids", size_order=[1,0],
legend="brief").set_title('Clustering
(k='+str(k)+')')

Self Organizing Maps (SOMs) are quite different as they use deep learning. In fact, A SOM is a type of artificial neural network that is trained using unsupervised learning to produce a low-dimensional representation of the input space, called a “map” (also referred to as Kohonen layer). Basically, inputs are connected to n x m neurons which form the map, then for every observation is calculated the “winning” neuron (the closest), and neurons are clustered together using the lateral distance. Here, I will try with a 4x4 SOM:

自組織地圖 (SOM)使用深度學(xué)習(xí)的方式完全不同。 實(shí)際上,SOM是一種人工神經(jīng)網(wǎng)絡(luò),使用無(wú)監(jiān)督學(xué)習(xí)對(duì)其進(jìn)行訓(xùn)練,以生成輸入空間的低維表示形式,稱(chēng)為“地圖”(也稱(chēng)為Kohonen層 )。 基本上,將輸入連接到形成地圖的nxm個(gè)神經(jīng)元,然后針對(duì)每個(gè)觀(guān)察值計(jì)算“獲勝”神經(jīng)元(最近的),并使用橫向距離將神經(jīng)元聚在一起。 在這里,我將嘗試使用4x4 SOM:

X = dtf[["Latitude","Longitude"]]
map_shape = (4,4)## scale data
scaler = preprocessing.StandardScaler()
X_preprocessed = scaler.fit_transform(X.values)## clusteringmodel = minisom.MiniSom(x=map_shape[0], y=map_shape[1],
input_len=X.shape[1])
model.train_batch(X_preprocessed, num_iteration=100, verbose=False)## build output dataframe
dtf_X = X.copy()
dtf_X["cluster"] = np.ravel_multi_index(np.array(
[model.winner(x) for x in X_preprocessed]).T, dims=map_shape)## find real centroidscluster_centers = np.array([vec for center in model.get_weights()
for vec in center])closest, distances = scipy.cluster.vq.vq(model.cluster_centers_,
X_preprocessed)
dtf_X["centroids"] = 0
for i in closest:
dtf_X["centroids"].iloc[i] = 1## add clustering info to the original datasetdtf[["cluster","centroids"]] = dtf_X[["cluster","centroids"]]## plotk = dtf["cluster"].nunique()fig, ax = plt.subplots()
sns.scatterplot(x="Latitude", y="Longitude", data=dtf,
palette=sns.color_palette("bright",k),
hue='cluster', size="centroids", size_order=[1,0],
legend="brief", ax=ax).set_title('Clustering
(k='+str(k)+')')th_centroids = scaler.inverse_transform(cluster_centers)
ax.scatter(th_centroids[:,0], th_centroids[:,1], s=50, c='black',
marker="x")

Independently from the algorithm you used to cluster the data, now you have a dataset with two more columns (“cluster”, “centroids”). We can use that to visualize the clusters on the map, and this time I’m going to display the centroids as well using a marker.

獨(dú)立于用于對(duì)數(shù)據(jù)進(jìn)行聚類(lèi)的算法,現(xiàn)在您有了一個(gè)包含兩列(“ 聚類(lèi) ”,“ 質(zhì)心 ”)的數(shù)據(jù)集。 我們可以使用它來(lái)可視化地圖上的聚類(lèi),這一次,我還將使用標(biāo)記顯示質(zhì)心。

x, y = "Latitude", "Longitude"
color = "cluster"size = "Staff"popup = "Street Address"marker = "centroids"
data = dtf.copy()## create color column
lst_elements = sorted(list(dtf[color].unique()))
lst_colors = ['#%06X' % np.random.randint(0, 0xFFFFFF) for i in
range(len(lst_elements))]
data["color"] = data[color].apply(lambda x:
lst_colors[lst_elements.index(x)])## create size column (scaled)
scaler = preprocessing.MinMaxScaler(feature_range=(3,15))
data["size"] = scaler.fit_transform(
data[size].values.reshape(-1,1)).reshape(-1)## initialize the map with the starting locationmap_ = folium.Map(location=location, tiles="cartodbpositron",
zoom_start=11)## add points
data.apply(lambda row: folium.CircleMarker(
location=[row[x],row[y]], popup=row[popup],
color=row["color"], fill=True,
radius=row["size"]).add_to(map_), axis=1)## add html legendlegend_html = """<div style="position:fixed; bottom:10px; left:10px; border:2px solid black; z-index:9999; font-size:14px;">&nbsp;<b>"""+color+""":</b><br>"""
for i in lst_elements:
legend_html = legend_html+"""&nbsp;<i class="fa fa-circle
fa-1x" style="color:"""+lst_colors[lst_elements.index(i)]+"""">
</i>&nbsp;"""+str(i)+"""<br>"""
legend_html = legend_html+"""</div>"""map_.get_root().html.add_child(folium.Element(legend_html))## add centroids marker
lst_elements = sorted(list(dtf[marker].unique()))
data[data[marker]==1].apply(lambda row:
folium.Marker(location=[row[x],row[y]],
popup=row[marker], draggable=False,
icon=folium.Icon(color="black")).add_to(map_), axis=1)## plot the map
map_

Now that we have the clusters, we can start the store rationalization inside each of them.

現(xiàn)在我們有了集群,我們可以在每個(gè)集群內(nèi)部開(kāi)始商店合理化。

商店合理化 (Store Rationalization)

Since the main focus of this article is clustering geospatial data, I will keep this section very simple. Inside each cluster, I will select the potential targets (high-cost stores) and hubs (low-cost stores), and relocate the staff of the targets in the hubs until the latter reach full capacity. When the whole staff of a target is moved, the store can be closed.

由于本文的主要重點(diǎn)是對(duì)地理空間數(shù)據(jù)進(jìn)行聚類(lèi),因此我將使本節(jié)非常簡(jiǎn)單。 在每個(gè)集群內(nèi)部,我將選擇潛在目標(biāo)(高成本商店)和中心(低成本商店),并在中心達(dá)到目標(biāo)容量之前重新定位目標(biāo)人員。 當(dāng)目標(biāo)的整個(gè)人員移動(dòng)時(shí),可以關(guān)閉商店。

Iteration inside a cluster集群內(nèi)部的迭代 dtf_new = pd.DataFrame()for c in sorted(dtf["cluster"].unique()):
dtf_cluster = dtf[dtf["cluster"]==c]

## hubs and targets
lst_hubs = dtf_cluster[dtf_cluster["Cost"]=="low"
].sort_values("Capacity").to_dict("records")
lst_targets = dtf_cluster[dtf_cluster["Cost"]=="high"
].sort_values("Staff").to_dict("records") ## move targets
for target in lst_targets:
for hub in lst_hubs:
### if hub has space
if hub["Capacity"] > 0:
residuals = hub["Capacity"] - target["Staff"] #### case of hub has still capacity: do next target
if residuals >= 0:
hub["Staff"] += target["Staff"]
hub["Capacity"] = hub["Potential"] - hub["Staff"]
target["Capacity"] = target["Potential"]
target["Staff"] = 0
break #### case of hub is full: do next hub
else:
hub["Capacity"] = 0
hub["Staff"] = hub["Potential"]
target["Staff"] = -residuals
target["Capacity"] = target["Potential"] -
target["Staff"] dtf_new = dtf_new.append(pd.DataFrame(lst_hubs)
).append(pd.DataFrame(lst_targets))dtf_new = dtf_new.append(dtf[dtf["Cost"]=="medium"]
).reset_index(drop=True).sort_values(
["cluster","Staff"])
dtf_new.head()

This is a really simple algorithm that can be improved in several ways: for example, by taking the medium-cost stores into the equation and replicate the process when the low-cost ones are all full.

這是一個(gè)非常簡(jiǎn)單的算法,可以通過(guò)幾種方式進(jìn)行改進(jìn):例如,通過(guò)將中等成本的存儲(chǔ)納入等式,并在所有低成本存儲(chǔ)都已滿(mǎn)時(shí)復(fù)制該過(guò)程。

Let’s see how many high-cost stores we closed with this basic process:

讓我們看看通過(guò)此基本流程關(guān)閉了多少家高價(jià)商店:

dtf_new["closed"] = dtf_new["Staff"].apply(lambda x: 1
if x==0 else 0)
print("closed:", dtf_new["closed"].sum())

We managed to close 19 stores, but did we also maintained a homogeneous coverage of the area so that customers won’t need to go to another neighborhood to visit a store? Let’s visualize the aftermath on the map by marking out the closed stores (marker = “closed”):

我們?cè)O(shè)法關(guān)閉了19家商店,但我們是否也對(duì)該地區(qū)進(jìn)行了統(tǒng)一覆蓋,這樣客戶(hù)就不必去另一個(gè)街區(qū)去逛商店了? 讓我們通過(guò)標(biāo)記關(guān)閉的商店( marker =“ closed” )來(lái)可視化地圖上的后果:

結(jié)論 (Conclusion)

This article has been a tutorial about how to use Clustering and Geospatial Analysis for a retail business case. I used a simulated dataset to compare popular Machine Learning and Deep Learning approaches and showed how to plot the output on interactive maps. I also showed a simple deterministic algorithm to provide a solution to the business case.

本文是有關(guān)如何在零售業(yè)務(wù)案例中使用聚類(lèi)和地理空間分析的教程。 我使用模擬數(shù)據(jù)集比較了流行的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法,并展示了如何在交互式地圖上繪制輸出。 我還展示了一種簡(jiǎn)單的確定性算法,可以為業(yè)務(wù)案例提供解決方案。

This article is part of the series Machine Learning with Python, see also:

本文是“ 使用Python進(jìn)行機(jī)器學(xué)習(xí) ”系列的一部分,另請(qǐng)參見(jiàn):

Contacts: LinkedIn | Twitter

聯(lián)系人: 領(lǐng)英 | 推特

翻譯自: https://towardsdatascience.com/clustering-geospatial-data-f0584f0b04ec

總結(jié)

以上是生活随笔為你收集整理的地理空间数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

成人毛片100免费观看 | 国内三级在线 | 一级欧美一级日韩 | 在线天堂中文www视软件 | 亚洲a网 | 亚洲人成人天堂h久久 | 日本特黄特色aaa大片免费 | 最近中文字幕免费av | 天天射天天艹 | 四虎国产视频 | 日韩精品免费在线视频 | 91视频免费看片 | 久久好看 | 精品国产一区二区三区久久久蜜臀 | 国产高清在线永久 | 91亚州| 亚洲精品乱码久久久久久蜜桃动漫 | 日韩欧美在线影院 | 超碰人在线 | 伊香蕉大综综综合久久啪 | 日韩av手机在线观看 | 天天干天天干天天干 | 国产一区二区在线播放视频 | 成人免费在线观看入口 | 日韩在线观看一区二区三区 | 91精品国产乱码在线观看 | 日韩欧美一区二区在线播放 | 久久久精品国产一区二区电影四季 | www.伊人网.com | 亚洲午夜久久久综合37日本 | 久久久久久国产精品 | 免费亚洲视频在线观看 | 欧美91精品国产自产 | 7777精品伊人久久久大香线蕉 | 99久久婷婷国产综合亚洲 | 日韩在线视频网站 | 九九爱免费视频 | 国产婷婷精品 | 国产亚洲情侣一区二区无 | 96av视频 | 欧洲激情在线 | 伊人天天色 | 亚洲高清精品在线 | 日韩精品一区二区三区三炮视频 | 色夜视频 | 992tv在线 | 香蕉在线观看视频 | 日本99热 | www日韩欧美| 国产精品一区久久久久 | 国产正在播放 | 亚洲视频2 | 日韩精品视频免费专区在线播放 | 国精产品永久999 | 人人搞人人搞 | 特级毛片爽www免费版 | 久久综合狠狠综合久久激情 | 黄色avwww | av九九九 | av在线一 | 成年人在线观看免费视频 | 亚洲视频免费在线观看 | 五月天久久激情 | 日日夜夜操操操操 | 在线观看黄网 | 97碰碰视频 | 国产91免费在线 | 狠狠网| 国产黄色资源 | 国产黄色理论片 | 久久视频网 | 日日爱网站 | 婷婷精品国产欧美精品亚洲人人爽 | 亚洲伊人婷婷 | 亚洲国产日本 | 国产亚洲资源 | 亚洲精品视频在线观看免费视频 | 狠狠色网 | 亚洲狠狠操 | 一区二区视频在线观看免费 | 中文字幕乱偷在线 | 97在线精品 | 99久久久久久国产精品 | 久久久综合色 | 伊香蕉大综综综合久久啪 | 色91av| a黄色影院 | 久久精品美女视频网站 | 91av视频免费观看 | 久久久久久片 | 在线亚洲日本 | 999成人国产 | 三级小视频在线观看 | 精品国产中文字幕 | 欧美日韩一区二区三区免费视频 | 日本久久成人中文字幕电影 | 在线中文字幕视频 | 免费久久视频 | 亚洲v欧美v国产v在线观看 | 午夜av电影 | 免费看日韩 | 亚洲精品美女在线观看 | 五月天色丁香 | 黄免费在线观看 | 91在线播 | 色狠狠综合 | 日韩欧美国产视频 | 天天草天天干天天射 | 丁香午夜婷婷 | 四虎永久视频 | 久久久久免费观看 | 91资源在线| 久操视频在线观看 | 永久免费观看视频 | 最近日本mv字幕免费观看 | 国产成人精品一区二区在线 | 久久蜜臀av | 日日干 天天干 | 国产精品永久久久久久久www | 中文字幕精品一区 | 欧美日韩色婷婷 | 丁香高清视频在线看看 | 久久看毛片 | 激情五月激情综合网 | 综合网在线视频 | 中文字幕五区 | 色婷婷骚婷婷 | 男女激情网址 | 久久综合色影院 | 久久夜靖品| 欧美日韩亚洲在线观看 | 国产剧情一区二区在线观看 | 在线观看免费一区 | 久久久久久久av麻豆果冻 | 久久久激情网 | 国产麻豆视频免费观看 | 四虎国产精品成人免费4hu | 99久久精品久久亚洲精品 | 国产精品色在线 | 91香蕉亚洲精品 | av免费看在线 | 国产精品免费av | 成人午夜精品久久久久久久3d | 日韩在线观看视频免费 | 免费精品国产 | 精品毛片一区二区免费看 | 久久视影 | 国产日韩视频在线 | 国产美女精品视频免费观看 | 国产欧美日韩视频 | 欧美在线视频免费 | 一区在线观看 | 狠狠色丁香久久综合网 | 日本少妇高清做爰视频 | 夜添久久精品亚洲国产精品 | 97品白浆高清久久久久久 | 欧美另类色图 | 婷婷色狠狠 | 久久综合狠狠狠色97 | 一区二区三区在线免费 | 丁香婷婷激情国产高清秒播 | 亚洲精品看片 | 日韩中文字幕免费 | 国产69精品久久99的直播节目 | 国产一级黄色免费看 | 狠狠gao | 免费一级日韩欧美性大片 | 免费精品久久久 | 天天做天天射 | 欧美日韩高清一区二区 | 1024手机看片国产 | 免费福利在线观看 | 久久综合免费视频影院 | 99视频精品| 91在线影院 | 久久精品一区二区 | 国产vs久久 | 国产精品乱码在线 | 久久婷亚洲五月一区天天躁 | 91秒拍国产福利一区 | 国产男男gay做爰 | 性色av一区二区三区在线观看 | 久久精品国产99国产 | 成人久久精品 | 一区中文字幕电影 | 成人欧美一区二区三区黑人麻豆 | 久久久久综合精品福利啪啪 | 中文字幕日韩国产 | 日韩视频精品在线 | 久久免费视频2 | 96av视频| 色综合天天爱 | 久久天天躁狠狠躁亚洲综合公司 | 超碰99人人 | 黄p网站在线观看 | 麻豆视频在线免费看 | 91久久国产精品 | 日本精品视频在线观看 | 日本久久精品 | 天天射天 | 国产特级毛片aaaaaa毛片 | 久久国产精品一区二区三区四区 | 国产伦理一区二区三区 | 欧美一级免费 | 欧美小视频在线 | 狠狠狠狠狠色综合 | 91麻豆网 | 成人毛片在线观看视频 | 日韩在线观看 | 亚洲在线黄色 | 久久免费视频网站 | 国产五月天婷婷 | 99欧美视频 | 97超视频 | 99视频这里有精品 | 中文资源在线官网 | 91av成人| 亚洲黄电影 | 国产人成看黄久久久久久久久 | 国产精品无 | 911精品美国片911久久久 | 最新av在线播放 | 日韩在线无 | 手机在线黄色网址 | 97视频亚洲 | 欧美在线视频二区 | 东方av免费在线观看 | 黄色a在线观看 | 亚洲老妇xxxxxx | 一区二区三区精品在线 | 日韩激情中文字幕 | 国产高清日韩欧美 | 久久精品视频在线免费观看 | 亚洲国产成人精品在线 | 国产无限资源在线观看 | 欧美日韩在线视频免费 | 日韩精品视频在线免费观看 | 中文字幕在线观看不卡 | 国产美女黄网站免费 | 欧美激情综合色综合啪啪五月 | 色婷婷成人 | 黄色一区二区在线观看 | 国产午夜在线观看 | 久草在线免费在线观看 | 中文在线a天堂 | 麻豆av电影 | 久久影院精品 | 99在线精品免费视频九九视 | 色婷婷国产精品 | 日本中文一级片 | 夜夜躁日日躁 | 成人国产精品一区二区 | 麻豆成人在线观看 | 亚州精品视频 | 天天操夜操 | 亚洲国内精品在线 | 国产精品 日韩 | 成人av片免费观看app下载 | 免费视频 三区 | 99国内精品久久久久久久 | 日日弄天天弄美女bbbb | 四虎小视频| 精品国内 | 亚洲国产伊人 | 亚洲免费在线看 | 婷婷中文字幕 | 草久在线观看 | 免费黄色激情视频 | 中文字幕中文字幕在线中文字幕三区 | 国产精品久久久久久模特 | 亚洲国内精品在线 | 首页中文字幕 | 国产成人免费网站 | 黄网站免费久久 | 国产一级视频在线观看 | 免费精品视频在线观看 | 精品国产成人在线影院 | 国产天天爽 | 亚洲精品456在线播放乱码 | 国产69精品久久app免费版 | 国产女人免费看a级丨片 | 亚洲一区二区三区在线看 | 国产专区一 | 亚洲精品99 | 久久精品视频免费观看 | 中文伊人 | 97视频中文字幕 | 黄色av网站在线免费观看 | 青青河边草免费 | 三级黄色理论片 | 97韩国电影 | 黄色三级免费观看 | 免费在线色电影 | 最新日韩视频 | 天天综合天天综合 | 97精品国产97久久久久久免费 | 久久精品直播 | 天天操夜夜想 | 不卡在线一区 | 激情五月婷婷综合网 | 奇人奇案qvod | 狠狠色噜噜狠狠狠狠 | 国产精品久久久久四虎 | 久99久精品视频免费观看 | 亚洲成人av一区二区 | 在线观看免费视频你懂的 | av黄色免费在线观看 | 国产亚洲精品久久久久久移动网络 | 热久在线 | 黄色字幕网 | 久久久久久久免费观看 | 国产精品一区二区美女视频免费看 | 国产精品成人国产乱 | 91九色蝌蚪国产 | 国产成本人视频在线观看 | 日韩在线中文字幕视频 | 久久精品2| 五月天久久久 | 日韩中文字幕电影 | 国产午夜亚洲精品 | 丁香花在线观看视频在线 | 国产精品视频全国免费观看 | 天天操天天射天天插 | 欧美一级片免费 | 国产人成一区二区三区影院 | av成人亚洲 | 一二区精品 | 亚一亚二国产专区 | 大胆欧美gogo免费视频一二区 | 欧美日韩99 | 久久字幕 | 久久久久久久免费看 | 国产人成看黄久久久久久久久 | 久久久久草 | 97成人在线观看 | 欧美日韩亚洲国产一区 | 五月天激情综合 | 国产不卡精品 | 国产精品精品久久久久久 | 久久好看 | 99视频在线免费 | 一区二区三区影院 | 黄色不卡av | 在线激情小视频 | 欧美 国产 视频 | 久久天天躁夜夜躁狠狠躁2022 | 国产一区视频在线播放 | 国产1区2区3区精品美女 | 97在线看| 久草视频免费观 | 欧美黄网站 | 欧美一级视频免费 | 日韩av成人在线观看 | 国产精品自在欧美一区 | 欧美一级小视频 | 欧美成人h版在线观看 | 免费看色的网站 | 福利一区在线 | 午夜精品电影 | 国产韩国精品一区二区三区 | 在线色资源 | 久草精品在线观看 | 欧美一区二区精美视频 | 久久人人爽人人爽人人片av软件 | 成人av电影在线播放 | 午夜视频在线瓜伦 | 亚洲国产中文字幕在线观看 | 美女视频黄频大全免费 | 久久久久黄 | 成人在线黄色电影 | 99热精品国产一区二区在线观看 | 毛片一二区 | 一区二区三区在线免费 | 99精品免费久久久久久久久 | 久久色亚洲 | 天天躁日日躁狠狠躁av中文 | 日韩精品免费在线播放 | 香蕉视频91 | 涩五月婷婷 | 久久久久久久久久久免费 | 国产二区视频在线观看 | 亚洲精品一区二区三区高潮 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 天天综合色网 | 手机av看片| 亚州激情视频 | 日批视频在线播放 | 91激情 | 欧美久久综合 | 日本在线观看视频一区 | 亚洲日本va中文字幕 | 毛片888| 91麻豆传媒| 人人爽人人爽人人爽人人爽 | 美女久久久久久久久久久 | 免费久久精品视频 | 91麻豆精品国产 | 婷婷六月天综合 | 国产一级二级在线 | 欧美黄色免费 | 成人网大片| 成人免费观看视频大全 | 激情视频一区二区 | 粉嫩一二三区 | 女人魂免费观看 | 在线播放 亚洲 | 亚洲欧美婷婷六月色综合 | 国产精品激情偷乱一区二区∴ | 婷婷丁香九月 | 久草在线精品观看 | 成人黄色小说在线观看 | 黄色中文字幕 | 亚洲精品在线视频 | 日韩欧美精品在线 | 久久国产精品色av免费看 | 国产精品乱码久久久 | 丁香导航 | 国产视频2| 国产精品视频免费在线观看 | 国产在线精品福利 | 国产成人精品aaa | 欧洲在线免费视频 | 国产美女被啪进深处喷白浆视频 | 国产在线国产 | 国产xxxx | 精品无人国产偷自产在线 | 日日躁天天躁 | 国产黄网在线 | 91亚色视频| 中文字幕电影高清在线观看 | 色综合狠狠干 | 国产精品成人在线 | 97视频在线观看播放 | 国产精品亚洲综合久久 | 久久人91精品久久久久久不卡 | 国产一区在线免费 | 91在线视频在线观看 | 91网页版免费观看 | 丁香六月婷婷综合 | 日韩二区在线播放 | 久久久久久久久网站 | 免费福利视频导航 | 黄色a在线| 免费看成人片 | 激情五月六月婷婷 | 国产玖玖在线 | 日日添夜夜添 | 久久不卡日韩美女 | 97精品国产97久久久久久免费 | 亚洲久草视频 | 欧美亚洲另类在线视频 | 天天天在线综合网 | 欧美一区二区在线免费看 | 8x8x在线观看视频 | 日b黄色片| 日日摸日日碰 | 精品成人在线 | 91入口在线观看 | 午夜婷婷综合 | 亚洲欧洲中文日韩久久av乱码 | 国产精品精品国产婷婷这里av | 成人a免费 | 在线精品观看国产 | 久久99视频 | 天天操天天吃 | 国产高清专区 | 亚洲综合在 | 日韩精品一区二区三区水蜜桃 | 国内精品久久久久 | 黄色一级免费 | 日韩一区二区三区免费视频 | 久久久在线免费观看 | 国产精品18久久久 | 日韩高清网站 | www.成人久久 | 国产一级免费视频 | 久久男人免费视频 | 天天色宗合 | 99这里只有| 日韩av三区| 免费日韩一区二区三区 | 色婷婷综合视频在线观看 | 国产精品一区二区久久精品 | 色婷婷九月 | 色网站黄 | 2019中文字幕网站 | 日韩免 | 亚洲精品综合在线 | 青青视频一区 | 国产又粗又长的视频 | 特级aaa毛片 | av最新资源 | 亚洲视频免费在线 | 日韩激情精品 | 国产一区精品在线观看 | 一区二区三区精品在线视频 | 日韩免费一级a毛片在线播放一级 | 日韩成人在线一区二区 | 国产玖玖在线 | 中文一区二区三区在线观看 | 99久久久久久久 | www.久久91 | 看片的网址 | 五月激情久久 | 中文字幕一二 | 日韩久久电影 | 中文字幕国语官网在线视频 | 狠狠插狠狠干 | 亚洲黑丝少妇 | 91精品国产99久久久久 | 欧美日韩视频网站 | 亚洲免费精彩视频 | 免费人做人爱www的视 | 久久精品一区二区三区中文字幕 | 91在线最新 | 国产精品国产亚洲精品看不卡 | 91中文字幕视频 | 波多野结衣在线视频免费观看 | 国产一区二区三区视频在线 | 国产视频在线观看一区 | 天天做天天爱天天综合网 | 97国产超碰 | 欧美日韩综合在线 | 久久国产精品一区二区 | 久久久午夜视频 | 伊人影院av | 国产美女视频免费观看的网站 | 中文视频在线播放 | 97香蕉久久超级碰碰高清版 | 久久久久久国产精品久久 | www黄| 久久免费高清视频 | 日韩一二三区不卡 | 国产精品一区二区在线免费观看 | 丝袜美腿一区 | 91九色最新地址 | 久久久人人爽 | 亚洲.www| 日女人电影 | 中文字幕成人在线 | 精品国产区在线 | 干狠狠| 色狠狠综合天天综合综合 | 久在线 | 久久精品老司机 | 综合网中文字幕 | 一色av| 国产精品无av码在线观看 | 成在线播放| 99精品视频免费观看视频 | 亚洲乱亚洲乱亚洲 | 亚洲婷婷丁香 | 亚洲黄色三级 | 亚洲国产精品久久久久婷婷884 | 天天干天天想 | 色婷婷成人网 | 日韩性xxxx| 国产精品免费久久久久影院仙踪林 | 久久成人在线 | 久久精品9 | 三级午夜片| 精品人人人 | 日韩电影在线视频 | 少妇bbw撒尿 | 中文字幕一区二区三区乱码在线 | 狠狠操狠狠操 | 免费亚洲视频在线观看 | 日日夜夜噜噜噜 | 麻豆观看 | 91精品国自产在线偷拍蜜桃 | 一区二区精品久久 | 国产精品电影在线 | 欧美性大战 | 美女精品在线观看 | 在线看福利av| 999热视频 | 一级性av| www.天天综合 | 成人免费色 | 在线观看91精品国产网站 | 精品久久99 | 国产精品3 | 一级电影免费在线观看 | 久久精品久久精品久久精品 | 网站免费黄 | 天天射天| av高清不卡 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 欧美日韩久久一区 | 欧美日韩视频一区二区三区 | 色爱区综合激月婷婷 | 亚洲天天| 欧美乱大交| 久久免费视频网 | 777久久久 | 国产一级二级三级视频 | 国语精品免费视频 | 色婷婷久久 | 午夜国产福利在线 | 日日麻批40分钟视频免费观看 | 日韩一级网站 | 一本一本久久a久久精品综合小说 | 久久夜夜爽 | 极品久久久久久久 | 激情欧美一区二区免费视频 | 在线观看黄网站 | 91精品在线麻豆 | 深夜视频久久 | 日韩在线视频观看免费 | 国产视频欧美视频 | av在线播放网址 | 91传媒在线看 | 日日躁天天躁 | 精品在线观看一区二区 | 99精品久久久| 久久婷婷亚洲 | 黄色三级免费看 | 97看片 | 精品免费 | 国产午夜麻豆影院在线观看 | 射射射综合网 | 欧美 亚洲 另类 激情 另类 | 高清一区二区三区av | 9在线观看免费高清完整版在线观看明 | 中文字幕网站视频在线 | 日本在线观看一区二区三区 | 国产黑丝一区二区三区 | 三日本三级少妇三级99 | 亚洲精品免费观看视频 | 成人影视免费看 | 国产精品成人国产乱一区 | 91九色porny在线 | 最近高清中文在线字幕在线观看 | 国产xvideos免费视频播放 | 高清精品久久 | 91成人在线观看喷潮 | 色资源二区在线视频 | 一区二区三区四区五区六区 | 99久热在线精品视频 | 超碰免费av| 东方av免费在线观看 | 午夜少妇 | 亚洲精品国产精品国产 | 2019久久精品 | 国产精品中文字幕在线播放 | 天天干亚洲 | 伊人久久国产精品 | 国产人成在线观看 | 色婷婷88av视频一二三区 | 国产精品每日更新 | 夜夜夜草| 在线免费av观看 | 精品免费久久久久久 | 五月综合久久 | av高清一区二区三区 | 99精品国产一区二区三区麻豆 | 91看片淫黄大片91 | 国产欧美在线一区 | 日韩中文字幕免费电影 | 国产精品18毛片一区二区 | 黄色小说免费在线观看 | 久久亚洲专区 | 一区二区三区在线视频观看58 | 福利av影院| 国产一区二区久久精品 | 日本乱码在线 | 亚洲热视频 | 亚洲第一av在线 | 精品国产乱码久久久久久三级人 | 天天操夜夜操天天射 | 国产资源在线视频 | 免费观看成人av | 免费久久网| 日韩免费在线看 | 精品亚洲国产视频 | 天天操狠狠干 | 在线观看成年人 | 国产在线a免费观看 | zzijzzij亚洲日本少妇熟睡 | 日本久久电影网 | 人人看人人爱 | 国产黄网站在线观看 | 91大神dom调教在线观看 | 天天色综合三 | 可以免费观看的av片 | 久久久免费观看视频 | 亚洲黄a | 亚洲精品国产成人 | 国产伦精品一区二区三区照片91 | 亚洲成人资源 | 精品国产亚洲一区二区麻豆 | 天天爽天天爽夜夜爽 | 在线国产精品视频 | 午夜.dj高清免费观看视频 | 在线观看 国产 | 国产免费人人看 | 日韩免费成人 | 一区二区高清在线 | 99精品在线观看视频 | 成年人黄色免费网站 | 日本护士三级少妇三级999 | 日韩精品在线播放 | 麻豆一级视频 | 91精品黄色 | 四虎影视成人永久免费观看亚洲欧美 | 欧美日韩在线精品一区二区 | 精品日韩在线一区 | 欧美激情奇米色 | 精品不卡视频 | 久草在线观看视频免费 | 日韩天堂在线观看 | 久草在线国产 | 91最新在线观看 | 成人午夜网 | 九九久久成人 | japanesefreesexvideo高潮| 久久久久欧美精品999 | 丰满少妇在线观看网站 | 日韩色区 | 日韩在线视频线视频免费网站 | www亚洲视频| 69久久夜色精品国产69 | 国产v在线播放 | 久久免费视频在线 | 午夜精品久久久久久久久久久久久久 | 婷婷丁香社区 | 欧美视屏一区二区 | 久久国产精品免费一区二区三区 | 色停停五月天 | 超碰在线观看99 | 久草在线免费播放 | 97香蕉久久超级碰碰高清版 | 国产视频每日更新 | av看片在线观看 | 毛片基地黄久久久久久天堂 | 婷婷视频导航 | 日本中文字幕观看 | 黄色成人av在线 | www.在线观看av | 亚洲成av人影院 | 精品国产一区二区三区不卡 | 亚洲人人爱 | 91精品啪在线观看国产线免费 | 在线播放你懂 | 看片网站黄 | 福利区在线观看 | av成人免费 | 91免费观看国产 | 日韩av在线网站 | 免费日韩 精品中文字幕视频在线 | 中日韩免费视频 | 欧美看片| 国产成人免费 | 亚洲午夜久久久久久久久久久 | 欧美a级片免费看 | 久久国产精品第一页 | 国产精品毛片一区视频播不卡 | 亚洲在线视频免费观看 | 青草视频免费观看 | 国产一区成人在线 | 亚洲三区在线 | 国产又粗又长又硬免费视频 | 欧美在线观看视频免费 | 日韩视频二区 | 欧美一区二区伦理片 | 欧美日韩高清在线观看 | 免费碰碰| 久久精品一区二区三区四区 | 日本一区二区免费在线观看 | 午夜在线免费视频 | 在线成人观看 | 国内精品一区二区 | 1000部18岁以下禁看视频 | 成人国产精品久久久春色 | 美女免费视频黄 | 欧美日韩91| 91精品老司机久久一区啪 | 波多野结衣在线播放一区 | 久久国产网 | 国产精品黄 | 免费亚洲视频在线观看 | 久久久一本精品99久久精品66 | 色婷婷狠狠18 | 丁香婷婷自拍 | 美女视频黄,久久 | 免费黄色激情视频 | 色婷婷导航 | 99色视频在线 | 国产亚洲精品免费 | 欧美日韩在线播放 | www.黄色片网站 | 91丨九色丨国产在线观看 | 在线播放精品一区二区三区 | 中文伊人| 五月天久久狠狠 | 日日成人网 | 色天天综合久久久久综合片 | 国产美女精品久久久 | 日日干网址 | 色天天久久 | 丁香激情五月婷婷 | 麻豆一区在线观看 | 国内视频在线 | 97免费视频在线播放 | 亚洲日本在线一区 | 日本精品视频在线观看 | 天天干一干 | 麻豆国产精品视频 | 国产一级a毛片视频爆浆 | a视频在线 | 免费一级黄色 | av亚洲产国偷v产偷v自拍小说 | 国产美女网站在线观看 | 久久综合精品国产一区二区三区 | 福利一区二区在线 | 精品99免费 | 欧洲精品亚洲精品 | 最近中文字幕mv免费高清在线 | 久久免费视频1 | 男女视频久久久 | 国产视频观看 | 亚洲一区黄色 | 93久久精品日日躁夜夜躁欧美 | 久久精品一区八戒影视 | 国产一级在线 | 久草在线免 | 婷婷av网站 | 日本亚洲国产 | 在线成人国产 | 国产日产在线观看 | 欧美性久久久久久 | 就要色综合 | 97精品视频在线 | 日韩专区视频 | 国产91av视频在线观看 | 九九一级片| 182午夜在线观看 | www色综合 | 天天射天天干天天爽 | 黄色免费看片网站 | 久久久毛片 | 久久亚洲福利视频 | 亚洲人精品午夜 | 在线日韩中文字幕 | 天堂激情网 | 天天干天天草 | 99精品国产aⅴ | 91在线网站| 久久久久久久久久久久久久免费看 | 亚洲国产精品成人精品 | 国产成人av综合色 | 中文字幕日本在线 | 国产午夜精品一区二区三区四区 | 三级a视频 | 一区二区三区四区久久 | 人人网av | 午夜影院一级 | 天天射天天干天天插 | 白丝av在线 | 中文字幕 国产视频 | 99c视频高清免费观看 | 超碰av免费 | 特黄一级毛片 | 五月婷婷欧美 | 久久久久北条麻妃免费看 | 日韩av中文字幕在线免费观看 | 最近最新最好看中文视频 | 色婷婷欧美 | 日本精品久久久久 | 狠狠狠色 | 国产精品99免费看 | 国产在线视频一区二区 | 免费看污污视频的网站 | 婷婷午夜激情 | 亚洲一级免费观看 | 国产精品3 | 欧美三级高清 | 国产男女爽爽爽免费视频 | 国产精品亚洲视频 | 色射色| 日韩久久精品一区二区三区 | 色丁香色婷婷 | 欧美色图亚洲图片 | 日日日视频| 国产精品男女视频 | 久久久精品成人 | 日本中文字幕在线免费观看 | 热re99久久精品国产66热 | 中文字幕大全 | 国产精品自产拍 | 欧美成人h版在线观看 | 黄色一级大片在线观看 | 日韩精品久久久免费观看夜色 | 日韩视频一区二区三区 | 天天av在线播放 | 久草在线最新视频 | 中文字幕av日韩 | 久福利| 97国产一区 | 欧美亚洲一区二区在线 | 久久麻豆精品 | 在线一区电影 | 久草在线资源观看 | 91高清在线 | 精品国产大片 | 美女国内精品自产拍在线播放 | 四虎成人免费观看 | 亚洲欧洲精品一区二区精品久久久 | av福利网址导航大全 | 蜜桃av观看| 久久久久久久99 | 天天av天天| 免费视频 你懂的 | 91麻豆精品91久久久久同性 | 欧美精品中文在线免费观看 | 欧美一区二区三区在线 | 91秒拍国产福利一区 | 日本久久影视 | av丝袜制服 | 精品一二三区视频 | 精品国产伦一区二区三区免费 | 久草视频在线新免费 | 玖玖玖精品 | 97香蕉超级碰碰久久免费软件 | 中文字幕视频一区二区 | 波多野结衣在线观看一区二区三区 | 中文字幕在线有码 | 97香蕉久久超级碰碰高清版 | 国产精品成人a免费观看 | 国产精品视频999 | 婷婷激情综合 | 久久人人97超碰com | 久久这里只有精品9 | 欧美性色黄 | 91在线免费公开视频 | 国产黄色一级片 | 六月激情丁香 | 91桃色国产在线播放 | 日韩欧美在线观看一区 | 人人干人人搞 | 久久精品导航 | 99精品乱码国产在线观看 | 国产专区一 | 91麻豆精品国产91久久久久久 | 久久久久 免费视频 | av女优中文字幕在线观看 | 丁香 婷婷 激情 | 国内小视频在线观看 | 狠狠色丁香九九婷婷综合五月 | 亚洲精品无 | 五月天激情综合网 | 精品 一区 在线 | 国产黄色片久久 | 天天干天天天 | 国产精品一区二区av影院萌芽 | 黄色免费网站 | 一区二区不卡视频在线观看 | 日韩最新在线 | 亚洲精品在线观看视频 | 国产a视频免费观看 | 日韩午夜剧场 | 91.精品高清在线观看 | 午夜国产福利在线 | 国产永久免费 | 91av网址 | 干综合网 | 国产精品久久久av久久久 | 成人影音av| 免费观看性生活大片3 | 一区二区三区 中文字幕 | 一区二区不卡在线观看 | 日韩电影一区二区在线 | 中文字幕黄色网 | av高清免费在线 | 特级aaa毛片 | 成人免费在线视频观看 | 日批网站免费观看 | а中文在线天堂 | 天天干夜夜夜操天 | 黄色精品网站 | 日本aaa在线观看 | 亚洲电影久久久 | 深夜成人av | 亚洲精品视频国产 | 99热国产在线中文 | www.狠狠插.com | 久久国产经典视频 | 亚洲精品乱码久久久久 | 成人av免费在线观看 | 黄av免费| 97超碰成人在线 | 草 免费视频 | 色噜噜日韩精品欧美一区二区 | 97在线资源 | 免费国产一区二区 | 日韩资源在线 | 欧美激情视频一二三区 | 婷婷丁香狠狠爱 |