python - 机器学习 - 如何根据过去的特征预测一组固定字段

标签 python machine-learning prediction

我有一个相当大的数据集(> 100k 行),其中包含物流运输信息。 (导出出货量)

数据集如下所示:

|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                                        |

我们这里有一份过去发货的列表。它显示了发货人和收货人之间的关系,以及 cargo 的来源和目的地。

根据过去的数据,我希望能够通过查看收货人代码原产地来预测何时添加新货件。

示例

以下新预订为例:

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

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

最佳答案

在深入研究机器学习之前,理解概念很重要:

  • 数据集:这是您的数据集合,其中包含我们要预测的列和目标列。

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

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

  • 交叉验证:crossvalidation sklearn .

  • 训练和测试分割:我们将数据集分割成多个部分,我们将使用数据的某些部分来训练,其他部分来测试或评估我们的数据模型。

大部分工作都可以通过流行的库 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 FeatureExtractions 等新主题。

还有 ara 库可以为您执行此操作,或将其自动化并可以解决分类问题,请查看 MLBlocksATM .

关于python - 机器学习 - 如何根据过去的特征预测一组固定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60167533/

相关文章:

c# - 确定C#随机实例的种子

python - 更改 model.py 中的类名后,无需在 Django 中应用任何迁移

python - flask 中的浏览器缓存问题

maven - 如何解决二十个新闻组分类示例中的 "log4j:WARN No appenders could be found for logger"错误

python - Scikit 学习如何为混淆矩阵打印标签?

python - 在 scikit learn 的交叉验证中使用混淆矩阵作为评分指标

python - 使用 ARIMA 进行预测(python statsmodels)

python - 如何强制 pandas .loc 返回系列

python - 通过管道传输到 unistd.h 读取段错误

tensorflow - TensorFlow inception 和 mobilenet 有什么区别