如何应用机器学习技术/如何使用模型输出

问题描述 投票:0回答:1

我是机器学习的新植物科学家。我已经成功编写了代码并遵循了机器学习技术的教程。我的问题是试图了解如何实际应用这些技术来回答现实世界中的问题。我不太了解如何使用模型输出来回答问题。

我最近遵循了一个教程,该教程创建了一种算法来检测信用卡欺诈。所有模型都运行良好,我了解如何构建它们。但是,我如何才能将这些信息转化为明确的答案呢?遵循相同的示例,可以说我为工作编写了此代码,然后我将如何获取真实的信用卡数据并使用此算法对其进行筛选?我真的很想在运行这些模型与从实际数据生成有用的输出之间建立联系。

谢谢大家。

为了简洁起见,我将使用此处找到的相同数据集突出显示一些特定示例:

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)
r machine-learning
1个回答
0
投票

您最好使用三个数据集来开发模型。培训,测试和验证。 (有时使用不同的术语。)这里,训练和测试集用于开发模型。您决定的模型绝不能看到任何验证集。该集合用于查看模型的质量,实际上它将模拟将来可能会出现的真实的新数据。一旦确定模型的性能确实可以接受,就可以返回运行所有数据以生成最终的运营模型。然后,将任何感兴趣的新“实时”数据馈入模型并产生输出。在检测到欺诈的情况下,它将输出一些概率:在这里,您需要人工输入才能确定将事件标记为欺诈的程度,足以保证进一步调查。定期或随着数据的到达或模型性能减弱(欺诈者可能变得更狡猾!),您将重复整个过程。

© www.soinside.com 2019 - 2024. All rights reserved.