最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

因子分析factor analysis(上)

2021-03-29 17:31 作者:python風控模型  | 我要投稿

因子分析基礎概念


因子分析分為兩類

因子分析重要部分是二變量共線性矩陣和因子的共線性

pattern matrix中灰色部分就是變量值高的,灰色變量具有代表性


因子分析算法步驟

因子分析是一種共線性分析方法,用于在大量變量中尋找和描述潛在因子

因子分析確認變量的共線性,把共線性強的變量歸類為一個潛在因子


最早因子分析應用于二戰(zhàn)后IQ測試??茖W家試圖把測試的所有變量綜合為一個因子,IQ得分

下面表格數(shù)據(jù),變量有1-6,其中變量1,3,4有共線性,它們可以融合為一個因子

一般來說,大量變量可以降維到少數(shù)幾個因子。

紫色的變量1,3,4有共線性,可以歸為一個因子

橙色變量2,6有共線性可以歸為一個因子

綜合上述,變量1,3,4歸為一個因子

變量2,6,歸為一個因子

變量5歸為一個因子

這個數(shù)據(jù)集的6個變量降低維度到3個因子。

因子分析步驟:

1.因子分析假設條件

2.找到因子的方法

3.決定因子是否重要

4.檢驗因子里變量的交互性


因子分析假設

假設很重要,如果不符合假設條件,則報告可行性很差

因子分析有6個假設條件

1.沒有異常值

2.足夠樣本量

3.沒有完美多重共線性

4.不需要符合方差齊性

5.變量符合線性

6.數(shù)據(jù)符合間隔性

數(shù)據(jù)沒有異常值,下例中1247943太大,屬于異常值,應該排除

變量數(shù)量要多于因子數(shù)量

數(shù)據(jù)不能完全多重共線性

下表數(shù)據(jù)變量1*2得到變量2,變量1*3得到變量3

homoscedasticity方差齊性

變量不需要滿足方差齊性

變量符合線性,方差分析基于線性前提

方差分析的變量至少是定距變量

分類變量,例如男女,定序變量1,2,3是均勻等差,也不行

(1) Norminal Data 定類變量:變量的不同取值僅僅代表了不同類的事物,這樣的變量叫定類變量。問卷的人口特征中最常使用的問題,而調查被訪對象的“性別”,就是 定類變量。對于定類變量,加減乘除等運算是沒有實際意義的。

(2) ?Ordinal ? Data定序變量:變量的值不僅能夠代表事物的分類,還能代表事物按某種特性的排序,這樣的變量叫定序變量。問卷的人口特征中最常使用的問題“教育程度“,以及態(tài)度量表題目等都是定序變量,定序變量的值之間可以比較大小,或者有強弱順序,但兩個值的差一般沒有什么實際意義。

(3)Interval Data 定距變量:變量的值之間可以比較大小,兩個值的差有實際意義,這樣的變量叫定距變量。有時問卷在調查被訪者的“年齡”和“每月平均收入”,都是定距變量。

(4) Ratio Data 定比變量, 有絕對0點,如質量,高度。定比變量與定距變量在市場調查中一般不加以區(qū)分,它們的差別在于,定距變量取值為“0”時,不表示“沒有”,僅僅是取值為0。定比變量取值為“0”時,則表示“沒有”。


因子分析報告可信度

殘差小于5%,KMO大于0.8,解釋方差大于60%較好。

教育案例因子分析實例

what are the percentages of disciplinary ? placements,Afican-American,Hispanic,white,economically ? disadvantaged,limited English proficiency,at risk ,and special education ?students in Texas independent schooll districts in 2011?

2011年德克薩斯州獨立學區(qū)的學科配置,非裔美國人,西班牙裔,白人,經(jīng)濟地位不利,英語能力有限,處于風險中,以及特殊教育學生的百分比是多少?

因子分析問題

下面八個變量是否存在相關性?學科配置,非裔美國人,西班牙裔,白人,經(jīng)濟地位不利,英語能力有限,處于風險中,以及特殊教育學生比例


因子分析工具選擇:

1.spss

2.python


檢驗五項

1.描述性統(tǒng)計

2.共線矩陣

3.bartlett kmo檢驗

4.方差總量解釋

5. 特征根圖

6.旋轉成分矩陣


