Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该使用哪种ML算法来预测事件列表?_Python_Deep Learning_Neural Network - Fatal编程技术网

Python 我应该使用哪种ML算法来预测事件列表?

Python 我应该使用哪种ML算法来预测事件列表?,python,deep-learning,neural-network,Python,Deep Learning,Neural Network,我是数据科学模型选择的新手,我希望你能帮助我解决当前的问题 我试图根据带有数字标签的分类特征来预测事件列表。例如: x1 x2 x3 x4 x5 y1 1 1 3 4 5 Injury 2 2 2 1 3 Flood 3 1 2 3 2 Injury 3 2 1 1 1 Fire 1 1 1 1 1 Protest 我喜欢根据分类特征预测前三名事件。我假设它涉及机器学习中的概率方法,您建议我使用哪种算法/ML/深度学习方法 预期产出

我是数据科学模型选择的新手,我希望你能帮助我解决当前的问题

我试图根据带有数字标签的分类特征来预测事件列表。例如:

x1 x2 x3 x4 x5 y1 
1   1  3  4  5  Injury
2   2  2  1  3  Flood
3   1  2  3  2  Injury
3   2  1  1  1  Fire
1   1  1  1  1  Protest
我喜欢根据分类特征预测前三名事件。我假设它涉及机器学习中的概率方法,您建议我使用哪种算法/ML/深度学习方法

预期产出如下:

1. Injury
2. Fire
3. Flood

我假设您有固定大小的输入,五个分类变量

第一个建议尝试使用嵌入向量代替简单整数进行分类值编码。最简单的方法是使用嵌入层,让网络为其创建嵌入

第二个建议,在我看来可以使用多层感知器或1D卷积层(可能两者结合)。原理应该是,你应用你的输入特征,这些将在密集层或1D CNNN层之后处理,输出层将是密集层。如果这些都是唯一可能的诊断

  • 损伤

  • 泛滥

  • 抗议

您的输出将有4个单位。如果您想要一个列表,您可以尝试treshold方法,因此如果通过treshold值的单元激活被视为可能诊断列表的一部分

关于技术方面,你没有提到你的背景。所以我建议使用一些标准的ML库tensorflow、pytorch。。。设置和执行实验相对容易

编辑

网络可能看起来像:

model = Sequential()
model.add(Dense(units, activation="relu", input_shape=appropriate_shape))
model.add(Dense(output_units, activation="softmax"))
model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=['acc']))
若你们以这种方式构建网络(参见输出层的softmax和分类熵作为损耗),网络自然会产生概率作为输出。培训后,如果您将模型用作:

results = model.predict(input_data)

结果将是概率列表(每个输入样本一个列表)。如果您计算一个这样的列表的总和,您将得到1。

非常感谢您的建议。这很有帮助。让我详细解释一下数据集,x features值可以相同,但有不同的输出事件,因此我提到了可能涉及的概率算法。我喜欢按概率列出输出列表。经过一些挖掘,我可以使用.predict_proba(y)并使用概率等级作为我的输出列表。你怎么认为?有没有最适合排名推荐的ml?如果使用神经网络,输出层的激活将是softmax和损失分类。交叉熵,你可以把输出解释为概率。嗨,这是个好主意,你能给我看一个样本,把输出转化为概率吗?我得到了编译参数,但不确定如何将输出转换为概率。再次感谢。