统计和因果推理的图书馆

statinf的Python项目详细描述


他汀

1。安装

DownloadsPyPI version

您可以从PyPI获取statif:

pip install statinf

statinf是一个用于统计和因果推理的库。 它提供了从传统OLS到神经网络的主要统计模型。在

该库在Windows、Linux和MacOs上受支持。

2。文件

您可以在https://www.florianfelice.com/statinf找到完整的文档。在

您还可以在documentation上找到库的FAQ和{a6}。在

3。可用模块

以下是statinf上可用模块的非详尽列表:

  1. MLP实现多层感知器 (请参见MLP了解更多详细信息和示例)。在

  2. OLS允许使用普通最小二乘法进行线性回归 (请参见OLS了解更多详细信息和示例)。在

  3. GLM实现了广义线性模型 更多细节和示例请参见GLM)。在

  4. stats允许使用descriptivetests统计。在

  5. data是一个处理数据的模块,例如data generationOne Hot Encoding和其他 (请参见data processing或(有关更多详细信息,请参见data generation模块)。在

您可以在https://www.florianfelice.com/statinf上找到以下示例和更多示例。 关注未来releases。在

3.1条。OLS

statinf附带OLS回归,分析公式如下:

(X'X)^{-1}X'Y

^{pr2}$

输出将是:

==================================================================================|                                  OLS summary                                   |==================================================================================|=0.98475 | R² Adj.      =0.98464 ||n=999|p=7|| Fisher value=10676.727 ||==================================================================================| Variables         | Coefficients   | Std. Errors  | t-values   | Probabilities |==================================================================================| X0                |1.3015 |0.03079 |42.273 |0.0   *** || X1                |       -0.48712 |0.03123 |    -15.597 |0.0   *** || X2                |1.62079 |0.04223 |38.377 |0.0   *** || X3                |2.55237 |0.0326 |78.284 |0.0   *** || X4                |       -7.54776 |0.03247 |   -232.435 |0.0   *** || X1*X2             |0.03626 |0.02866 |1.265 |0.206       || exp(X2)|       -0.00929 |0.01551 |     -0.599 |0.549       |==================================================================================| Significance codes: 0. < *** < 0.001 < ** < 0.01 < * < 0.05 < . < 0.1 < '' < 1|

3.2条。GLM

logistic回归可用于Y服从伯努利分布的二元分类。由于X是回归矩阵,我们有:

p=\mathbb{P}(Y=1)=\dfrac{1}{1+e^{-X\beta}}

然后我们用以下方法实现回归:

fromstatinf.regressionsimportGLMfromstatinf.dataimportgenerate_dataset# Generate a synthetic datasetdata=generate_dataset(coeffs=[1.2556,-6.465,1.665414,-1.5444],n=2500,std_dev=10.5,binary=True)# We split data into train/test/applicationtrain=data.iloc[0:1000]test=data.iloc[1001:2000]# We set the linear formula for Xbformula="Y ~ X0 + X1 + X2 + X3"logit=GLM(formula,train,test_set=test)# Fit the modellogit.fit(plot=False,maxit=10)logit.get_weights()

输出将是:

==================================================================================|                                  Logit summary                                 |==================================================================================| McFadden =0.67128 | McFadden R² Adj.    =0.6424 || Log-Likelihood  =          -227.62 | Null Log-Likelihood =             -692.45 || LR test p-value =0.0 |Covariance=           nonrobust ||n=999|p=5||Iterations=8|Convergence=                True |==================================================================================| Variables         | Coefficients   | Std. Errors  | t-values   | Probabilities |==================================================================================| X0                |       -1.13024 |0.10888 |    -10.381 |0.0   *** || X1                |0.02963 |0.07992 |0.371 |0.711       || X2                |       -1.40968 |0.1261 |    -11.179 |0.0   *** || X3                |0.5253 |0.08966 |5.859 |0.0   *** |==================================================================================| Significance codes: 0. < *** < 0.001 < ** < 0.01 < * < 0.05 < . < 0.1 < '' < 1|==================================================================================

3.3条。Multi Layer Perceptron

您可以使用MLP类训练神经网络。 下面的例子展示了如何训练一个具有1个线性层的MLP。它相当于用梯度下降实现OLS。在

fromstatinf.dataimportgenerate_datasetfromstatinf.mlimportMLP,Layer# Generate the synthetic datasetdata=generate_dataset(coeffs=[1.2556,-6.465,1.665414,1.5444],n=1000,std_dev=1.6)Y=['Y']X=[cforcindata.columnsifcnotinY]# Initialize the network and its architecturenn=MLP()nn.add(Layer(4,1,activation='linear'))# Train the neural networknn.train(data=data,X=X,Y=Y,epochs=1,learning_rate=0.001)# Extract the network's weightsprint(nn.get_weights())

输出:

{'weights 0':array([[1.32005564],[-6.38121934],[1.64515704],[1.48571785]]),'bias 0':array([0.81190412])}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过解决错误“活动无法转换为片段”将片段传递给类构造函数?   Java中清理Code39条码数据的regex帮助   将java转换为C++   java无法在Android Studio中生成签名的apk,出现错误   从数学方程出发   MySQL和Java内存问题   如何强制Java抛出算术异常?   java为什么JDBC将零端口视为空(默认)端口?   java如何在没有“changelog主题”的情况下加入KStream和KTable   排序我尝试合并两个排序的数组,但得到的是java。lang.ArrayIndexOutofBounds异常:5无法找出原因   如何在java中求大长度矩阵的逆?   基于maven构建的java生成类路径字符串   java每20个字符分割一个字符串,然后将每个部分打印到控制台   将字符串数字字转换为字符串数字:Java   在特定区域使用混合类型的java填充字节数组   尽管java类在开关块中实例化,但它只能调用接口方法