KMO檢驗

一般KMO值大于0.8參考意義較大

下圖KMO值=0.54,說明共線性一般,可以勉強進行因子分析。

bartlett顯著性0,拒絕零假設(變量無相關性),得到變量有顯著相關性,有時候,bartlett意義不大


KMO(Kaiser-Meyer-Olkin)檢驗統(tǒng)計量是用于比較變量間簡單相關系數(shù)和偏相關系數(shù)的指標。主要應用于多元統(tǒng)計的因子分析。KMO統(tǒng)計量是取值在0和1之間。

當所有變量間的簡單相關系數(shù)平方和遠遠大于偏相關系數(shù)平方和時,KMO值接近1.KMO值越接近于1,意味著變量間的相關性越強,原有變量越適合作因子分析;當所有變量間的簡單相關系數(shù)平方和接近0時,KMO值接近0.KMO值越接近于0,意味著變量間的相關性越弱,原有變量越不適合作因子分析。

Bartlett's球狀檢驗是一種數(shù)學術語。用于檢驗相關陣中各變量間的相關性,是否為單位陣,即檢驗各個變量是否各自獨立。因子分析前,首先進行KMO檢驗和巴特利球體檢驗。在因子分析中,若拒絕原假設,則說明可以做因子分析,若不拒絕原假設,則說明這些變量可能獨立提供一些信息,不適合做因子分析。

如果變量間彼此獨立,則無法從中提取公因子,也就無法應用因子分析法。Bartlett球形檢驗判斷如果相關陣是單位陣,則各變量獨立因子分析法無效。由SPSS檢驗結果顯示Sig.<0.05(即p值<0.05)時,說明各變量間具有相關性,因子分析有效。


有些情況下,bartlett檢驗意義不大


共線矩陣

西班牙后裔比例與黑人比例中度沖突

西班牙后裔比例與白人比例嚴重沖突

西班牙后裔比例英語水平-0.54相關性,即西班牙后裔英語不好

非洲美國后裔比例與白人30%正相關沖突

英語水平差和經(jīng)濟收入低0.577正相關,與風險因子0.44正相關

scree plot

縱坐標:特征根值

橫坐標:因子數(shù)量


方差解釋

elgenvalue特征根選擇大于1的因子,前三個因子特征根大于1,累計解釋力度得到73.887%

我們的分析產(chǎn)生了3個旋轉后的因子


旋轉的成分矩陣分析

component1:西班牙裔比例,白人比例,黑人比例與經(jīng)濟落后,英語水平低,風險因素比較突出,這些因子可以歸類為ethnicity種族問題

第二個因子:特殊需求(special education占比最大0.812)

第三個因子:黑人因子,占比0.96

因子旋轉(factor rotation)下圖:主成分1的列數(shù)來看,所有值都>0.5, 即主成分1能共同解釋所有變量,而對每個變量x_i只能解釋其中少部分信息,因子含糊不清,需要旋轉。 而且主成分1解釋了:財政收入,固定資產(chǎn)投資,社會消費品零售總額, 這三個變量難以綜合解釋。



旋轉后,因子1能解釋2,3,4,6變量,含義比旋轉前要清晰。
因子1:財政收入,固定資產(chǎn)投資,年末總人口,社會消費品零售總額 -------命名為:經(jīng)濟水平
因子2:人均GDP,居民消費水平--------命名為:消費水平

因子旋轉的目的使因子含義更加清楚,以便對因子命名和解釋。

旋轉方法:正交旋轉和斜交旋轉。

正交旋轉是指坐標軸總是保持垂直90度旋轉,這樣新生成因子可保持不變。

斜交旋轉坐標軸夾角是任意的,生成因子不能保證不相關。

實際中更多應用正交旋轉Varimax法。

旋轉方法:
Varimax
quartimax
equamax
direct oblimin(斜交旋轉)


數(shù)學模型 設原始的p個變量為x1,x2......x_p, 要尋找k個因子(k<p)為f1, f2, .......f_k,因子f_i和原始變量x_i的關系可表示為



載荷 a_ij
含義與主成分類似。 a_ij為第i個變量x_i與第j個因子f_j之間的線性相關系數(shù),反映x_i和f_j之間的相關程度,也稱載荷。

