日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

使用輪廓分?jǐn)?shù)提升時(shí)間序列聚類的表現(xiàn)

來源: 責(zé)編: 時(shí)間:2023-10-16 17:07:09 254觀看
導(dǎo)讀我們將使用輪廓分?jǐn)?shù)和一些距離指標(biāo)來執(zhí)行時(shí)間序列聚類實(shí)驗(yàn),并且進(jìn)行可視化讓我們看看下面的時(shí)間序列:如果沿著y軸移動(dòng)序列添加隨機(jī)噪聲,并隨機(jī)化這些序列,那么它們幾乎無法分辨,如下圖所示-現(xiàn)在很難將時(shí)間序列列分組為簇:

我們將使用輪廓分?jǐn)?shù)和一些距離指標(biāo)來執(zhí)行時(shí)間序列聚類實(shí)驗(yàn),并且進(jìn)行可視化rfv28資訊網(wǎng)——每日最新資訊28at.com

讓我們看看下面的時(shí)間序列:rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

如果沿著y軸移動(dòng)序列添加隨機(jī)噪聲,并隨機(jī)化這些序列,那么它們幾乎無法分辨,如下圖所示-現(xiàn)在很難將時(shí)間序列列分組為簇:rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

上面的圖表是使用以下腳本創(chuàng)建的:rfv28資訊網(wǎng)——每日最新資訊28at.com

# Import necessary libraries import os import pandas as pd import numpy as np  # Import random module with an alias 'rand' import random as rand from scipy import signal  # Import the matplotlib library for plotting import matplotlib.pyplot as plt  # Generate an array 'x' ranging from 0 to 5*pi with a step of 0.1 x = np.arange(0, 5*np.pi, 0.1)  # Generate square, sawtooth, sin, and cos waves based on 'x' y_square = signal.square(np.pi * x) y_sawtooth = signal.sawtooth(np.pi * x) y_sin = np.sin(x) y_cos = np.cos(x)  # Create a DataFrame 'df_waves' to store the waveforms df_waves = pd.DataFrame([x, y_sawtooth, y_square, y_sin, y_cos]).transpose()  # Rename the columns of the DataFrame for clarity df_waves = df_waves.rename(columns={0: 'time',                                    1: 'sawtooth',                                    2: 'square',                                    3: 'sin',                                    4: 'cos'})  # Plot the original waveforms against time df_waves.plot(x='time', legend=False) plt.show()  # Add noise to the waveforms and plot them again for col in df_waves.columns:    if col != 'time':        for i in range(1, 10):            # Add noise to each waveform based on 'i' and a random value            df_waves['{}_{}'.format(col, i)] = df_waves[col].apply(lambda x: x + i + rand.random() * 0.25 * i)  # Plot the waveforms with added noise against time df_waves.plot(x='time', legend=False) plt.show()

現(xiàn)在我們需要確定聚類的基礎(chǔ)。這里有兩種方法:rfv28資訊網(wǎng)——每日最新資訊28at.com

把接近于一組的波形分組——較低歐幾里得距離的波形將聚在一起。rfv28資訊網(wǎng)——每日最新資訊28at.com

把看起來相似的波形分組——它們有相似的形狀,但歐幾里得距離可能不低。rfv28資訊網(wǎng)——每日最新資訊28at.com

距離度量

一般來說,我們希望根據(jù)形狀對(duì)時(shí)間序列進(jìn)行分組,對(duì)于這樣的聚類-可能希望使用距離度量,如相關(guān)性,這些度量或多或少與波形的線性移位無關(guān)。rfv28資訊網(wǎng)——每日最新資訊28at.com

讓我們看看上面定義的帶有噪聲的波形對(duì)之間的歐幾里得距離和相關(guān)性的熱圖:rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

可以看到歐幾里得距離對(duì)波形進(jìn)行分組是很困難的,因?yàn)槿魏我唤M波形對(duì)的模式都是相似的。例如,除了對(duì)角線元素外,square & cos之間的相關(guān)形狀與square和square之間的相關(guān)形狀非常相似rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

