Encryption 加密数据的机器学习

Encryption 加密数据的机器学习,encryption,go,machine-learning,Encryption,Go,Machine Learning,我想用加密数据实现一个机器学习模型(KNN或随机森林) 我的数据是用HElib(同态加密)加密的,这意味着我仍然可以对加密的数据执行ADD&MUL 我的问题是:我必须用GO重新实现所有的机器学习算法,还是可以使用一点“golearn”库 使用golearn lib的GO KNN实现示例: rawData, err := base.ParseCSVToInstances("../datasets/iris_headers.csv", true) if err != nil { panic(

我想用加密数据实现一个机器学习模型(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包解密版本;


然后,您可以将客户
ParseCSVToInstances
函数的原始数据输出正常传递给KNN函数
InstancesTraineTestSplit

感谢您的支持unswer@LieHili-增加一项,并且不清楚您的情况,作为基本项目的fork/pull请求,尝试进行所需的更改总是很好的。也许其他人也能从你的改变中获得价值。你实现了吗?