f_i:公因子common factor ?
因子f_i出現(xiàn)在每個原始變量與因子的線性組合中,稱為公因子。

特殊因子:代表公因子以外因素影響。


共同度量:h_i**2
考察x_i的信息能夠被k個公因子所解釋的程度。它是用k個公因子對第i個變量的方差貢獻率來表示的,稱為變量x_i的共同度量(communality)
計算公式如下圖:
共同度量值越大,說明提出的公因子對原始變量的解釋能力越強。

方差貢獻率:
:第j個公因子的方差貢獻率g_j**2
方差貢獻率表示第j個 公因子對變量x_i所提供的方差總和,反應了第j個公因子的相對重要程度。方差貢獻率越大表明該公因子對x_i的貢獻越大。



變量共同度量表,由該表可知,所有變量的共同度量都是在90%以上,因此提取的公因子對原始變量解釋力很強。


因子得分

spss操作:分析步驟---得分---保存為變量
程序自動統(tǒng)計得到結果



因子得分(factor score)

就是每個因子在每個樣本上的具體取值。每個因子的得分實際上由下列因子得分函數(shù)給出
因子得分是各變量的線性組合。



經(jīng)過程序運算,x_i不是原始變量,而是標準化變量

f1=[-0.105,0.18,0.3,0.372,-0.104,0.281]

f2=[0.43,0.171,-0.026,-0.237,0.429,0.022]

beijing=[50467,11171514,3296.4,1581,16770,3275.2]

coefficient=[0.691141,0.308859]

f1_score=[]

f2_score=[]

for i in range(len(f1)):

score1=f1[i]*beijing[i]

score2=f2[i]*beijing[i]

f1_score.append(score1)

f2_score.append(score2)

f1_sum=sum(f1_score)

f2_sum=sum(f2_score)

factor_score=coefficient[0]*f1_sum+coefficient[1]*f2_sum


>>> factor_score
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1985481.5535567512

運算結果和答案不符合,說明 x_i不是原始變量,而是標準化變量