所有的形狀都可以很容易地使用相關(guān)熱圖組合在一起——因?yàn)轭愃频牟ㄐ尉哂蟹浅8叩南嚓P(guān)性(sin-sin對(duì)),而像sin和cos這樣的波形幾乎沒有相關(guān)性。rfv28資訊網(wǎng)——每日最新資訊28at.com

輪廓分?jǐn)?shù)

通過上面熱圖和分析,根據(jù)高相關(guān)性分配組看起來是一個(gè)好主意,但是我們?nèi)绾味x相關(guān)閾值呢?看起來像一個(gè)迭代過程,容易出現(xiàn)不準(zhǔn)確和大量的人工工作。rfv28資訊網(wǎng)——每日最新資訊28at.com

在這種情況下,我們可以使用輪廓分?jǐn)?shù)(Silhouette score),它為執(zhí)行的聚類分配一個(gè)分?jǐn)?shù)。我們的目標(biāo)是使輪廓分?jǐn)?shù)最大化。rfv28資訊網(wǎng)——每日最新資訊28at.com

輪廓分?jǐn)?shù)(Silhouette Score)是一種用于評(píng)估聚類質(zhì)量的指標(biāo),它可以幫助你確定數(shù)據(jù)點(diǎn)是否被正確地分配到它們的簇中。較高的輪廓分?jǐn)?shù)表示簇內(nèi)數(shù)據(jù)點(diǎn)相互之間更加相似,而不同簇之間的數(shù)據(jù)點(diǎn)差異更大,這通常是良好的聚類結(jié)果。rfv28資訊網(wǎng)——每日最新資訊28at.com

輪廓分?jǐn)?shù)的計(jì)算方法如下:rfv28資訊網(wǎng)——每日最新資訊28at.com

  1. 對(duì)于每個(gè)數(shù)據(jù)點(diǎn) i,計(jì)算以下兩個(gè)值:
  • a(i):數(shù)據(jù)點(diǎn) i 到同一簇中所有其他點(diǎn)的平均距離(簇內(nèi)平均距離)。
  • b(i):數(shù)據(jù)點(diǎn) i 到與其不同簇中的所有簇的平均距離,取最小值(最近簇的平均距離)。
  1. 然后,計(jì)算每個(gè)數(shù)據(jù)點(diǎn)的輪廓系數(shù) s(i),它定義為:s(i) = /frac{b(i) - a(i)}{/max/{a(i), b(i)/}}
  2. 最后,計(jì)算整個(gè)數(shù)據(jù)集的輪廓分?jǐn)?shù),它是所有數(shù)據(jù)點(diǎn)的輪廓系數(shù)的平均值:/text{輪廓分?jǐn)?shù)} = /frac{1}{N} /sum_{i=1}^{N} s(i)

其中,N 是數(shù)據(jù)點(diǎn)的總數(shù)。rfv28資訊網(wǎng)——每日最新資訊28at.com

輪廓分?jǐn)?shù)的取值范圍在 -1 到 1 之間,具體含義如下:rfv28資訊網(wǎng)——每日最新資訊28at.com

  • 輪廓分?jǐn)?shù)接近1:表示簇內(nèi)數(shù)據(jù)點(diǎn)相似度高,不同簇之間的差異很大,是一個(gè)好的聚類結(jié)果。
  • 輪廓分?jǐn)?shù)接近0:表示數(shù)據(jù)點(diǎn)在簇內(nèi)的相似度與簇間的差異相當(dāng),可能是重疊的聚類或者不明顯的聚類。
  • 輪廓分?jǐn)?shù)接近-1:表示數(shù)據(jù)點(diǎn)更適合分配到其他簇,不同簇之間的差異相比簇內(nèi)差異更小,通常是一個(gè)糟糕的聚類結(jié)果。

一些重要的知識(shí)點(diǎn):rfv28資訊網(wǎng)——每日最新資訊28at.com

