經(jīng)典機(jī)器學(xué)習(xí)系列之【聚類(lèi)分析】

??在《戰(zhàn)國(guó)策·齊策三》中有這么一句話:“物以類(lèi)聚,人以群分”,用于比喻同類(lèi)的東西常聚在一起,志同道合的人相聚成群,反之就分開(kāi)。而所謂的科學(xué),不過(guò)是把我們?nèi)粘5纳罱?jīng)驗(yàn),大自然的規(guī)律用數(shù)學(xué)的語(yǔ)言描述出來(lái)罷了。在機(jī)器學(xué)習(xí)中也有這么一類(lèi)算法,聚類(lèi)算法,借鑒的就是“物以類(lèi)聚,人以群分”的思想。

??想想人在生活中是如何做到“聚類(lèi)”的。我們通常會(huì)跟自己很像的人在一起玩,比如同齡人、有共同愛(ài)好的人,相同的社會(huì)觀、價(jià)值觀等等。但往往自己并不知道自己是屬于哪一類(lèi),也就是說(shuō)你是沒(méi)有標(biāo)簽的,而當(dāng)別人告訴你,或者暗示你,你可能就知道,哦自己屬于這一類(lèi)。在這個(gè)聚類(lèi)問(wèn)題中有一個(gè)很關(guān)鍵的因素就是如何評(píng)價(jià)其他人與你像與不像。

??那在機(jī)器學(xué)習(xí)中聚類(lèi)算法又是如何做到這樣一件事情的呢?之前我們有說(shuō)分類(lèi)問(wèn)題,他的樣本空間由(X,Y)構(gòu)成,X稱(chēng)之為特征,Y為標(biāo)簽,其為離散值,如果是連續(xù)值,則為回歸問(wèn)題。

??當(dāng)我們所能拿到的數(shù)據(jù)只有X,而沒(méi)有Y的時(shí)候,對(duì)數(shù)據(jù)的劃分問(wèn)題我們稱(chēng)之為聚類(lèi)問(wèn)題,本質(zhì)是在揭示數(shù)據(jù)的內(nèi)在性質(zhì)及規(guī)律。聚類(lèi)分析的目標(biāo)是:使得簇內(nèi)數(shù)據(jù)之間具有高的相似性;不同簇?cái)?shù)據(jù)之間具有高的差異性。簇指的是聚類(lèi)分析劃分的類(lèi)別。這里一個(gè)很重要的問(wèn)題就是如何來(lái)度量數(shù)據(jù)間的相似性?

??相似性度量的方法有很多,之前文章有總結(jié)12種常見(jiàn)的數(shù)據(jù)相似性的度量標(biāo)準(zhǔn)經(jīng)典機(jī)器學(xué)習(xí)系列之【相似性度量】。

??基于不同的學(xué)習(xí)策略,聚類(lèi)方法的分類(lèi)一般可以分為以下幾類(lèi):

  1. 劃分方法
  2. 層次方法
  3. 基于密度方法
  4. 基于網(wǎng)格方法
  5. 基于模型方法

??我們依次來(lái)對(duì)其進(jìn)行討論:

劃分方法

??在劃分方法中,對(duì)于給定n個(gè)對(duì)象數(shù)據(jù)集D,以及簇的數(shù)目k(也就是劃分的類(lèi)別數(shù)),劃分算法將對(duì)象組織為k個(gè)劃分(k \leq n)。劃分的基本原則是在簇內(nèi)的相似度高(intra-cluster similarity),簇間相似度低(inter-cluster similarity)。經(jīng)典的方法有:K-means及其變種、K-中心點(diǎn)CLARA、CLARANS等。

K-means

??k-means算法,也被稱(chēng)為k-平均k-均值,是一種廣泛使用的聚類(lèi)算法,或者成為其它聚類(lèi)算法的基礎(chǔ),算法的步驟描述如下所示:

??假定輸入樣本為S=X_{1},X_{2},\cdots X_{m},則算法步驟為:

  1. 選擇初始的k個(gè)類(lèi)別中心\mu_{1}\mu_{2},\cdots,\mu_{k}
  2. 對(duì)于每個(gè)樣本X_{i},將其標(biāo)記為距離類(lèi)別中心最近的類(lèi)別,即:

\text{label}_{i} =\text{argmin}_{1 \leq j \leq k}||X_{i}-\mu_{i}||

  1. 將每個(gè)類(lèi)別中心更新為隸屬該類(lèi)別的所有樣本的均值

\mu_{j}=\frac{1}{|c_{j}|}\sum_{i \in c_{j}}x_{i}

  1. 重復(fù)最后兩步,直到類(lèi)別中心的變化小于某閾值。

k-means公式化理解

??記K個(gè)簇中心為\mu_{1},\mu_{2}\cdots,\mu_{k},每個(gè)簇的樣本數(shù)目為N_{1},N_{2},\cdots,N_{k}。使用平方誤差作為目標(biāo)函數(shù):

J(\mu_{1},\mu_{2} \cdots,\mu_{k})=\frac{1}{2}\sum_{j=1}^{K}\sum_{i=1}^{N_{j}}(x_{i}-\mu_{j})^{2}

??按照凸優(yōu)化的思想想取其最小值,求其關(guān)于\mu_{1},\mu_{2},\cdots,\mu_{k}的偏導(dǎo),并令其等于0。有:

\frac{\partial J}{\partial \mu_{j}}=-\sum_{i=1}^{N_{j}}(x_{i}-\mu_{j})=0

??可以推出:

\mu_{j}=\frac{1}{N_{j}}\sum_{i=1}^{N_{j}}x_{i}

??如果度量標(biāo)準(zhǔn)取的不是歐式距離,比如余弦距離,那對(duì)其均方誤差求偏導(dǎo)數(shù)是又可能會(huì)導(dǎo)致其結(jié)果發(fā)生振蕩的。

K-Means變種

K-Mediods聚類(lèi)(K中值距離)

??K-Means將簇中所有點(diǎn)的均值作為新質(zhì)心,若簇中含有異常點(diǎn),將導(dǎo)致均值偏離嚴(yán)重。以一維數(shù)據(jù)為例:

??舉個(gè)例子:數(shù)組【1,2,3,4,100】的均值為22,顯然距離“大多數(shù)”數(shù)據(jù)【1,2,3,4】比較遠(yuǎn),如果改成數(shù)組中位數(shù)3,在該實(shí)例中更為穩(wěn)妥。這種聚類(lèi)方式即\text{k-Mediods}聚類(lèi)(K中值距離)。

??K-Means算法對(duì)于初值的選擇是會(huì)比較敏感的,想想一下極端情況,如果剛好卡在數(shù)各個(gè)數(shù)據(jù)簇中心的某個(gè)死角,完事劃分完了,但不是正確的劃分(相當(dāng)于找到了數(shù)據(jù)的漏洞),因此在實(shí)際過(guò)程中我們往往選擇比較遠(yuǎn)的點(diǎn)作為初值。

??那實(shí)際操作過(guò)程中是如何來(lái)找到這些比較遠(yuǎn)的樣本點(diǎn)呢?一般的做法如下:隨機(jī)選擇一個(gè)樣本X_{1},然后計(jì)算其他樣本與它的距離,然后選擇與他距離最遠(yuǎn)的距離(或則與距離成正比的一個(gè)概率)作為下一個(gè)初始點(diǎn)樣本X_{2},依據(jù)需要?jiǎng)澐殖蓭最?lèi)簇而依次進(jìn)行下去,這個(gè)效果往往會(huì)比隨機(jī)選擇的初始點(diǎn)要好一點(diǎn)點(diǎn),在sklearn里面,這個(gè)選初值的方法就是k-mean++,并且sklearn里面默認(rèn)會(huì)計(jì)算10次,取結(jié)果較好的那一次返回。

??k-means算法會(huì)對(duì)數(shù)據(jù)是混合高斯分布的這樣一種數(shù)據(jù)有比較好的效果。將數(shù)據(jù)旋轉(zhuǎn)之后效果往往不好,對(duì)于方差不相等的數(shù)據(jù)效果也不會(huì)很好

二分k-means

??為了改進(jìn)K-means算法,我們還有別的思路,比如二分k-means。

