首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于一个二进制特征的多特征建模,当存在成本时,这很少是1(不平衡的数据)。

基于一个二进制特征的多特征建模,当存在成本时,这很少是1(不平衡的数据)。
EN

Stack Overflow用户
提问于 2019-08-21 00:32:38
回答 2查看 102关注 0票数 0

我需要建模一个多元时间序列数据,以预测一个二进制目标,这很少是1(不平衡的数据)。这意味着我们想要基于一个特性建模是二进制(暴发),很少1?所有的特性都是二进制的,很少有1。建议的解决方案是什么?

基于以下的成本函数,这一特性对成本函数有影响。如果费用与以下相同,我们想知道是否已准备好。

问题定义:基于爆发的模型,很少有1。

准备好或没有准备好避免疾病的爆发,而爆发的费用是准备费用的20倍。

每天的费用(第二天):cost=20*outbreak*!prepared+prepared

模型:为哪一天的疫情做好准备?

问题:

  • 建立一个预测疫情的模型?
  • 报告每年的成本估算。

csv文件上传和数据是一天结束的时候,csv文件包含行,每一行都有不同的特性,其中一些是二进制的,最后一个特性是爆发的,很少有1,并且在成本上考虑了一个主要的特性。

EN

回答 2

Stack Overflow用户

发布于 2019-08-21 01:08:10

你描述的是阶级不平衡。

典型的方法是通过反复运行包含(罕见的)正向类的示例来生成均衡的训练数据,每次从负面类中选择一个新的随机样本。

同时,要注意你的成本功能。你不会想奖励一个简单的模型,因为你总是选择大多数的类。

票数 1
EN

Stack Overflow用户

发布于 2019-10-02 08:00:19

我的建议:

监督逼近

  • 用于上采样的SMOTE
  • 通过调优Xgboost scale_pos_weight
  • 复制少数族裔阶级例如:10次
  • 尝试使用集成树算法,试图生成一个线性曲面对您的情况是危险的。
  • 因为您的数据是时间序列,所以您可以在真正的疾病发生之前用少数类生成天数。例如,你在2010-07-20年间有少数族裔班级。在此之前的最后一次观察是2010-06-27年。你可以通过略有变化的差异产生观测,如2010-07-15,2010-07-18等等。

无监督逼近

  • 尝试异常检测算法。例如IsolationForest (也尝试扩展它的版本)。
  • 集群您的观察,检查少数类是否成为一个集群本身。如果成功,您可以使用集群名称(cluster1、cluster2、cluster3等)标记数据,然后训练决策树以查看拆分模式。(Kmeans + DecisionTreeClassifier)

模型评价

建立成本矩阵。不要直接使用混淆矩阵、精度等。您可以在这里找到关于成本矩阵的更多信息:矩阵

注意:

根据OP在评论中提出的问题,每年都可以这样做:

代码语言:javascript
复制
df["date"] = pd.to_datetime(df["date"])
df.groupby(df["date"].dt.year).mean()

您也可以使用其他聚合器(平均值、和、计数等)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57583032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档