我需要建模一个多元时间序列数据,以预测一个二进制目标,这很少是1(不平衡的数据)。这意味着我们想要基于一个特性建模是二进制(暴发),很少1?所有的特性都是二进制的,很少有1。建议的解决方案是什么?
基于以下的成本函数,这一特性对成本函数有影响。如果费用与以下相同,我们想知道是否已准备好。
问题定义:基于爆发的模型,很少有1。
准备好或没有准备好避免疾病的爆发,而爆发的费用是准备费用的20倍。
每天的费用(第二天):cost=20*outbreak*!prepared+prepared
模型:为哪一天的疫情做好准备?
问题:
csv文件上传和数据是一天结束的时候,csv文件包含行,每一行都有不同的特性,其中一些是二进制的,最后一个特性是爆发的,很少有1,并且在成本上考虑了一个主要的特性。
发布于 2019-08-21 01:08:10
你描述的是阶级不平衡。
典型的方法是通过反复运行包含(罕见的)正向类的示例来生成均衡的训练数据,每次从负面类中选择一个新的随机样本。
同时,要注意你的成本功能。你不会想奖励一个简单的模型,因为你总是选择大多数的类。
发布于 2019-10-02 08:00:19
我的建议:
监督逼近
SMOTEXgboost scale_pos_weight无监督逼近
IsolationForest (也尝试扩展它的版本)。Kmeans + DecisionTreeClassifier)模型评价
建立成本矩阵。不要直接使用混淆矩阵、精度等。您可以在这里找到关于成本矩阵的更多信息:矩阵
注意:
根据OP在评论中提出的问题,每年都可以这样做:
df["date"] = pd.to_datetime(df["date"])
df.groupby(df["date"].dt.year).mean()您也可以使用其他聚合器(平均值、和、计数等)。
https://stackoverflow.com/questions/57583032
复制相似问题