sklearn因子分析(python)

sklearn因⼦分析(python)
因⼦分析
因⼦分析(Factor Analysis)是指研究从变量中提取共性因⼦的统计技术,这⾥的共性因⼦指的是不同变量之间内在的隐藏因⼦。例如,⼀个学⽣的英语、数据、语⽂成绩都很好,那么潜在的共性因⼦可能是智⼒⽔平⾼。因此,因⼦分析的过程其实是寻共性因⼦和个性因⼦并得到最优解释的过程。
因⼦分析有两个核⼼问题:⼀是如何构造因⼦变量,⼆是如何对因⼦变量进⾏命名解释。因⼦分析有下⾯4个基本步骤:金属化膜
过程
1、确定原有若⼲变量是否适合于因⼦分析。因⼦分析的基本逻辑是从原始变量中构造出少数⼏个具有代表意义的因⼦变量,这就要求原有变量之间要具有⽐较强的相关性,否则,因⼦分析将⽆法提取变量间的“共性特征”(变量间没有共性还如何提取共性?)。实际应⽤时,可以使⽤相关性矩阵进⾏验证,如果相关系数⼩于0.3,那么变量间的共性较⼩,不适合使⽤因⼦分析(查看变量间的相关性,也就是共有特征是否有必要提取共性)
mport pandas as pd
mydata = pd.read_csv(r'D:\PythonDDD\datafiles\data.csv')
mydata.describe()
import math
df = pd.DataFrame(mydata)
df['⾏驶⾥程1'] = df['⾏驶⾥程'].apply(lambda x: math.log(x))
df.boxplot(column = '⾏驶⾥程1', by='车号')#查看车号的⾏驶⾥程
df.boxplot(column = '平均时速', by='车号')#查看车号的平均时速
#样本离差矩阵
import numpy as np
mydata = mydata.drop('车号', 1)强卫任江西省委书记
mydata = mydata.drop('⾏驶⾥程1', 1)
mydata_mean = an()
E = np.s((14, 14)))
for i in range(len(mydata)):
E += (mydata.iloc[i, :].reshape(14, 1) - shape(14, 1)) * (mydata.iloc[i, :].reshape(1, 14) - shape(1, 14))
#样本相关性矩阵
R = np.s((14, 14)))
for i in range(14):
for j in range(14):
R[i, j] = E[i, j]/math.sqrt(E[i, i] * E[j, j])
或者
R1 = ()      #样本相关性矩阵
2、构造因⼦变量。因⼦分析中有多种确定因⼦变量的⽅法,如基于主成分模型的主成分分析法和基于因⼦分析模型的主轴因⼦法、极⼤似然法、最⼩⼆乘法等。其中基于主成分模型的主成分分析法是使⽤最多的因⼦分析⽅法之⼀。(不同⽅法不同效果)
import numpy.linalg as nlg
eig_value, eigvector = nlg.eig(R)#求矩阵R的全部特征值,构成向量E。
print(eig_value, eigvector)
eig = pd.DataFrame()
余姚瀑布茶
eig['names'] = lumns
eig['eig_value'] = eig_value
eig.sort_values('eig_value', ascending=False, inplace=True)
#求因⼦模型的因⼦载荷阵,寻公共因⼦个数m
for m in range(1, 14):
if eig['eig_value'][:m].sum()/eig['eig_value'].sum() >= 0.8:
print(m)
启东地震
break
#因⼦载荷矩阵,只是因⼦,
A  = np.s((14, 6)))
A[:,0]=math.sqrt(eig_value[0])*eigvector[:,0]
A[:,1]=math.sqrt(eig_value[1])*eigvector[:,1]
A[:,2]=math.sqrt(eig_value[2])*eigvector[:,2]
A[:,3]=math.sqrt(eig_value[3])*eigvector[:,3]
A[:,4]=math.sqrt(eig_value[4])*eigvector[:,4]
A[:,5]=math.sqrt(eig_value[5])*eigvector[:,5]
a=pd.DataFrame(A)三个扬州
3、利⽤旋转使得因⼦变量更具有可解释性。在实际分析⼯作中,主要是因⼦分析得到因⼦和原变量的关系,从⽽对新的因⼦能够进⾏命名和解释,否则其不具有可解释性的前提下对⽐PCA就没有明显的可解释价值。
4、计算因⼦变量的得分。计算因⼦得分是因⼦分析的最后⼀步,因⼦变量确定以后,对每⼀样本数据,希望得到它们在不同因⼦上的具体数据值,这些数值就是因⼦得分,它和原变量的得分相对应。(⽣成新的数据)
from sklearn.cluster import KMeans
for i in range(2, 10):
clf = KMeans(n_clusters=i)
clf.fit(train_data)
#    print(clf.cluster_centers_)#类中⼼
print(i, clf.inertia_)#⽤来评估簇的个数是否合适,距离越⼩说明簇分的越好,选取临界点的簇个数什么是堰塞湖

本文发布于:2024-09-21 18:29:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/362624.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:变量   共性   分析   矩阵   是否   提取   解释
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议