特征根 eigenvalues['a?g?n,v?lju?]

表中初始特征值就是特征根,實際上就是本例中的6個主軸長度。

特征根 eigenvalues
---即主軸或方差,當特征根小于1時,就不再選作主成分了。選擇特征根大于1的值
主成分的累計方差貢獻率達到80%以上的前幾個主成分,都可以選作最后的主成分。

碎石圖scree plot

scree[skri?] 小石子;巖屑堆

A scree plot displays the eigenvalues associated with a component or ? factor in descending order versus the number of the component or factor. ?You can use scree plots in principal components analysis and factor ? analysis to visually assess which components or factors explain most of the variability in the data. 碎石圖用于主成分分析或因子分析

橫軸是因子,縱軸是特征值
觀察第五個因素后,斜率慢慢變緩,前五個因素解釋了大部分原因。



A ?factor analysis was conducted on 12 different characteristics of job ? applicants. This scree plot shows that 5 of those factors explain most ? of the variability because the line starts to straighten after factor 5. ?The remaining factors explain a very small proportion of the ? variability and are likely unimportant.
?
The ideal pattern in a scree plot is a steep curve, followed by a ?bend and then a flat or horizontal line. Retain those components or ?factors in the steep curve before the first point that starts the flat ?line trend. You might have difficulty interpreting a scree plot. Use ?your knowledge of the data and the results from the other approaches of ?selecting components or factors to help decide the number of important ?components or factors.
?
碎石圖中,前三個因子特征根值大于1,可以被篩選


載荷圖Loading Plot

The loading plot is a plot of the relationship ?between the original variables and the subspace dimension. It is used to ?interpret relationships between variables.載荷圖解釋原始變量和主成分關系

橫坐標表示第一主成分與原始變量之間的相關系數(shù);縱軸表示第二主成分與原始變量之間相關系數(shù)。

這樣每個變量對應的主成分載荷就對應坐標系中一個點,比如,人均GDP變量對應點是(0.67,0.725)。這樣6個變量就有6個點。相關系數(shù)的點越遠離坐標軸原點,主成分對原始變量的代表性就越大。

圖中,人均GDP和居民消費水平幾乎重合

主成分分析-降維

主成分分析principal component analysis
通過考察變量相關性,找到幾個主成分(principal component)來代表原來的多個變量。
同時使她們盡量保留原始變量的信息。
這些變量 彼此不相關,數(shù)量遠少于原始變量個數(shù),從而達到數(shù)據(jù)降維目的。

圖中可見兩個變量x1和x2存在相關關系,它們信息有重疊。如果把兩個變量用一個新的變量表示,同時這一新變量可能包含原來的兩個變量的信息,這就是降維過程。
散點圖形成一個橢圓形輪廓,包含一個長軸和一個短軸,稱為主軸。
在橢圓長軸方向,數(shù)據(jù)變化大,攜帶大部分數(shù)據(jù)變化信息。
在橢圓短軸方向,數(shù)據(jù)變化小。攜帶小部分數(shù)據(jù)變化信息。
因此用長軸y1方向就可以代表原來x1和x2兩個變量信息,這樣兩個變量降維到一個變量,達到降維目的。
橢圓中,長短軸相差越大,長軸變量代表性就越好 ,降維越合理。


多維變量情形類似,只不過是一個高維橢圓,無法直接觀察。由于每個變量有一個坐標軸,因此有幾個變量就有幾個主軸。
首先找出橢圓球各個主軸,再用代表大多數(shù)數(shù)據(jù)信息的最長幾個軸作為新變量,這樣降維就完成了。
找出的新變量是原來變量的線性組合,叫做主成分。


三個提取因子方法


實戰(zhàn)

實戰(zhàn)1-尋找美國總統(tǒng)因子

變量包括:年齡,性別,種族等等

性別,種族屬于分類變量,不適合因子分析

學生教學能力分為兩個因子:

量化能力:數(shù)學得分,編程得分,物理得分

口語能力:英語,言語推理得分

sklearn主成分官網(wǎng)

scikit-learn.org/stable

sklearn.decomposition.PCA 中文介紹網(wǎng)址

cnblogs.com/pinard/p/62

1. scikit-learn PCA類介紹

    在scikit-learn中,與PCA相關的類都在sklearn.decomposition包中。最常用的PCA類就是sklearn.decomposition.PCA,我們下面主要也會講解基于這個類的使用的方法。

    除了PCA類以外,最常用的PCA相關類還有KernelPCA類,在原理篇我們也講到了,它主要用于非線性數(shù)據(jù)的降維,需要用到核技巧。因此在使用的時候需要選擇合適的核函數(shù)并對核函數(shù)的參數(shù)進行調參。

    另外一個常用的PCA相關類是IncrementalPCA類,它主要是為了解決單機內存限制的。有時候我們的樣本量可能是上百萬+,維度可能也是上千,直接去擬合數(shù)據(jù)可能會讓內存爆掉, ? 此時我們可以用IncrementalPCA類來解決這個問題。IncrementalPCA先將數(shù)據(jù)分成多個batch,然后對每個batch依次遞增調用partial_fit函數(shù),這樣一步步的得到最終的樣本最優(yōu)降維。

    此外還有SparsePCA和MiniBatchSparsePCA。他們和上面講到的PCA類的區(qū)別主要是使用了L1的正則化,這樣可以將很多非主要成分的影響度降為0,這樣在PCA降維的時候我們僅僅需要對那些相對比較主要的成分進行PCA降維,避免了一些噪聲之類的因素對我們PCA降維的影響。SparsePCA和MiniBatchSparsePCA之間的區(qū)別則是MiniBatchSparsePCA通過使用一部分樣本特征和給定的迭代次數(shù)來進行PCA降維,以解決在大樣本時特征分解過慢的問題,當然,代價就是PCA降維的精確度可能會降低。使用SparsePCA和MiniBatchSparsePCA需要對L1正則化參數(shù)進行調參。

2. sklearn.decomposition.PCA參數(shù)介紹

    下面我們主要基于sklearn.decomposition.PCA來講解如何使用scikit-learn進行PCA降維。PCA類基本不需要調參,一般來說,我們只需要指定我們需要降維到的維度,或者我們希望降維后的主成分的方差和占原始維度所有特征方差和的比例閾值就可以了。

    現(xiàn)在我們對sklearn.decomposition.PCA的主要參數(shù)做一個介紹:

    1)n_components:這個參數(shù)可以幫我們指定希望PCA降維后的特征維度數(shù)目。最常用的做法是直接指定降維到的維度數(shù)目,此時n_components是一個大于等于1的整數(shù)。當然,我們也可以指定主成分的方差和所占的最小比例閾值,讓PCA類自己去根據(jù)樣本特征方差來決定降維到的維度數(shù),此時n_components是一個(0,1]之間的數(shù)。當然,我們還可以將參數(shù)設置為"mle", ? 此時PCA類會用MLE算法根據(jù)特征的方差分布情況自己去選擇一定數(shù)量的主成分特征來降維。我們也可以用默認值,即不輸入n_components,此時n_components=min(樣本數(shù),特征數(shù))。

    2)whiten :判斷是否進行白化。所謂白化,就是對降維后的數(shù)據(jù)的每個特征進行歸一化,讓方差都為1.對于PCA降維本身來說,一般不需要白化。如果你PCA降維后有后續(xù)的數(shù)據(jù)處理動作,可以考慮白化。默認值是False,即不進行白化。

    3)svd_solver:即指定奇異值分解SVD的方法,由于特征分解是奇異值分解SVD的一個特例,一般的PCA庫都是基于SVD實現(xiàn)的。有4個可以選擇的值:{‘a(chǎn)uto’, ?‘full’, ‘a(chǎn)rpack’, ? ‘randomized’}。randomized一般適用于數(shù)據(jù)量大,數(shù)據(jù)維度多同時主成分數(shù)目比例又較低的PCA降維,它使用了一些加快SVD的隨機算法。 full則是傳統(tǒng)意義上的SVD,使用了scipy庫對應的實現(xiàn)。arpack和randomized的適用場景類似,區(qū)別是randomized使用的是scikit-learn自己的SVD實現(xiàn),而arpack直接使用了scipy庫的sparse ?SVD實現(xiàn)。默認是auto,即PCA類會自己去在前面講到的三種算法里面去權衡,選擇一個合適的SVD算法來降維。一般來說,使用默認值就夠了。

    除了這些輸入?yún)?shù)外,有兩個PCA類的成員值得關注。第一個是explained_variance_,它代表降維后的各主成分的方差值。方差值越大,則說明越是重要的主成分。第二個是explained_variance_ratio_,它代表降維后的各主成分的方差值占總方差值的比例,這個比例越大,則越是重要的主成分。

SVD奇異值分解的基本原理和運用

cnblogs.com/NextNight/p

SVD奇異值分解:

   SVD是一種可靠的正交矩陣分解法。可以把A矩陣分解成U,∑,VT三個矩陣相乘的形式。(Svd(A)=[U*∑*VT],A不必是方陣,U,VT必定是正交陣,S是對角陣<以奇異值為對角線,其他全為0>)

用途

     信息檢索(LSA:隱性語義索引,LSA:隱性語義分析),分解后的奇異值代表了文章的主題或者概念,信息檢索的時候同義詞,或者說同一主題下的詞會映射為同一主題,這樣就可以提高搜索效率

     數(shù)據(jù)壓縮:通過奇異值分解,選擇能量較大的前N個奇異值來代替所有的數(shù)據(jù)信息,這樣可以降低噪聲,節(jié)省空間。

推薦系統(tǒng):主要是降噪,矩陣變換至低維空間,方便計算(目前沒有意識到它對推薦精確度的提升有什么具體作用)。

?原理:矩陣分解,矩陣變換,數(shù)據(jù)降維

2、PCA對象的屬性

components_ :返回具有最大方差的成分。

explained_variance_ratio_:返回 所保留的n個成分各自的方差百分比。

n_components_:返回所保留的成分個數(shù)n。

mean_:

noise_variance_:

3、PCA對象的方法

  • fit(X,y=None)

fit()可以說是scikit-learn中通用的方法,每個需要訓練的算法都會有fit()方法,它其實就是算法中的“訓練”這一步驟。因為PCA是無監(jiān)督學習算法,此處y自然等于None。

fit(X),表示用數(shù)據(jù)X來訓練PCA模型。

函數(shù)返回值:調用fit方法的對象本身。比如pca.fit(X),表示用X對pca這個對象進行訓練。

  • fit_transform(X)

用X來訓練PCA模型,同時返回降維后的數(shù)據(jù)。