??如果k-means聚類(lèi)完成之后,發(fā)現(xiàn)某兩類(lèi)的均值很接近,方差又很小,那么這兩類(lèi)其實(shí)是可以歸為同一簇,如果劃分類(lèi)別數(shù)不變的話,其它的簇就得拆開(kāi)來(lái)一簇(方差大的那一簇)??梢钥醋魇怯贸跏嫉膋-means做基本的劃分之后,再來(lái)優(yōu)化這個(gè)聚類(lèi)的過(guò)程。

Mini-batch k-Means算法

??如果我們不是對(duì)所有樣本求均值,而是對(duì)其中一個(gè)batch樣本點(diǎn)求均值的話,能夠使得k-means算法加速(少算了很多樣本點(diǎn))。

k-means算法優(yōu)缺點(diǎn)對(duì)比

優(yōu)點(diǎn)

  1. 是解決聚類(lèi)問(wèn)題的一種經(jīng)典算法,簡(jiǎn)單、快速。它的時(shí)間復(fù)雜度為O(t\cdot n\cdot k),其中t為迭代次數(shù),n為樣本數(shù),k為所需劃分簇的數(shù)目。
  2. 對(duì)處理大數(shù)據(jù)集,該算法保持可伸縮性和高效性。
  3. 當(dāng)簇近似為高斯分布時(shí),它的效果較好。

缺點(diǎn)

  1. 在簇的平均值可被定義的情況下才能使用,可能不適用于某些應(yīng)用。
  2. 必須實(shí)現(xiàn)給出k(要生成的簇的數(shù)目),而且對(duì)初值敏感,對(duì)于不同的初始值,可能會(huì)導(dǎo)致不同結(jié)果。
  3. 不適用于發(fā)現(xiàn)非凸形狀的簇或者大小差別很大的簇。
  4. 因?yàn)榍笕〉氖蔷担云鋵?duì)噪聲和孤立點(diǎn)數(shù)據(jù)敏感。
    ??
    ??其可作為其它算法的基礎(chǔ),如譜聚類(lèi)。

層次方法

??層次聚類(lèi)也是一種從生活中能夠直觀理解的一種聚類(lèi)思想,比如說(shuō)人,可以分為美國(guó)人、中國(guó)人,再劃分一下中國(guó)人,又可以分為北京人、上海人,這就很明顯的具有層次性的感覺(jué)。

??層次聚類(lèi)方法大體思想是:對(duì)給定數(shù)據(jù)集進(jìn)行層次的分解,直到某種條件滿足為止。會(huì)將數(shù)據(jù)對(duì)象建立一顆聚類(lèi)樹(shù)。依據(jù)建樹(shù)的方法可以分為兩類(lèi):

  • 自底向上的策略,把小的類(lèi)別逐漸合并為大的類(lèi)別,這種方法稱(chēng)為凝聚具體做法:首先將每個(gè)對(duì)象作為一個(gè)簇,然后合并這些原子簇為越來(lái)越大的簇,直到某個(gè)終結(jié)條件被滿足。典型的算法有AGNES算法

  • 自頂向下的策略,把大的類(lèi)別逐漸分裂為小的類(lèi)別,這種方法稱(chēng)為分裂。具體做法:采用自頂向下的策略,首先將所有對(duì)象置于一個(gè)簇中,然后逐漸細(xì)分為越來(lái)越小的簇,直到達(dá)到了某個(gè)終結(jié)條件。典型算法有DIANA算法。

??在AGNES算法方法中,我們需要去衡量簇間距離的度量方法,看看這兩個(gè)簇是否能合并。定義簇間距離度量的方法主要有以下四種:

  1. 最小距離:兩個(gè)集合中最近兩個(gè)樣本的距離(最近鄰聚類(lèi)算法)。這種方法在簇跟簇之間合并的時(shí)候容易形成鏈狀結(jié)構(gòu)。

