簡體   English   中英

機器學習 - 如何根據過去的特征預測一組固定字段

[英]Machine Learning - How to predict set of fixed fields based on past features

我有一個相當大的數據集(> 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                                        |

所以我們這里有一份過去發貨的清單。 它顯示了托運人和收貨人之間的關系,以及貨物的來源和目的地。

根據這些過去的數據,我希望能夠通過查看consignee codeorigin來預測何時添加新貨件。

例子

以以下新預訂為例:

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

如何訓練模型來預測destination ML 中的這個領域是指什么?

在深入研究機器學習之前,理解概念很重要:

  • 數據集:這是您的數據集合,其中包含我們要預測的列和target列。

  • 問題類型:這是我們面臨的問題。 請查看以下鏈接,了解更多相關信息: 問題類型

  • 指標:這是評估我們模型的性能,您必須選擇一個才能正確評估它。 例如,如果你有TrueFalse你可能想要在每次你的模型犯錯時受到懲罰,就好像他選擇True作為答案一樣,他可能會得到 50% 的正確,那是一個0.5准確度的模型,因為它只回答是不正確的True 我希望這篇文章可以幫助您更好地理解。

  • 交叉驗證: 交叉驗證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 FeatureExtractions等等。

還有一些庫可以為您執行此操作,或者將其自動化並可以解決分類問題,請查看MLBlocksATM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM