我正在尝试使用线性回归基于一组输入来预测输出:
type A = 'one' | 'two' | 'three';
type Distribute<U> = U extends any ? {type: U} : never;
type B = Distribute<A>;
/*
type B = {
type: "one";
} | {
type: "two";
} | {
type: "three";
}
*/
我已经传递了X值作为输入,并期望y作为输出
它将分数显示为负值,预计输出为[[0.9694444444444441]],我希望该分数为1。
我该如何解决这个问题?
答案 0 :(得分:3)
线性回归尝试使用最佳超平面使均方误差最小化。大多数数据(包括您的数据)不是完全线性的,因此预测将不是完美的。但是,给定线性约束,它们将具有尽可能低的误差。在您的示例中,0.97和1.00之间相差不大。
请考虑以下以较小数量维进行的线性回归,以使可视化更加容易。回归所做的只是选择最适合数据的行。这并不意味着它贯穿了每一点。当您使用那条线进行预测时,它会稍微偏离一点。
负分数(直接来自文档)仅意味着该模型的性能比您仅预测数据的平均值要差。模型的表现可能会很差。在您的情况下,由于线性回归能够学习这样的常数模型,因此这表明对训练集过度拟合(可能是由于样本量较小)。如果您对火车数据进行了评分,则应该得到一个非否定的答案,并且可能是肯定的。
更仔细地检查模型,您会发现,由于类不平衡现象严重,预测的真实值是1相对较近(1几乎是其他所有值的两倍)。 2的情况稍差一些,而3的预测则很糟糕。线性模型在艰难的时期内很难停留在点云其余部分中间的几个点上,而从1和2跃升至3。