摘要:主成分分析就是降維,通過線性組合,把多個原始變量合并成若干個主成分,這樣每個主成分都變成原始變量的線性組合。相關(guān)系數(shù)系數(shù)為為為。從結(jié)果看,這個數(shù)據(jù)可能不太適合用來分析,因為降到維后的代筆性不足。
這兩天用學(xué)了主成分分析,用的是PCA。主成分分析就是降維,通過線性組合,把多個原始變量合并成若干個主成分,這樣每個主成分都變成原始變量的線性組合。所以你想看具體哪個特征對結(jié)果的影響大,通過PCA是看不到的。但PCA能把原來的10+數(shù)據(jù)特征轉(zhuǎn)變?yōu)閹讉€,實現(xiàn)過程如下:
導(dǎo)入數(shù)據(jù):
import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt inputfile = "C:/Users/xiaom/Desktop/data/online_shoppers_intention.csv" df = pd.read_csv(inputfile)
這是后面的幾列
只要購買客戶數(shù)據(jù),對VisitorType、weekend數(shù)據(jù)做處理,轉(zhuǎn)換為0,1;再刪除不要的字段
#只要購買客戶的數(shù)據(jù) df = df[df["Revenue"] == True] df["VisitorType"] = np.where(df["VisitorType"] == "Returning_Visitor",1,0) df["workday"] = np.where(df["Weekend"]==True,0,1) df.drop(["Weekend","Revenue","Month"], axis=1, inplace=True)2、相關(guān)性檢測
對df表進(jìn)行相關(guān)性檢測,看每個字段的相關(guān)度,刪除相關(guān)度高的字段,減少計算量。如果自變量屬于中度以上線性相關(guān)的(>0.6)多個變量,只保留一個即可。
1、2相關(guān)系數(shù)0.61;3、4系數(shù)為0.63;5、6為0.91;7、8為0.74。相關(guān)度一般在0.64以上就認(rèn)為是比較相關(guān)的關(guān)系,所以刪除5
#求各字段的相關(guān)性,用corr()函數(shù),并保留2位小數(shù) df.corr().round(2) #結(jié)果:1,2相關(guān)系數(shù)0.61;3,4系數(shù)為0.63;5,6為0.91;7,8為0.74。所以對相關(guān)性高的保留1個字段 df.drop(["Administrative_Duration", "Informational_Duration", "ProductRelated_Duration", "BounceRates"],axis=1, inplace=True) print(df)3、標(biāo)準(zhǔn)化處理
x = df #對PageValues相差太大,對其進(jìn)行標(biāo)準(zhǔn)化 from sklearn import preprocessing x = preprocessing.scale(x)4、PCA
#用PCA(主成分分析法),來查看對購買影響最大的特征 from sklearn.decomposition import PCA model = PCA(n_components=7) #把數(shù)據(jù)降到6維 model.fit(x) print("降到6維后,這6維的代表性為:") print(model.explained_variance_ratio_) print(model.components_) #返回具有最大方差的成分 print("返回參數(shù)的值") print(model.get_params) #返回各個參數(shù)的值 #print(model.get_precision()) #下面是畫圖的 x2 = model.transform(x) df["pca1"] = x2[:,0] df["pca2"] = x2[:,1] #print(df.head( )) sns.lmplot("pca1","pca2", data=df, fit_reg=False) plt.show()
左邊是降維后的結(jié)果,68%左右,數(shù)據(jù)從原來的10維下降到了6維。從結(jié)果看,這個數(shù)據(jù)可能不太適合用pca來分析,因為降到6維后的代筆性不足70%。
右邊是降維后的圖。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42696.html
摘要:應(yīng)用過機(jī)器學(xué)習(xí)進(jìn)行數(shù)據(jù)挖掘的同學(xué)應(yīng)該都知道特征選擇對模型表現(xiàn)的重要性。本文基于網(wǎng)上經(jīng)典特征選擇相關(guān)文章整理出干貨常用方法分類以及調(diào)包俠該如何用快速上手,供大家參考。 應(yīng)用過機(jī)器學(xué)習(xí)進(jìn)行數(shù)據(jù)挖掘的同學(xué)應(yīng)該都知道特征選擇對模型表現(xiàn)的重要性。本文基于網(wǎng)上經(jīng)典特征選擇相關(guān)文章整理出干貨:常用方法分類以及調(diào)包俠該如何用sklearn快速上手,供大家參考。 (一)預(yù)處理: 1 無量綱化: 1.1 ...
摘要:貢獻(xiàn)者飛龍版本最近總是有人問我,把這些資料看完一遍要用多長時間,如果你一本書一本書看的話,的確要用很長時間。為了方便大家,我就把每本書的章節(jié)拆開,再按照知識點合并,手動整理了這個知識樹。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻(xiàn)者:飛龍版...
摘要:主成分分析,簡稱是一種非監(jiān)督學(xué)習(xí)的機(jī)器算法,主要用于數(shù)據(jù)的降維。對于的目標(biāo)函數(shù)求使得最大,可以使用梯度上升法來解決。利用梯度公式的梯度上升法實際上是批量梯度上升法還有隨機(jī)梯度上升法和小批量梯度上升法,本文不涉及。 主成分分析(Principle Component Analysis,簡稱:PCA)是一種非監(jiān)督學(xué)習(xí)的機(jī)器算法,主要用于數(shù)據(jù)的降維。 PCA 基本原理 以有2個特征的二維平面...
閱讀 1090·2021-10-08 10:04
閱讀 3528·2021-08-05 10:01
閱讀 2286·2019-08-30 11:04
閱讀 1805·2019-08-29 15:29
閱讀 852·2019-08-29 15:12
閱讀 1677·2019-08-26 12:11
閱讀 3125·2019-08-26 11:33
閱讀 1170·2019-08-26 10:23