机器学习如何根据过去的特征预测固定字段集

2024-10-02 18:16:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个相当大的数据集(>;10万行),其中包含物流装运的信息。(出口货物)

数据集如下所示:

|shipper|consignee                    |origin|destination                                  |
|-------|-----------------------------|------|---------------------------------------------|
|6409292|288882                       |USSFO |CNPVG                                        |
|6409292|288882                       |USSFO |CNPVG                                        |
|6409292|182724                       |USSFO |HKHKG                                        |
|6409292|182724                       |USSFO |HKHKG                                        |
|8201922|948292                       |USSFO |FRCDG                                        |
|8201922|948292                       |USSFO |FRCDG                                        |
|8201922|948292                       |USSFO |FRNIC                                        |
|8201922|291222                       |USEWR |AEDXB                                        |

我们这里有一份过去出货的清单。它显示了托运人和收货人之间的关系,以及货物的来源和发送地点

基于这些过去的数据,我希望能够通过查看consignee codeorigin来预测何时添加新的装运

范例

以以下新预订为例:

|shipper|consignee                    |origin|destination                                  |
|-------|-----------------------------|------|---------------------------------------------|
|1234567|948292                       |USMOB |?                                            |

我如何训练模型来预测destination?ML中的这个区域指的是什么


Tags: 数据gt信息origindestination装运货物物流
1条回答
网友
1楼 · 发布于 2024-10-02 18:16:59

在深入机器学习之前,理解这些概念非常重要:

  • 数据集:这是您的数据集合,包含我们要预测的列和target

  • 问题类型:这是我们面临的问题。请检查以下链接,了解更多信息:problem types

  • 指标:这是为了评估我们模型的性能,您必须选择一个来正确评估它。例如,如果你有TrueFalse,你可能想在每次你的模型出错时受到惩罚,就像他选择True作为答案一样,他可能会得到50%的正确率,而这是一个具有0.5准确性的模型,它不正确,因为它只回答True。我希望这个{a2}能帮助你更好地理解

  • 交叉验证:crossvalidation sklearn

  • 训练和测试分割:我们将数据集分割成若干部分,我们将使用部分数据train和其他数据test或评估我们的模型

在下面的示例中,可以使用流行库sklearn完成大部分操作:

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import make_scorer, accuracy_score
from sklearn.model_selection import cross_val_score, train_test_split

dataset = load_iris()

X_train, X_test, y_train, y_test = train_test_split(
    dataset.data, dataset.target, test_size=0.3, random_state=0)
# No corss validation
model = RandomForestClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
accuracy_score(y_test, predictions)

# With cross validation
model = RandomForestClassifier()
accuracy_scorer = make_scorer(accuracy_score)

scores = cross_val_score(model, X_train, y_train, scoring=accuracy_scorer)
scores.mean()

这个例子是一个非常简单的例子,其中数据被处理并且很简单,而且在大多数情况下,这个问题都以0.9的精度得到了解决。为了解决一个有更多列的问题,您可能需要进行更多的深入研究。我的建议是深入研究kaggle,寻找笔记本或内核,并举例说明人们处理某种数据集并获得给定问题的基线,您可能会学到新的主题,如OneHotEncoding{}等等

还有一些ara库可以为您实现这一点,或者使其自动化,并可以解决分类问题,请查看MLBlocksATM

相关问题 更多 >