newX=pca.fit_transform(X),newX就是降維后的數(shù)據(jù)。

  • inverse_transform()

將降維后的數(shù)據(jù)轉換成原始數(shù)據(jù),X=pca.inverse_transform(newX)

  • transform(X)

將數(shù)據(jù)X轉換成降維后的數(shù)據(jù)。當模型訓練好后,對于新輸入的數(shù)據(jù),都可以用transform方法來降維。

此外,還有get_covariance()、get_precision()、get_params(deep=True)、score(X, y=None)等方法,以后用到再補充吧。

sklearn 因子分析官網(wǎng)

scikit-learn.org/stable


3. PCA實例

    下面我們用一個實例來學習下scikit-learn中的PCA類使用。為了方便的可視化讓大家有一個直觀的認識,我們這里使用了三維的數(shù)據(jù)來降維。

    首先我們生成隨機數(shù)據(jù)并可視化,代碼如下:

三維數(shù)據(jù)的分布圖如下:

    我們先不降維,只對數(shù)據(jù)進行投影,看看投影后的三個維度的方差分布,代碼如下:

 輸出如下:

[ 0.98318212 ?0.00850037 ?0.00831751]
[ 3.78483785 ?0.03272285 ?0.03201892]

    可以看出投影后三個特征維度的方差比例大約為98.3%:0.8%:0.8%。投影后第一個特征占了絕大多數(shù)的主成分比例。

    現(xiàn)在我們來進行降維,從三維降到2維,代碼如下:

  輸出如下:

[ 0.98318212 ?0.00850037]
[ 3.78483785 ?0.03272285]

    這個結果其實可以預料,因為上面三個投影后的特征維度的方差分別為:[ 3.78483785 ?0.03272285 ?0.03201892],投影到二維后選擇的肯定是前兩個特征,而拋棄第三個特征。

    為了有個直觀的認識,我們看看此時轉化后的數(shù)據(jù)分布,代碼如下:

輸出的圖如下:

    可見降維后的數(shù)據(jù)依然可以很清楚的看到我們之前三維圖中的4個簇。

    現(xiàn)在我們看看不直接指定降維的維度,而指定降維后的主成分方差和比例。

 我們指定了主成分至少占95%,輸出如下:

[ 0.98318212] [ 3.78483785] 1

    可見只有第一個投影特征被保留。這也很好理解,我們的第一個主成分占投影特征的方差比例高達98%。只選擇這一個特征維度便可以滿足95%的閾值。我們現(xiàn)在選擇閾值99%看看,代碼如下:

 此時的輸出如下:

    這個結果也很好理解,因為我們第一個主成分占了98.3%的方差比例,第二個主成分占了0.8%的方差比例,兩者一起可以滿足我們的閾值。

    最后我們看看讓MLE算法自己選擇降維維度的效果,代碼如下:

 輸出結果如下:

[ 0.98318212]
[ 3.78483785]
 可見由于我們的數(shù)據(jù)的第一個投影特征的方差占比高達98.3%,MLE算法只保留了我們的第一個特征。

python機器學習-乳腺癌細胞挖掘( 作者錄制)

乳腺癌分類器因子分析腳本

我們可以看到,取第一個因子就可以解釋95%方差了。

乳腺癌細胞數(shù)據(jù),下面腳本解釋了一個主成分就解釋了0.98以上癌細胞方差,這和隨機森林效果類似,spss和python統(tǒng)計結果相差較大。spss提供因子解讀效果好,python計算的值更加準確,乳腺癌細胞,一個特征因子就可以解釋0.98成分。

PCA隨機數(shù)測試腳本


因子分析factor analysis(上)的評論 (共 條)

分享到微博請遵守國家法律
深圳市| 汽车| 周口市| 北流市| 孝义市| 吴川市| 龙井市| 郯城县| 华坪县| 定日县| 浮山县| 晴隆县| 钦州市| 永安市| 柳江县| 安宁市| 贵德县| 黎平县| 罗源县| 全州县| 岳池县| 新丰县| 璧山县| 汕头市| 鸡泽县| 北辰区| 台东市| 和静县| 平乐县| 巴里| 景宁| 额敏县| 宣威市| 承德县| 沙雅县| 惠安县| 宝丰县| 瓦房店市| 长治县| 石林| 古蔺县|