Rumah > Artikel > pembangunan bahagian belakang > Penjelasan terperinci tentang algoritma analisis faktor penjelasan dalam Python
Analisis Faktor Penjelasan ialah kaedah analisis statistik multivariate klasik yang sering digunakan untuk meneroka faktor berpotensi dalam set data. Sebagai contoh, kita boleh menggunakan analisis faktor penjelasan untuk mengenal pasti faktor yang mempengaruhi kesedaran jenama atau menemui faktor yang mempengaruhi tingkah laku pengguna dalam pasaran tertentu. Dalam Python, kita boleh menggunakan pelbagai perpustakaan untuk melaksanakan analisis faktor penjelasan Artikel ini akan memperkenalkan secara terperinci cara menggunakan Python untuk melaksanakan algoritma ini.
Untuk melaksanakan analisis faktor penjelasan dalam Python, kita perlu memasang beberapa perpustakaan yang diperlukan terlebih dahulu. Antaranya, kita perlu menggunakan perpustakaan NumPy untuk pemprosesan dan operasi data;
Anda boleh menggunakan pengurus pakej Python (seperti pip) untuk memasang perpustakaan ini. Jalankan arahan berikut dalam terminal:
!pip install numpy pandas statsmodels
Untuk menunjukkan analisis faktor, dalam artikel ini kami menggunakan set data kad kredit daripada perpustakaan pembelajaran mesin UCI. Set data ini mengandungi kad kredit setiap pelanggan dan data kewangan lain, seperti baki akaun, had kredit, dsb. Anda boleh memuat turun set data daripada: https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients
Selepas memuat turun, kita perlu menggunakan perpustakaan Pandas Muatkan set data ke dalam Python. Dalam artikel ini, kami akan menggunakan kod berikut untuk memuatkan data:
import pandas as pd # 加载数据 data = pd.read_excel('default of credit card clients.xls', skiprows=1) # 删除第一列(ID) data = data.drop(columns=['ID'])
Perhatikan bahawa kami menggunakan skiprows=1
untuk melangkau baris pertama dalam fail kerana baris itu bukan milik data sebenar. Kami kemudian menggunakan fungsi drop
untuk memadamkan lajur pertama dalam set data, kerana lajur ini hanya mengandungi ID dan tidak berguna untuk analisis data kami.
Sebelum menjalankan analisis faktor penjelasan, kami perlu melakukan beberapa pemprosesan pada data terlebih dahulu. Mengikut contoh kami, kami perlu melakukan analisis faktor ilustrasi mengenai sejarah kredit pelanggan. Oleh itu, kami perlu membahagikan set data kepada sejarah kredit dan data kewangan lain. Dalam artikel ini, kami menganggap sejarah kredit sebagai pembolehubah yang ingin kami kaji.
# 获取信用记录数据 credit_data = data.iloc[:, 5:11] # 对数据进行标准化(均值0,标准差1) from sklearn.preprocessing import StandardScaler scaler = StandardScaler() credit_data = pd.DataFrame(scaler.fit_transform(credit_data), columns=credit_data.columns)
Kami menggunakan fungsi iloc
untuk memilih lajur rekod kredit daripada set data. Kemudian, kami menggunakan fungsi StandardScaler
untuk menyeragamkan data rekod kredit (min ialah 0 dan sisihan piawai ialah 1 ialah langkah yang perlu untuk menggambarkan analisis faktor.
Selepas pemprosesan data selesai, kita boleh menggunakan perpustakaan statsmodels
untuk menjalankan analisis faktor penjelasan. Dalam artikel ini, kami akan menggunakan algoritma anggaran kemungkinan maksimum untuk menentukan bilangan faktor.
# 运行说明因子分析 from factor_analyzer import FactorAnalyzer # 定义模型 fa = FactorAnalyzer() # 拟合模型 fa.fit(credit_data) # 获取因子载荷 loadings = pd.DataFrame(fa.loadings_, index=credit_data.columns, columns=['Factor {}'.format(i) for i in range(1, len(credit_data.columns)+1)]) # 获取方差贡献率 variance = pd.DataFrame({'Variance': fa.get_factor_variance()}, index=['Factor {}'.format(i) for i in range(1, len(credit_data.columns)+1)])
Dalam kod di atas, kita mula-mula membuat seketika objek FactorAnalyzer
dan kemudian menggunakan fungsi fit
untuk memuatkan data. Kami juga menggunakan loadings_
untuk mendapatkan pemuatan faktor, yang mengukur kekuatan korelasi antara setiap pembolehubah dan setiap faktor. Kami menggunakan get_factor_variance
untuk mendapatkan kadar sumbangan varians, yang merupakan ukuran sejauh mana setiap faktor menerangkan varians keseluruhan. Dalam kod akhir, kami menggunakan pd.DataFrame
untuk menukar hasil menjadi bingkai data Pandas.
Menurut algoritma kami, kami boleh mendapatkan dua penunjuk pemuatan faktor dan kadar sumbangan varians. Kita boleh menggunakan penunjuk ini untuk mengenal pasti faktor asas.
Berikut ialah keluaran pemuatan faktor dan kadar sumbangan varians:
Factor 1 Factor 2 Factor 3 Factor 4 Factor 5 Factor 6 LIMIT_BAL 0.847680 -0.161836 -0.013786 0.010617 -0.037635 0.032740 SEX -0.040857 0.215850 0.160855 0.162515 -0.175099 0.075676 EDUCATION 0.208120 -0.674727 0.274869 -0.293581 -0.086391 -0.161201 MARRIAGE -0.050921 -0.028212 0.637997 0.270484 -0.032020 0.040089 AGE -0.026009 0.028125 -0.273592 0.871728 0.030701 0.020664 PAY_0 0.710712 0.003285 -0.030082 -0.036452 -0.037875 0.040604
Variance Factor 1 1.835932 Factor 2 1.738685 Factor 3 1.045175 Factor 4 0.965759 Factor 5 0.935610 Factor 6 0.104597
Dalam matriks pemuatan, kita dapat melihat bahawa rekod kredit mempunyai nilai pemuatan yang lebih tinggi pada faktor 1, yang menunjukkan bahawa Faktor mempunyai korelasi yang kuat dengan sejarah kredit. Dari segi kadar sumbangan varians, kita dapat melihat bahawa faktor pertama menyumbang paling banyak kepada varians, yang bermaksud bahawa rekod kredit mempunyai kuasa penjelasan yang lebih kukuh pada faktor 1.
Oleh itu, kita boleh mempertimbangkan faktor 1 sebagai faktor utama yang mempengaruhi sejarah kredit pelanggan.
Dalam artikel ini, kami memperkenalkan cara untuk melaksanakan algoritma analisis faktor deskriptif dalam Python. Kami mula-mula menyediakan data, kemudian menjalankan analisis faktor penjelasan menggunakan perpustakaan statsmodels
, dan akhirnya menganalisis penunjuk seperti pemuatan faktor dan kadar sumbangan varians. Algoritma ini boleh digunakan dalam banyak aplikasi analisis data, seperti penyelidikan pasaran dan pengurusan sumber manusia. Jika anda berurusan dengan data seperti ini, algoritma analisis faktor patut dicuba.
Atas ialah kandungan terperinci Penjelasan terperinci tentang algoritma analisis faktor penjelasan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!