簡體   English   中英

如何應用機器學習技術/如何使用模型輸出

[英]How to apply machine learning techniques / how to use model outputs

我是一名剛接觸機器學習的植物科學家。 我已經成功地編寫了代碼並遵循了機器學習技術教程。 我的問題是試圖了解如何實際應用這些技術來回答現實世界的問題。 我真的不明白如何使用模型輸出來回答問題。

我最近按照教程創建了一種算法來檢測信用卡欺詐。 所有模型都運行良好,我了解如何構建它們; 但是,我究竟如何獲取這些信息並將其轉化為明確的答案? 按照相同的示例,假設我為我的工作編寫了這段代碼,然后我將如何獲取真實的信用卡數據並使用此算法對其進行篩選? 我真的很想在運行這些模型和從真實數據生成有用的輸出之間建立聯系。

謝謝你們。

為了簡潔起見,我將使用此處找到的相同數據集突出顯示一些特定示例:

https://drive.google.com/file/d/1CTAlmlREFRaEN3NoHHitewpqAtWS5cVQ/view

# Import
creditcard_data <- read_csv('PATH')

# Restructure
creditcard_data$Amount=scale(creditcard_data$Amount)
NewData=creditcard_data[,-c(1)]
head(NewData)

#Split
library(caTools)
set.seed(123)
data_sample = sample.split(NewData$Class,SplitRatio=0.80)
train_data = subset(NewData,data_sample==TRUE)
test_data = subset(NewData,data_sample==FALSE)

1) 決策樹

library(rpart)
library(rpart.plot)
decisionTree_model <- rpart(Class ~ . , creditcard_data, method = 'class')
predicted_val <- predict(decisionTree_model, creditcard_data, type = 'class')
probability <- predict(decisionTree_model, creditcard_data, type = 'prob')
rpart.plot(decisionTree_model)

2)人工神經網絡

library(neuralnet)
ANN_model =neuralnet (Class~.,train_data,linear.output=FALSE)
plot(ANN_model)
predANN=compute(ANN_model,test_data)
resultANN=predANN$net.result
resultANN=ifelse(resultANN>0.5,1,0)

3)梯度提升

library(gbm, quietly=TRUE)

# train GBM model
system.time(
  model_gbm <- gbm(Class ~ .
                   , distribution = "bernoulli"
                   , data = rbind(train_data, test_data)
                   , n.trees = 100
                   , interaction.depth = 2
                   , n.minobsinnode = 10
                   , shrinkage = 0.01
                   , bag.fraction = 0.5
                   , train.fraction = nrow(train_data) / (nrow(train_data) + nrow(test_data))
  )
)
# best iteration
gbm.iter = gbm.perf(model_gbm, method = "test")
model.influence = relative.influence(model_gbm, n.trees = gbm.iter, sort. = TRUE)

# plot
plot(model_gbm)

# plot
gbm_test = predict(model_gbm, newdata = test_data, n.trees = gbm.iter)
gbm_auc = roc(test_data$Class, gbm_test, plot = TRUE, col = "red")
print(gbm_auc)

您最好使用三個數據集開發模型。 培訓、測試和驗證。 (有時使用不同的術語。)在這里,訓練集和測試集用於開發模型。 您決定的模型絕不能看到任何驗證集。 該集合用於查看您的模型有多好,實際上它將模擬未來可能會出現在您身上的真實世界的新數據。 一旦您確定您的模型確實執行到可接受的水平,您就可以返回運行所有數據以生成最終的操作模型。 然后,任何感興趣的新“實時”數據都被饋送到模型並產生輸出。 在欺詐檢測的情況下,它會輸出一些概率:在這里,您需要人工輸入來決定在什么級別將事件標記為欺詐,足以保證進一步調查。 每隔一段時間或隨着數據到達或模型性能減弱(欺詐者可能變得更加狡猾!),您將重復整個過程。

暫無
暫無

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

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