d_{min}(C_{i},C_{j})=min_{p\in C_{i},p^{'}\in C_{j}}|p-p^{'}|

  1. 最大距離:兩個(gè)集合中最遠(yuǎn)的兩個(gè)樣本的距離。這種方法在存在異常值的時(shí)候就不是很穩(wěn)定。

d_{max}(C_{i},C_{j})=max_{p\in C_{i},p^{'}\in C_{j}}|p-p^{'}|

  1. 平均距離:兩個(gè)集合樣本間兩兩距離的平均值。

$$
d_{avg}(C_{i},C_{j})=\frac{1}{n_{i}n_{j}}\sum_{p\in C,p^{'}\in C_{j}}|p-p^{'}|

$$

??n_{i}是簇C_{i}中對(duì)象個(gè)數(shù),n_{j}是簇C_{j}中對(duì)象個(gè)數(shù)。

  1. 均值距離

d_{mean}(C_{i},C_{j})=|m_{i}-m_{j}|

??m_{i}是簇C_{i}的均值。

  1. 方差:使得簇內(nèi)距離平方和最小,簇間平方和最大。

??在層次聚類(lèi)算法的實(shí)際應(yīng)用中,聚類(lèi)通常終止于某個(gè)預(yù)先設(shè)定的條件,比如簇的數(shù)目達(dá)到某個(gè)預(yù)定的值,或者每個(gè)簇的直徑都在某個(gè)閾值之內(nèi)。

??除此之外呢,還有一些方法,比如BRICH方法、ROCK方法和Chameleon方法。

基于密度方法

??密度聚類(lèi)方法的指導(dǎo)思想是:只要樣本點(diǎn)的密度大于某閾值,則將該樣本添加到最近的簇中。

??這類(lèi)算法能克服基于距離的算法只能發(fā)現(xiàn)“類(lèi)圓形”的聚類(lèi)的缺點(diǎn),可發(fā)現(xiàn)任意形狀的聚類(lèi),且對(duì)噪聲數(shù)據(jù)不敏感。但計(jì)算密度單元的計(jì)算復(fù)雜度大,需要建立空間索引來(lái)降低計(jì)算量。

??基于密度的方法將簇看作數(shù)據(jù)空間中被低密度區(qū)域分割開(kāi)的稠密的對(duì)象區(qū)域,有時(shí)也將這種低密度區(qū)域看作噪聲。

??經(jīng)典的方法有:DBSCAN、OPTICSDENCLUE等。

DBSCAN算法

??DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個(gè)比較有代表性的基于密度的聚類(lèi)算法。與上文說(shuō)的劃分和層次聚類(lèi)方法不同,它將簇定義為密度相連的點(diǎn)的最大集合,能夠把具有足夠高密度的區(qū)域劃分為簇,并可在有“噪聲”的數(shù)據(jù)中發(fā)現(xiàn)任意形狀的聚類(lèi)。

??在開(kāi)始描述這個(gè)算法之前,我們需要定義一些名詞概念:

  • \epsilon領(lǐng)域:給定對(duì)象半徑\epsilon內(nèi)的領(lǐng)域稱(chēng)為該對(duì)象的\epsilon領(lǐng)域。

  • 核心對(duì)象:如果對(duì)象的\epsilon領(lǐng)域至少包含最小數(shù)目Minpts的對(duì)象,則稱(chēng)該對(duì)象為核心對(duì)象。

  • 直接密度可達(dá)(密度直達(dá)):給定一個(gè)對(duì)象集合D,如果pq\epsilon領(lǐng)域內(nèi),而q是一個(gè)核心對(duì)象,則稱(chēng)對(duì)象p從對(duì)象q出發(fā)是直接密度可達(dá)的。換句話說(shuō),如果知道了對(duì)象p從對(duì)象q出發(fā)是直接密度可達(dá)的,那么q就是一個(gè)核心對(duì)象,至于p是不是核心對(duì)象就不清楚了。

  • 密度可達(dá):如果存在一個(gè)對(duì)象鏈p_{1},p_{2},\cdots,p_{n},對(duì)p_{i}\in D,(1 \leq i \leq n),p_{i+1}是從p_{i}關(guān)于\epsilonMinPts直接密度可達(dá)的,則對(duì)象p是從對(duì)象q關(guān)于\epsilonMinpts密度可達(dá)的。密度可達(dá)是直接密度可達(dá)的傳遞閉包,它是非對(duì)稱(chēng)的,只有核心對(duì)象之間互相密度可達(dá)(反過(guò)來(lái)的話,那個(gè)點(diǎn)可能不是核心對(duì)象)。

  • 密度相連:如果對(duì)象集合D存在一個(gè)對(duì)象o,使得對(duì)象pq是從o關(guān)于\epsilonMinpts密度可達(dá)的,那么對(duì)象pq是關(guān)于\epsilonMinpts密度相連的。密度相連則是一種對(duì)稱(chēng)的關(guān)系。

??從下圖可以很容易看出理解上述定義,圖中Minpts=5,紅色的點(diǎn)都是核心對(duì)象,因?yàn)槠?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cepsilon" alt="\epsilon" mathimg="1">領(lǐng)域至少有5個(gè)樣本。黑色的樣本是非核心對(duì)象。所有核心對(duì)象密度直達(dá)的樣本在以紅色核心對(duì)象為中心的超球體內(nèi),如果不在超球體內(nèi),則不能密度直達(dá)。圖中用綠色箭頭連起來(lái)的核心對(duì)象組成了密度可達(dá)的樣本序列。在這些密度可達(dá)的樣本序列的\epsilon領(lǐng)域內(nèi)所有的樣本互相都是密度相連的。

概念描述示意圖
  • :一個(gè)基于密度的簇是最大的密度相連對(duì)象的集合(密度相連的點(diǎn)樣本所形成的集合)。不包含在任何簇中的對(duì)象被認(rèn)為是噪聲。
算法流程:
  1. 檢查數(shù)據(jù)集中的每個(gè)點(diǎn)的\epsilon領(lǐng)域。
  2. 如果點(diǎn)的\epsilon領(lǐng)域包含的點(diǎn)多于Minpt個(gè),則創(chuàng)建一個(gè)以這個(gè)點(diǎn)為核心對(duì)象的新簇;迭代聚集從這些核心對(duì)象直接密度可達(dá)的對(duì)象。
  3. 當(dāng)沒(méi)有新的點(diǎn)可以添加到任何簇時(shí),聚類(lèi)過(guò)程結(jié)束。
算法評(píng)價(jià):
  • 計(jì)算復(fù)雜度為O(n^{2}),在使用空間索引的數(shù)據(jù)庫(kù)中計(jì)算復(fù)雜度可降為O(nlogn)。在參數(shù)\epsilonMinpts設(shè)置恰當(dāng)?shù)那闆r下,DBSCAN算法可有效地找到任意形狀的簇;
  • 但是這個(gè)算法對(duì)參數(shù)非常敏感;
  • 真實(shí)的高維數(shù)據(jù)具有非常傾斜的分布,全局密度參數(shù)不能刻畫(huà)其內(nèi)在的聚類(lèi)結(jié)構(gòu)。

基于網(wǎng)格方法

??它采用一個(gè)多分辨率的網(wǎng)格數(shù)據(jù)結(jié)構(gòu),將空間量化為有限數(shù)目的單元,這些單元形成了網(wǎng)絡(luò)結(jié)構(gòu),所有的聚類(lèi)操作都在網(wǎng)格上進(jìn)行。

??特點(diǎn):直接聚類(lèi)的對(duì)象是空間,而不是數(shù)據(jù)對(duì)象。

??優(yōu)點(diǎn):處理速度快

??經(jīng)典方法STINGWaveCluster等。

基于模型方法

??試圖優(yōu)化給定的數(shù)據(jù)和某些數(shù)學(xué)模型之間的擬合,即假設(shè)數(shù)據(jù)是根據(jù)潛在的概率分布生成的;

??基于模型的方法試圖找到其背后的模型,并使用其概率分布特征進(jìn)行聚類(lèi)。

??經(jīng)典方法:期望最大化方法、概念聚類(lèi)、基于神經(jīng)網(wǎng)絡(luò)等。

評(píng)價(jià)聚類(lèi)算法好壞標(biāo)準(zhǔn)

??當(dāng)我們?cè)O(shè)計(jì)了一個(gè)聚類(lèi)算法,聚類(lèi)算法好壞的評(píng)價(jià)指標(biāo)是什么呢?這個(gè)問(wèn)題稱(chēng)之為聚類(lèi)性能度量,亦稱(chēng)聚類(lèi)“有效性指標(biāo)”(validity index)。若明確了最終將要使用的性能度量,則可直接將其作為聚類(lèi)過(guò)程的優(yōu)化目標(biāo),從而更好地得到符合要求的聚類(lèi)結(jié)果。