在所有點(diǎn)上的高平均輪廓分?jǐn)?shù)(接近1)表明簇的定義良好且明顯。rfv28資訊網(wǎng)——每日最新資訊28at.com

低或負(fù)的平均輪廓分?jǐn)?shù)(接近-1)表明重疊或形成不良的集群。rfv28資訊網(wǎng)——每日最新資訊28at.com

0左右的分?jǐn)?shù)表示該點(diǎn)位于兩個(gè)簇的邊界上。rfv28資訊網(wǎng)——每日最新資訊28at.com

聚類

現(xiàn)在讓我們嘗試對(duì)時(shí)間序列進(jìn)行分組。我們已經(jīng)知道存在四種不同的波形,因此理想情況下應(yīng)該有四個(gè)簇。rfv28資訊網(wǎng)——每日最新資訊28at.com

歐氏距離

pca = decomposition.PCA(n_compnotallow=2) pca.fit(df_man_dist_euc) df_fc_cleaned_reduced_euc = pd.DataFrame(pca.transform(df_man_dist_euc).transpose(),                                               index = ['PC_1','PC_2'],                                              columns = df_man_dist_euc.transpose().columns)  index = 0 range_n_clusters = [2, 3, 4, 5, 6, 7, 8]  # Iterate over different cluster numbers for n_clusters in range_n_clusters:    # Create a subplot with silhouette plot and cluster visualization    fig, (ax1, ax2) = plt.subplots(1, 2)    fig.set_size_inches(15, 7)     # Set the x and y axis limits for the silhouette plot    ax1.set_xlim([-0.1, 1])    ax1.set_ylim([0, len(df_man_dist_euc) + (n_clusters + 1) * 10])     # Initialize the KMeans clusterer with n_clusters and random seed    clusterer = KMeans(n_clusters=n_clusters, n_init="auto", random_state=10)    cluster_labels = clusterer.fit_predict(df_man_dist_euc)     # Calculate silhouette score for the current cluster configuration    silhouette_avg = silhouette_score(df_man_dist_euc, cluster_labels)    print("For n_clusters =", n_clusters, "The average silhouette_score is :", silhouette_avg)    sil_score_results.loc[index, ['number_of_clusters', 'Euclidean']] = [n_clusters, silhouette_avg]    index += 1         # Calculate silhouette values for each sample    sample_silhouette_values = silhouette_samples(df_man_dist_euc, cluster_labels)         y_lower = 10     # Plot the silhouette plot    for i in range(n_clusters):        # Aggregate silhouette scores for samples in the cluster and sort them        ith_cluster_silhouette_values = sample_silhouette_values[cluster_labels == i]        ith_cluster_silhouette_values.sort()         # Set the y_upper value for the silhouette plot        size_cluster_i = ith_cluster_silhouette_values.shape[0]        y_upper = y_lower + size_cluster_i         color = cm.nipy_spectral(float(i) / n_clusters)         # Fill silhouette plot for the current cluster        ax1.fill_betweenx(np.arange(y_lower, y_upper), 0, ith_cluster_silhouette_values, facecolor=color, edgecolor=color, alpha=0.7)         # Label the silhouette plot with cluster numbers        ax1.text(-0.05, y_lower + 0.5 * size_cluster_i, str(i))        y_lower = y_upper + 10 # Update y_lower for the next plot     # Set labels and title for the silhouette plot    ax1.set_title("The silhouette plot for the various clusters.")    ax1.set_xlabel("The silhouette coefficient values")    ax1.set_ylabel("Cluster label")     # Add vertical line for the average silhouette score    ax1.axvline(x=silhouette_avg, color="red", linestyle="--")    ax1.set_yticks([]) # Clear the yaxis labels / ticks    ax1.set_xticks([-0.1, 0, 0.2, 0.4, 0.6, 0.8, 1])     # Plot the actual clusters    colors = cm.nipy_spectral(cluster_labels.astype(float) / n_clusters)    ax2.scatter(df_fc_cleaned_reduced_euc.transpose().iloc[:, 0], df_fc_cleaned_reduced_euc.transpose().iloc[:, 1],                marker=".", s=30, lw=0, alpha=0.7, c=colors, edgecolor="k")     # Label the clusters and cluster centers    centers = clusterer.cluster_centers_    ax2.scatter(centers[:, 0], centers[:, 1], marker="o", c="white", alpha=1, s=200, edgecolor="k")     for i, c in enumerate(centers):        ax2.scatter(c[0], c[1], marker="$%d$" % i, alpha=1, s=50, edgecolor="k")     # Set labels and title for the cluster visualization    ax2.set_title("The visualization of the clustered data.")    ax2.set_xlabel("Feature space for the 1st feature")    ax2.set_ylabel("Feature space for the 2nd feature")     # Set the super title for the whole plot    plt.suptitle("Silhouette analysis for KMeans clustering on sample data with n_clusters = %d" % n_clusters,                  fnotallow=14, fnotallow="bold")  plt.savefig('sil_score_eucl.png') plt.show()

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

