同一模型中的单独模型与标志

机器算法验证 回归 神经网络 造型 相互作用 分类编码
2022-04-08 01:09:44

我有来自 2 个品牌的客户数据。数据结构相同,但我预计不同品牌的客户行为会有所不同。

所以我可以训练 2 个模型,每个品牌 1 个,或者我可以在两个品牌上训练一个模型,但在数据中标记客户属于哪个品牌。

所以我的问题是,对带有标志的两个品牌进行培训对于机器学习(我正在使用神经网络)来说是否会做更多的工作,因此比为每个品牌都拥有专用模型更难达到良好的准确性?

1个回答

我将假设某种形式的回归(类似)模型来写一个答案。你说神经网络,同样适用,但是在更简单的环境中理解问题会很有帮助。在将数据扔到神经网络之前,您可能应该尝试一些更简单的模型......

所以让Yi成为回应,xi协变量向量(除品牌指标外的所有变量,可能包括交互,不包括品牌),以及Ii(值 0 或 1)品牌指标。我们可以用线性预测器编写一个模型(不包括误差项)

Yi=β0+βTxi+αIi.
这将简单地给出两条平行线,两个品牌的模型只会有不同的截距,否则相等。

然后我们可以包括品牌和其他变量之间的所有交互作用

Yi=β0+βTxi+αIi+γT{xi0
由于之间的产品xi品牌指标将是xi或零向量。现在,这很好地分为两个等式,每个品牌一个,如
Yi={β0+βTxifor Ii=0β0+α+(β+γ)Txifor Ii=1
因此,具有所有交互作用的模型在代数上与拟合两个单独的模型相同(实际上它不会完全相同,因为单独拟合会给出两个不同的方差估计。如果有很多组,这可能会导致方差估计的一系列自由度损失)。所以这应该给出一些关于差异的暗示。

如果你想要一个中间模型,有一些但不是所有的交互,你应该拟合一个模型。

编辑为了更清楚,R中的一个简单模拟示例:

    set.seed(7*11*13) # My public seed
    n <- 100
    x1 <- rnorm(n, 10, 3)
    x2 <- rnorm(n, 15, 4)
    x3 <- x2 + rnorm(n, 5, 2)
    Sex <- rbinom(n, 1, 0.5)
    
    Y <- 5 + x1 + Sex*x2 + Sex*x3+ 5*Sex + rnorm(n, 0, 3)
    
    mydata <- data.frame(x1, x2, x3, Y, Sex=as.factor(Sex))
    
    # Two separate models:
    
    modsep0 <- lm(Y  ~ x1+x2+x3, data=mydata, subset=Sex==0)
    modsep1 <- lm(Y  ~ x1+x2+x3, data=mydata, subset=Sex==1)
    
    modflags <- lm(Y  ~ Sex+x1+x2+x3+Sex:x1+Sex:x2+Sex:x3, 
                   data=mydata)

然后模型总结:

    summary(modsep0)
    
    Call:
    lm(formula = Y ~ x1 + x2 + x3, data = mydata, 
        subset = Sex == 0)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -7.0752 -1.0416 -0.0627  1.0081  6.0612 
    
    Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
    (Intercept)   6.2936     2.6214   2.401   0.0202 *  
    x1            0.9968     0.1104   9.029 5.34e-12 ***
    x2           -0.2664     0.2369  -1.125   0.2662    
    x3            0.1193     0.1975   0.604   0.5487    
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 2.962 on 49 degrees of freedom
    Multiple R-squared:   0.64, Adjusted R-squared:  0.618 
    F-statistic: 29.04 on 3 and 49 DF,  p-value: 6.166e-11
    
    summary(modsep1)
    
    Call:
    lm(formula = Y ~ x1 + x2 + x3, data = mydata, 
       subset = Sex == 1)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -5.7700 -1.9096  0.3434  2.1454  5.8608 
    
    Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
    (Intercept)   4.4998     2.5982   1.732   0.0905 .  
    x1            0.9738     0.1431   6.805 2.47e-08 ***
    x2            0.5550     0.2700   2.055   0.0459 *  
    x3            1.6171     0.2246   7.199 6.64e-09 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 2.888 on 43 degrees of freedom
    Multiple R-squared:  0.9075,    Adjusted R-squared:  0.9011 
    F-statistic: 140.7 on 3 and 43 DF,  p-value: < 2.2e-16
    
    summary(modflags)
    
    Call:
    lm(formula = Y ~ Sex + x1 + x2 + x3 + Sex:x1 + Sex:x2 + 
       Sex:x3, data = mydata)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -7.0752 -1.3782  0.0071  1.9441  6.0612 
    
    Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
    (Intercept)  6.29355    2.59092   2.429   0.0171 *  
    Sex1        -1.79380    3.69469  -0.486   0.6285    
    x1           0.99681    0.10912   9.135 1.51e-14 ***
    x2          -0.26644    0.23415  -1.138   0.2581    
    x3           0.11926    0.19517   0.611   0.5427    
    Sex1:x1     -0.02304    0.18152  -0.127   0.8993    
    Sex1:x2      0.82139    0.36019   2.280   0.0249 *  
    Sex1:x3      1.49783    0.29991   4.994 2.79e-06 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 2.927 on 92 degrees of freedom
    Multiple R-squared:  0.9824,    Adjusted R-squared:  0.981 
    F-statistic: 732.4 on 7 and 92 DF,  p-value: < 2.2e-16   

然后开始比较系数,从截距开始(记住Sex变量不能单独包含在单独的模型中,所以有截距的一部分)所以从

    6.29355-1.79380
    [1] 4.49975

并从那里继续...