??聚類(lèi)性能度量大致有兩類(lèi)。一類(lèi)是將聚類(lèi)結(jié)果與某個(gè)“參考模型”進(jìn)行比較,稱(chēng)為“外部指標(biāo)”(external index);另一類(lèi)是直接考察聚類(lèi)結(jié)果而不利用任何參考模型,稱(chēng)為“內(nèi)部指標(biāo)”(internal index)。

外部指標(biāo)

??將樣本兩兩配對(duì),然后確定4個(gè)值:

  • a為在參考模型中屬于同一個(gè)類(lèi)且在聚類(lèi)結(jié)果中屬于同一個(gè)簇的樣本對(duì)的數(shù)量。
  • b為在參考模型中不在同一個(gè)類(lèi)且在聚類(lèi)結(jié)果中屬于同一個(gè)簇的樣本對(duì)的數(shù)量。
  • c為在參考模型中屬于同一個(gè)類(lèi)且在聚類(lèi)結(jié)果中不在同一個(gè)簇的樣本對(duì)的數(shù)量。
  • d為在參考模型中不在同一個(gè)類(lèi)且在聚類(lèi)結(jié)果中不在同一個(gè)簇的樣本對(duì)的數(shù)量。

??基于上述的這四個(gè)度量值,可以確定以下的聚類(lèi)性能度量外部指標(biāo)

  • Jaccard系數(shù)(Jaccard Coefficient)(JC):