可以看到無論分成多少簇,數(shù)據(jù)都是混合的,并不能為任何數(shù)量的簇提供良好的輪廓分?jǐn)?shù)。這與我們基于歐幾里得距離熱圖的初步評(píng)估的預(yù)期一致rfv28資訊網(wǎng)——每日最新資訊28at.com

相關(guān)性

pca = decomposition.PCA(n_compnotallow=2) pca.fit(df_man_dist_corr) df_fc_cleaned_reduced_corr = pd.DataFrame(pca.transform(df_man_dist_corr).transpose(),                                               index = ['PC_1','PC_2'],                                              columns = df_man_dist_corr.transpose().columns)  index=0 range_n_clusters = [2,3,4,5,6,7,8] for n_clusters in range_n_clusters:    # Create a subplot with 1 row and 2 columns    fig, (ax1, ax2) = plt.subplots(1, 2)    fig.set_size_inches(15, 7)     # The 1st subplot is the silhouette plot    # The silhouette coefficient can range from -1, 1 but in this example all    # lie within [-0.1, 1]    ax1.set_xlim([-0.1, 1])    # The (n_clusters+1)*10 is for inserting blank space between silhouette    # plots of individual clusters, to demarcate them clearly.    ax1.set_ylim([0, len(df_man_dist_corr) + (n_clusters + 1) * 10])     # Initialize the clusterer with n_clusters value and a random generator    # seed of 10 for reproducibility.    clusterer = KMeans(n_clusters=n_clusters, n_init="auto", random_state=10)    cluster_labels = clusterer.fit_predict(df_man_dist_corr)     # The silhouette_score gives the average value for all the samples.    # This gives a perspective into the density and separation of the formed    # clusters    silhouette_avg = silhouette_score(df_man_dist_corr, cluster_labels)    print(        "For n_clusters =",        n_clusters,        "The average silhouette_score is :",        silhouette_avg,    )    sil_score_results.loc[index,['number_of_clusters','corrlidean']] = [n_clusters,silhouette_avg]    index=index+1         sample_silhouette_values = silhouette_samples(df_man_dist_corr, cluster_labels)         y_lower = 10    for i in range(n_clusters):        # Aggregate the silhouette scores for samples belonging to        # cluster i, and sort them        ith_cluster_silhouette_values = sample_silhouette_values[cluster_labels == i]         ith_cluster_silhouette_values.sort()         size_cluster_i = ith_cluster_silhouette_values.shape[0]        y_upper = y_lower + size_cluster_i         color = cm.nipy_spectral(float(i) / n_clusters)        ax1.fill_betweenx(            np.arange(y_lower, y_upper),            0,            ith_cluster_silhouette_values,            facecolor=color,            edgecolor=color,            alpha=0.7,        )         # Label the silhouette plots with their cluster numbers at the middle        ax1.text(-0.05, y_lower + 0.5 * size_cluster_i, str(i))         # Compute the new y_lower for next plot        y_lower = y_upper + 10 # 10 for the 0 samples     ax1.set_title("The silhouette plot for the various clusters.")    ax1.set_xlabel("The silhouette coefficient values")    ax1.set_ylabel("Cluster label")     # The vertical line for average silhouette score of all the values    ax1.axvline(x=silhouette_avg, color="red", linestyle="--")     ax1.set_yticks([]) # Clear the yaxis labels / ticks    ax1.set_xticks([-0.1, 0, 0.2, 0.4, 0.6, 0.8, 1])     # 2nd Plot showing the actual clusters formed    colors = cm.nipy_spectral(cluster_labels.astype(float) / n_clusters)         ax2.scatter(        df_fc_cleaned_reduced_corr.transpose().iloc[:, 0],         df_fc_cleaned_reduced_corr.transpose().iloc[:, 1], marker=".", s=30, lw=0, alpha=0.7, c=colors, edgecolor="k"    )      #     for i in range(len(df_fc_cleaned_cleaned_reduced.transpose().iloc[:, 0])): #                         ax2.annotate(list(df_fc_cleaned_cleaned_reduced.transpose().index)[i],  #                                     (df_fc_cleaned_cleaned_reduced.transpose().iloc[:, 0][i],  #                                       df_fc_cleaned_cleaned_reduced.transpose().iloc[:, 1][i] + 0.2))             # Labeling the clusters    centers = clusterer.cluster_centers_    # Draw white circles at cluster centers    ax2.scatter(        centers[:, 0],        centers[:, 1],        marker="o",        c="white",        alpha=1,        s=200,        edgecolor="k",    )     for i, c in enumerate(centers):        ax2.scatter(c[0], c[1], marker="$%d$" % i, alpha=1, s=50, edgecolor="k")     ax2.set_title("The visualization of the clustered data.")    ax2.set_xlabel("Feature space for the 1st feature")    ax2.set_ylabel("Feature space for the 2nd feature")     plt.suptitle(        "Silhouette analysis for KMeans clustering on sample data with n_clusters = %d"        % n_clusters,        fnotallow=14,        fnotallow="bold",    )  plt.show()

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

