繁体   English   中英

机器学习加密数据

[英]Machine Learning on encrypted Data

我想用GO对加密数据实现机器学习模型(KNN或随机森林)。

我的数据使用HElib(同态加密)进行了加密,这意味着我仍然可以对加密的数据执行ADD和MUL。

我的问题是:我是否必须用GO重新实现所有机器学习算法,还是可以使用一些“ golearn”库?

使用golearn lib在GO中实现KNN的示例:

rawData, err := base.ParseCSVToInstances("../datasets/iris_headers.csv", true)
if err != nil {
    panic(err)
}

//Initialises a new KNN classifier
cls := knn.NewKnnClassifier("euclidean", "linear", 2)

//Do a training-test split
trainData, testData := base.InstancesTrainTestSplit(rawData, 0.50)
cls.Fit(trainData)

//Calculates the Euclidean distance and returns the most popular label
predictions, err := cls.Predict(testData)
if err != nil {
    panic(err)
}
fmt.Println(predictions)

// Prints precision/recall metrics
confusionMat, err := evaluation.GetConfusionMatrix(testData, predictions)
if err != nil {
    panic(fmt.Sprintf("Unable to get confusion matrix: %s", err.Error()))
}
fmt.Println(evaluation.GetSummary(confusionMat))

谢谢

您将需要创建自己的基本csv软件包的解密版本。 https://github.com/sjwhitworth/golearn/blob/master/base/csv.go

然后,您可以ParseCSVToInstances将来自客户ParseCSVToInstances函数的rawData输出传递给KNN函数InstancesTrainTestSplit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM