日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

基于Python(sklearn)计算PLS中的VIP值

發(fā)布時間:2024/3/24 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Python(sklearn)计算PLS中的VIP值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

基于Python(sklearn)計算PLS中的VIP值

sklearn中PLS回歸模型并沒有計算VIP值的方法,但VIP又是很重要的篩選變量方法。下附代碼思路與完整代碼,若有錯誤,萬望指正。

1.首先亮明計算公式:


其中:
VIPj:對應于第j個特征的VIP值;
p:預測變量的總數(shù);
A:PLS成分的總數(shù);
R矩陣:A個PLS成分中,每個成分a都對應一套系數(shù)wa將X轉(zhuǎn)換為成分得分,系數(shù)矩陣寫作R,大小為p×A;
T矩陣:n個樣本中,每個樣本會計算出A個成分得分,得分矩陣記做T,大小為n×A,ta代表n個樣本的第a個成分的得分列表;
以上有T = XR
qa:
e是殘差,X0和y0代表數(shù)據(jù)和標簽。

2. 按照sklearn中對屬性的解釋:

該x_rotations_應對應于R矩陣,T矩陣對應于transform后生成的降維數(shù)據(jù)。
又依據(jù):

有模型中e殘差應為0,即y = yhat = X coef_

3. 組織計算步驟
1)計算qa2:qa = yhat.T ta -> Q2 = q2 = np.square(y.T, T)
2) p = X.shape[1]
3) = np.sum(Q2)
4) R = x_rotations_
4) = R[j, a] / np.linalg.norm(R[:, a])

Ok,萬事具備,開搞。
下付完整代碼

def compute_VIP(X, y, R, T, A):"""計算模型中各預測變量的VIP值:param X: 數(shù)據(jù)集X:param y: 標簽y:param R: A個PLS成分中,每個成分a都對應一套系數(shù)wa將X轉(zhuǎn)換為成分得分,系數(shù)矩陣寫作R,大小為p×A:param T: 得分矩陣記做T,大小為n×A,ta代表n個樣本的第a個成分的得分列表:param A: PLS成分的總數(shù):return: VIPs = np.zeros(p)"""p = X.shape[1]Q2 = np.square(np.dot(y.T, T))VIPs = np.zeros(p)temp = np.zeros(A)for j in range(p):for a in range(A):temp[a] = Q2[a] * pow(R[j, a] / np.linalg.norm(R[:, a]), 2)VIPs[j] = np.sqrt(p * np.sum(temp) / np.sum(Q2))return VIPs

下面為函數(shù)調(diào)用代碼:

X, Y = np.zero() # 此處應用自己的數(shù)據(jù) x_train, x_test, y_train, y_test = model_selection.train_test_split(X, Y, test_size=0.3)# 然后對y進行轉(zhuǎn)換(啞變量) y_train_labels = pd.get_dummies(y_train)# 建模 n_component = 3 model = PLSRegression(n_components=n_component) model.fit(x_train, y_train_labels)# x_test_trans = model.transform(x_test) VIPs = compute_VIP(x_test, y_test, model.x_rotations_, x_test_trans, n_component) plt.scatter(np.arange(0, X.shape[1]), VIPs) plt.show()

總結

以上是生活随笔為你收集整理的基于Python(sklearn)计算PLS中的VIP值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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