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