Linq、Python或Sql需要TSS计算的建议 我用Qt.制作C++软件教程。

Linq、Python或Sql需要TSS计算的建议 我用Qt.制作C++软件教程。,python,c++,linq,qt,pandas,Python,C++,Linq,Qt,Pandas,我需要使用多变量聚类分析的输出在一个表上进行许多计算: Var1,Var2,Var3,…VarN,k2,k3,k4…kn 其中Var1到n是研究变量, k2~kn为团簇分类 表示例: Var1,Var2,Var3,Var4,k2,k3,k4,k5,k6 3464.572992.332688.33504.79,2,3,2,3,2 2895.323365.352824.35504.86,1,2,3,2,6 2249.323300.192382.19504.92,2,1,4,3,4 3417.8133

我需要使用多变量聚类分析的输出在一个表上进行许多计算: Var1,Var2,Var3,…VarN,k2,k3,k4…kn 其中Var1到n是研究变量, k2~kn为团簇分类

表示例: Var1,Var2,Var3,Var4,k2,k3,k4,k5,k6

3464.572992.332688.33504.79,2,3,2,3,2

2895.323365.352824.35504.86,1,2,3,2,6

2249.323300.192382.19504.92,2,1,4,3,4

3417.813311.042426.04504.97,1,2,2,5,2

3329.663497.142467.14505.03,2,2,1,4,2

3087.853653.532296.53505.09,2,1,2,3,4

< > C++存储将定义如下: QList表

Struct record
{
   QList<double>    vars;
   QList<int>   cluster;
 }
Struct记录
{
QList变量;
QList集群;
}
我需要计算总数,组内和组间的平方和

因此,通过示例计算Var1和k2的WSS需要: 在伪代码中: 获取每个组的大小: 计数(*)分组依据(k2), 计算各组的平均值: 将(Var1)与(k2)相加,然后将每个值除以之前的计数。 计算差异: pow((xgroup1-xmeangroup1),2) 还有许多其他的行动

哪些替代方案将具有更简单和强大的编目功能:

1) 动态创建MySQL表并执行SQL操作

2) 使用LINQ,但如果QT具有QTLinq类,则不使用

3) 尝试将LINQ方法等效为Python, (QT和Python之间的交互如何,我看到Qgis有许多用Python编写的插件)

在我的应用程序中还需要做很多其他的微积分

我希望澄清。
问候

过了一段时间,我对自己做出了回应, 这个解决方案是用Python和Pandas编写的

此链接非常有用: 在以下站点上遍历组: 还有“Python for Data Analysis,West McKinney”一书,第255页

此视频演示如何进行计算: 方差分析2:计算SSW和SSB(内部和之间的总平方和)|

[守则]

def getDFrameFixed2D():    
    y = np.array([3,2,1,5,3,4,5,6,7])
    k = np.array([1,1,1,2,2,2,3,3,3])    
    clusters = pd.DataFrame([[a,b] for a,b in zip(y,k)],columns=['Var1','K2'])    
    # print (clusters.head()) print("shape(0):",clusters.shape[0])       
    return clusters

X2D=getDFrameFixed2D()
MainMean = X2D['Var1'].mean(0)
print("Main mean:",MainMean)

grouped = X2D['Var1'].groupby(X2D['K2'])

print("-----Iterating Over Groups-------------")
Wss=0
Bss=0
for name, group in grouped:
    #print(type(name))
    #print(type(group))
    print("Group key:",name)    
    groupmean = group.mean(0)    
    groupss = sum((group-groupmean)**2)
    print("  groupmean:",groupmean)
    print("  groupss:",groupss)
    Wss+= groupss    
    Bss+= ((groupmean - MainMean)**2)*len(group)    

print("----------------------------------")
print("Wss:",Wss)
print("Bss:",Bss)
print("T=B+W:",Bss+Wss)

Tss = np.sum((X-X.mean(0))**2)  
print("Tss:",Tss)
print("----------------------------------")
[/code]
我相信这可以通过聚合(lambdas func)或应用来实现。 但我不知道该怎么做 (如果有人知道,请在这里发布)

问候