rfv28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)選擇的簇?cái)?shù)為4時(shí),我們可以清楚地看到分離的簇,其他結(jié)果通常比歐氏距離要好得多。rfv28資訊網(wǎng)——每日最新資訊28at.com

歐幾里得距離與相關(guān)廓形評(píng)分的比較

rfv28資訊網(wǎng)——每日最新資訊28at.com

輪廓分?jǐn)?shù)表明基于相關(guān)性的距離矩陣在簇?cái)?shù)為4時(shí)效果最好,而在歐氏距離的情況下效果就不那么明顯了結(jié)論rfv28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

在本文中,我們研究了如何使用歐幾里得距離和相關(guān)度量執(zhí)行時(shí)間序列聚類,并觀察了這兩種情況下的結(jié)果如何變化。如果我們?cè)谠u(píng)估聚類時(shí)結(jié)合Silhouette,我們可以使聚類步驟更加客觀,因?yàn)樗峁┝艘环N很好的直觀方式來查看聚類的分離情況。rfv28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-13365-0.html使用輪廓分?jǐn)?shù)提升時(shí)間序列聚類的表現(xiàn)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: C++編程入門!五個(gè)學(xué)習(xí)階段讓你從新手到高手

下一篇: Python開發(fā)利器:掌握PyCharm的精髓

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 一加Ace2 Pro真機(jī)揭曉 鈦空灰配色質(zhì)感拉滿

    終于,在經(jīng)過了幾波預(yù)熱之后,一加Ace2 Pro的外觀真機(jī)圖在網(wǎng)上出現(xiàn)了。還是博主數(shù)碼閑聊站曝光的,這次的外觀設(shè)計(jì)還是延續(xù)了一加11的方案,只是細(xì)節(jié)上有了調(diào)整,例如新加入了鈦空灰
  • Redmi Pad評(píng)測(cè):紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍(lán)牙耳機(jī)到筆記本電腦,紅米不知不覺之間也已經(jīng)形成了自己頗有競(jìng)爭力的產(chǎn)品體系,在中端和次旗艦市場(chǎng)上甚至要比小米新機(jī)的表現(xiàn)來得更好,正所謂“大丈夫生居
  • 6月安卓手機(jī)性能榜:vivo/iQOO霸占旗艦排行榜前三

    2023年上半年已經(jīng)正式過去了,我們也迎來了安兔兔V10版本,在新的驍龍8Gen3和天璣9300發(fā)布之前,性能榜的榜單大體會(huì)以驍龍8Gen2和天璣9200+為主,至于那顆3.36GHz的驍龍8Gen2領(lǐng)先
  • 十個(gè)可以手動(dòng)編寫的 JavaScript 數(shù)組 API

    JavaScript 中有很多API,使用得當(dāng),會(huì)很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對(duì)它們進(jìn)行一次小總結(jié)。現(xiàn)在開始吧。1.forEach()forEach()用于遍歷數(shù)組接收一參
  • 谷歌KDD'23工作:如何提升推薦系統(tǒng)Ranking模型訓(xùn)練穩(wěn)定性

    谷歌在KDD 2023發(fā)表了一篇工作,探索了推薦系統(tǒng)ranking模型的訓(xùn)練穩(wěn)定性問題,分析了造成訓(xùn)練穩(wěn)定性存在問題的潛在原因,以及現(xiàn)有的一些提升模型穩(wěn)定性方法的不足,并提出了一種新
  • 猿輔導(dǎo)與新東方的兩種“歸途”

    作者|卓心月 出品|零態(tài)LT(ID:LingTai_LT)如何成為一家偉大企業(yè)?答案一定是對(duì)“勢(shì)”的把握,這其中最關(guān)鍵的當(dāng)屬對(duì)企業(yè)戰(zhàn)略的制定,且能夠站在未來看現(xiàn)在,即使這其中的
  • 網(wǎng)傳小米汽車開始篩選交付中心 建筑面積不低于3000平方米

    7月7日消息,近日有微博網(wǎng)友@長三角行健者爆料稱,據(jù)經(jīng)銷商集團(tuán)反饋,小米汽車目前已經(jīng)開始了交付中心的篩選工作,要求候選場(chǎng)地至少有120個(gè)車位,建筑不能低
  • 7月4日見!iQOO 11S官宣:“雞血版”驍龍8 Gen2+200W快充加持

    上半年已接近尾聲,截至目前各大品牌旗下的頂級(jí)旗艦都已悉數(shù)亮相,而下半年即將推出的頂級(jí)旗艦已經(jīng)成為了數(shù)碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • 北京:科技教育體驗(yàn)基地開始登記

      北京“科技館之城”科技教育體驗(yàn)基地登記和認(rèn)證工作日前啟動(dòng)。首批北京科技教育體驗(yàn)基地?cái)M于2023年全國科普日期間掛牌,后續(xù)還將開展常態(tài)化登記。  北京科技教育體驗(yàn)基
Top 主站蜘蛛池模板: 元江| 万安县| 湘西| 九龙坡区| 包头市| 龙川县| 万山特区| 平乐县| 兖州市| 普兰店市| 外汇| 凌云县| 旌德县| 林甸县| 耿马| 建水县| 龙游县| 五峰| 平邑县| 波密县| 土默特右旗| 荥阳市| 昌邑市| 恩平市| 镇康县| 阳城县| 潮州市| 隆子县| 汽车| 聂拉木县| 贡觉县| 都匀市| 峡江县| 额尔古纳市| 彩票| 南召县| 台东县| 丹凤县| 鄂托克旗| 英吉沙县| 富蕴县|