JC=\frac{a}{a+b+c}

  • FM指數(shù)(Fowlkes and Mallows Index)(FMI)

FMI=\sqrt{\frac{a}{a+b}\times \frac{a}{a+c}}

  • Rand指數(shù)(Rand Index)(RI)

RI=\frac{2(a+d)}{m(m-1)}

??其中m為樣本總數(shù)量。

??上述性能度量的結(jié)果均在[0,1]區(qū)間,值越大越好。這個(gè)評(píng)價(jià)標(biāo)準(zhǔn)還有一個(gè)進(jìn)階版本調(diào)整蘭德系數(shù)(ARI(Adjusted Rand Index)),與這個(gè)類(lèi)似的還有一個(gè)調(diào)整互信息(AMI,Adjusted Mutual Information) ,內(nèi)部使用信息熵。就不展開(kāi)說(shuō)了,感興趣的可以查閱相關(guān)資料。

內(nèi)部指標(biāo)

??我們?cè)谏衔?code>層次方法的AGNES算法中有討論過(guò)如何衡量樣本內(nèi)部的距離,這里引用周志華-機(jī)器學(xué)習(xí)書(shū)本上的知識(shí)點(diǎn)對(duì)其進(jìn)行再次概要:

??我們先定義4個(gè)距離:

  • avg( C )為簇內(nèi)樣本平均距離。

  • diam( C )為簇內(nèi)樣本最大距離。

  • dmin(C_{i},C_{j})為簇C_{i},C_{j}之間樣本的最小距離。

  • dcen(C_{i},C_{j})兩個(gè)簇C_{i},C_{j}樣本中心點(diǎn)之間的距離。

??基于上述的這四個(gè)度量值,可以確定以下的聚類(lèi)性能度量內(nèi)部指標(biāo)

  • DB指數(shù)(Davies-Bouldin Index)(DBI)

D B I=\frac{1}{k} \sum_{i=1}^{k} \max _{i \neq j}\left(\frac{\operatorname{avg}\left(C_{i}\right)+\operatorname{avg}\left(C_{j}\right)}{d_{\operatorname{cen}}\left(C_{i}, C_{j}\right)}\right)

  • Dunn指數(shù)(Dunn Index)(DI)

D I=\min _{1 \leq i \leq k}\left\{\min _{i \neq j} \frac{d_{\min }\left(C_{i}, C_{j}\right)}{\max _{1 \leq l \leq k} \operatorname{diam}\left(C_{l}\right)}\right\}

??除了上述這些之外,還有均一性(一個(gè)簇只包含一個(gè)類(lèi)別的樣本)、完整性(同類(lèi)樣本被歸類(lèi)到相同簇)、均一性和完整性通常不能同時(shí)被滿足,因此通常對(duì)其加權(quán),得到一個(gè)衡量標(biāo)準(zhǔn)V-measure。還有輪廓系數(shù)(Silhouette)等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容