Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung des erklärenden Faktoranalysealgorithmus in Python
Erklärung Die Faktoranalyse ist eine klassische multivariate statistische Analysemethode, die häufig zur Untersuchung potenzieller Faktoren in Datensätzen verwendet wird. Mithilfe der erklärenden Faktorenanalyse können wir beispielsweise Faktoren identifizieren, die die Markenbekanntheit beeinflussen, oder Faktoren entdecken, die das Verbraucherverhalten in einem bestimmten Markt beeinflussen. In Python können wir eine Vielzahl von Bibliotheken verwenden, um eine erklärende Faktoranalyse zu implementieren. In diesem Artikel wird detailliert beschrieben, wie Python zur Implementierung dieses Algorithmus verwendet wird.
Um die Analyse erklärender Faktoren in Python zu implementieren, müssen wir zunächst mehrere erforderliche Bibliotheken installieren. Unter anderem müssen wir die NumPy-Bibliothek für die Datenverarbeitung und Berechnungen verwenden; die Pandas-Bibliothek zum Laden und Verarbeiten von Daten verwenden und die Statsmodels-Bibliothek verwenden, um eine erklärende Faktoranalyse durchzuführen;
Sie können den Paketmanager von Python (z. B. pip) verwenden, um diese Bibliotheken zu installieren. Führen Sie den folgenden Befehl im Terminal aus:
!pip install numpy pandas statsmodels
Um die Faktoranalyse zu demonstrieren, verwenden wir in diesem Artikel den Kreditkartendatensatz aus der UCI-Bibliothek für maschinelles Lernen. Dieser Datensatz enthält die Kreditkarten- und andere Finanzdaten jedes Kunden, wie Kontostände, Kreditlimits usw. Sie können den Datensatz herunterladen unter: https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients
Nach dem Herunterladen müssen wir die Pandas-Bibliothek verwenden, um den Datensatz in Python zu laden . In diesem Artikel verwenden wir den folgenden Code zum Laden der Daten:
import pandas as pd # 加载数据 data = pd.read_excel('default of credit card clients.xls', skiprows=1) # 删除第一列(ID) data = data.drop(columns=['ID'])
Beachten Sie, dass wir skiprows=1
verwenden, um die erste Zeile in der Datei zu überspringen, da diese Zeile nicht zur echten gehört Daten. Anschließend haben wir die Funktion drop
verwendet, um die erste Spalte im Datensatz zu löschen, da diese Spalte nur IDs enthält und für unsere Datenanalyse nicht nützlich ist. skiprows=1
来跳过文件中的第一行,因为该行不属于真正的数据。然后,我们使用drop
函数删除了数据集中的第一列,因为该列只包含ID,对我们的数据分析没有用处。
在进行说明因子分析之前,我们先需要对数据进行一些处理。根据我们的例子,我们需要对客户的信用记录进行说明因子分析。因此,我们需要将数据集拆分为信用记录和其他金融数据。在本文中,我们将信用记录作为我们要研究的变量。
# 获取信用记录数据 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)
我们使用iloc
函数从数据集中选择信用记录列。然后,我们使用StandardScaler
函数对信用记录数据进行标准化(均值为0,标准差为1),对于说明因子分析来说,标准化是必要的步骤。
在数据处理完成后,我们可以使用statsmodels
库来运行说明因子分析。在本文中,我们将使用最大似然估计算法来确定因子数。
# 运行说明因子分析 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)])
在上面的代码中,我们先实例化了一个FactorAnalyzer
对象,然后使用fit
函数拟合了数据。我们还使用loadings_
来获取因子载荷,该值用于衡量每个变量与每个因子之间的相关性强度。我们使用get_factor_variance
获取方差贡献率,该指标用于衡量每个因子对总体方差的解释程度。在最后的代码中,我们使用pd.DataFrame
将结果转换为Pandas数据帧。
根据我们的算法,我们可以获得因子载荷和方差贡献率这两个指标。我们可以使用这些指标来识别潜在的因子。
以下是因子载荷和方差贡献率的输出结果:
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
在载荷矩阵中,我们可以看到信用记录在因子1上拥有较高的载荷值,这表明该因子与信用记录有较强的相关性。在方差贡献率方面,我们可以看到第1个因子对方差的贡献最大,意味着信用记录在因子1上有更强的解释能力。
因此,我们可以将因子1视为影响客户信用记录的主要因素。
在本文中,我们介绍了如何在Python中实现说明因子分析算法。我们首先准备了数据,然后使用statsmodels
iloc
, um die Kreditdatensatzspalte aus dem Datensatz auszuwählen. Dann verwenden wir die Funktion StandardScaler
, um die Kreditdatensatzdaten zu standardisieren (Mittelwert ist 0, Standardabweichung ist 1). Standardisierung ist ein notwendiger Schritt zur Erklärung der Faktoranalyse. 🎜statsmodels
-Bibliothek verwenden, um eine erklärende Faktoranalyse durchzuführen. In diesem Artikel verwenden wir den Maximum-Likelihood-Schätzalgorithmus, um die Anzahl der Faktoren zu bestimmen. 🎜rrreee🎜Im obigen Code instanziieren wir zunächst ein FactorAnalyzer
-Objekt und verwenden dann die Funktion fit
, um die Daten anzupassen. Wir verwenden loadings_
auch, um Faktorladungen zu erhalten, die ein Maß für die Stärke der Korrelation zwischen jeder Variablen und jedem Faktor sind. Wir verwenden get_factor_variance
, um die Varianzbeitragsrate zu erhalten, die ein Maß dafür ist, wie sehr jeder Faktor die Gesamtvarianz erklärt. Im endgültigen Code verwenden wir pd.DataFrame
, um das Ergebnis in einen Pandas-Datenrahmen zu konvertieren. 🎜statsmodels
-Bibliothek durch und analysierten schließlich Indikatoren wie Faktorladungen und Varianzbeitragsraten. Dieser Algorithmus kann in vielen Datenanalyseanwendungen verwendet werden, beispielsweise in der Marktforschung und im Personalmanagement. Wenn Sie mit solchen Daten arbeiten, ist der Faktoranalysealgorithmus einen Versuch wert. 🎜Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des erklärenden Faktoranalysealgorithmus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!