Documentation ¶
Index ¶
- type XchainCryptoClient
- func (xcc *XchainCryptoClient) CalculateSigmaI(content, index, randomV, randomU, privkey []byte, round int64) ([]byte, error)
- func (xcc *XchainCryptoClient) GenPairingChallenge(indexList []int, round int64, privkey []byte) ([][]byte, [][]byte, []byte, error)
- func (xcc *XchainCryptoClient) GenPairingKeyPair() ([]byte, []byte, error)
- func (xcc *XchainCryptoClient) GenerateEntropy(bitSize int) ([]byte, error)
- func (xcc *XchainCryptoClient) GeneratePaillierPrivateKey(primeLength int) (*paillier.PrivateKey, error)
- func (xcc *XchainCryptoClient) GetMerkleRoot(objects [][]byte) []byte
- func (xcc *XchainCryptoClient) HashUsingSha256(data []byte) []byte
- func (xcc *XchainCryptoClient) LinRegEvaluateModelSuperParamByCV(sourceDataSet *ml_common.DataSet, targetFeatureName string, ...) float64
- func (xcc *XchainCryptoClient) LinRegImportFeatures(fileRows [][]string) ([]*ml_common.DataFeature, error)
- func (xcc *XchainCryptoClient) LinRegPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet, targetFeatureName string) *ml_common.TrainDataSet
- func (xcc *XchainCryptoClient) LinRegStandardizeDataSet(sourceDataSet *ml_common.DataSet) *ml_common.StandardizedDataSet
- func (xcc *XchainCryptoClient) LinRegTrainModel(trainDataSet *ml_common.TrainDataSet, alpha float64, amplitude float64, ...) *ml_common.Model
- func (xcc *XchainCryptoClient) LinRegVLCalCost(costMap map[int]float64) float64
- func (xcc *XchainCryptoClient) LinRegVLCalEncGradient(localPart *linear_vertical.RawLocalGradientPart, ...) (*ml_common.EncLocalGradient, error)
- func (xcc *XchainCryptoClient) LinRegVLCalEncGradientTagPart(localPart *linear_vertical.RawLocalGradientPart, ...) (*ml_common.EncLocalGradient, error)
- func (xcc *XchainCryptoClient) LinRegVLCalGradient(gradMap map[int]float64) float64
- func (xcc *XchainCryptoClient) LinRegVLCalGradientWithReg(thetas []float64, gradMap map[int]float64, featureIndex int, regMode int, ...) float64
- func (xcc *XchainCryptoClient) LinRegVLCalLocalGradAndCost(thetas []float64, trainSet [][]float64, accuracy int, regMode int, ...) (*linear_vertical.LocalGradientPart, error)
- func (xcc *XchainCryptoClient) LinRegVLCalLocalGradAndCostTagPart(thetas []float64, trainSet [][]float64, accuracy int, regMode int, ...) (*linear_vertical.LocalGradientPart, error)
- func (xcc *XchainCryptoClient) LinRegVLDeStandardizeOutput(ybar, sigma, output float64) float64
- func (xcc *XchainCryptoClient) LinRegVLDecryptCost(encCostMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
- func (xcc *XchainCryptoClient) LinRegVLDecryptGradient(encGradMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
- func (xcc *XchainCryptoClient) LinRegVLEvaluateEncCost(localPart *linear_vertical.RawLocalGradientPart, ...) (*ml_common.EncLocalCost, error)
- func (xcc *XchainCryptoClient) LinRegVLEvaluateEncCostTagPart(localPart *linear_vertical.RawLocalGradientPart, ...) (*ml_common.EncLocalCost, error)
- func (xcc *XchainCryptoClient) LinRegVLPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet) *ml_common.TrainDataSet
- func (xcc *XchainCryptoClient) LinRegVLPreProcessDataSetTagPart(sourceDataSet *ml_common.StandardizedDataSet, targetFeatureName string) *ml_common.TrainDataSet
- func (xcc *XchainCryptoClient) LinRegVLPredictLocalPart(thetas, standardizedInput map[string]float64) float64
- func (xcc *XchainCryptoClient) LinRegVLPredictLocalTagPart(thetas, standardizedInput map[string]float64) float64
- func (xcc *XchainCryptoClient) LinRegVLRetrieveRealCost(decCostMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
- func (xcc *XchainCryptoClient) LinRegVLRetrieveRealGradient(decGradMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
- func (xcc *XchainCryptoClient) LinRegVLStandardizeDataSet(sourceDataSet *ml_common.DataSet) *ml_common.StandardizedDataSet
- func (xcc *XchainCryptoClient) LinRegVLStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64
- func (xcc *XchainCryptoClient) LogRegImportFeatures(fileRows [][]string, label, labelName string) ([]*ml_common.DataFeature, error)
- func (xcc *XchainCryptoClient) LogRegPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet, labelName string) *ml_common.TrainDataSet
- func (xcc *XchainCryptoClient) LogRegPredictByLocalInput(thetas, standardizedInput map[string]float64) float64
- func (xcc *XchainCryptoClient) LogRegStandardizeDataSet(sourceDataSet *ml_common.DataSet, labelName string) *ml_common.StandardizedDataSet
- func (xcc *XchainCryptoClient) LogRegStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64
- func (xcc *XchainCryptoClient) LogRegTrainModel(trainDataSet *ml_common.TrainDataSet, alpha float64, amplitude float64, ...) *ml_common.Model
- func (xcc *XchainCryptoClient) LogRegVLCalCost(costMap map[int]float64) float64
- func (xcc *XchainCryptoClient) LogRegVLCalEncGradient(localPart *logic_vertical.RawLocalGradAndCostPart, ...) (*ml_common.EncLocalGradient, error)
- func (xcc *XchainCryptoClient) LogRegVLCalEncGradientTagPart(localPart *logic_vertical.RawLocalGradAndCostPart, ...) (*ml_common.EncLocalGradient, error)
- func (xcc *XchainCryptoClient) LogRegVLCalGradient(gradMap map[int]float64) float64
- func (xcc *XchainCryptoClient) LogRegVLCalGradientWithReg(thetas []float64, gradMap map[int]float64, featureIndex int, regMode int, ...) float64
- func (xcc *XchainCryptoClient) LogRegVLCalLocalGradAndCost(thetas []float64, trainSet [][]float64, accuracy int, regMode int, ...) (*logic_vertical.LocalGradAndCostPart, error)
- func (xcc *XchainCryptoClient) LogRegVLCalLocalGradAndCostTagPart(thetas []float64, trainSet [][]float64, accuracy int, regMode int, ...) (*logic_vertical.LocalGradAndCostPart, error)
- func (xcc *XchainCryptoClient) LogRegVLDecryptCost(encCostMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
- func (xcc *XchainCryptoClient) LogRegVLDecryptGradient(encGradMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
- func (xcc *XchainCryptoClient) LogRegVLEvaluateEncCost(localPart *logic_vertical.RawLocalGradAndCostPart, ...) (*ml_common.EncLocalCost, error)
- func (xcc *XchainCryptoClient) LogRegVLEvaluateEncCostTagPart(localPart *logic_vertical.RawLocalGradAndCostPart, ...) (*ml_common.EncLocalCost, error)
- func (xcc *XchainCryptoClient) LogRegVLPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet) *ml_common.TrainDataSet
- func (xcc *XchainCryptoClient) LogRegVLPreProcessDataSetTagPart(sourceDataSet *ml_common.StandardizedDataSet, label string) *ml_common.TrainDataSet
- func (xcc *XchainCryptoClient) LogRegVLPredictLocalPart(thetas, standardizedInput map[string]float64) float64
- func (xcc *XchainCryptoClient) LogRegVLPredictLocalTagPart(thetas, standardizedInput map[string]float64) float64
- func (xcc *XchainCryptoClient) LogRegVLRetrieveRealCost(decCostMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
- func (xcc *XchainCryptoClient) LogRegVLRetrieveRealGradient(decGradMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
- func (xcc *XchainCryptoClient) LogRegVLStandardizeDataSet(sourceDataSet *ml_common.DataSet, label string) *ml_common.StandardizedDataSet
- func (xcc *XchainCryptoClient) LogRegVLStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64
- func (xcc *XchainCryptoClient) PSIEncryptSampleIDSet(sampleID []string, publicKey *ecdsa.PublicKey) *linear_vertical.EncSet
- func (xcc *XchainCryptoClient) PSIReEncryptIDSet(encSet *linear_vertical.EncSet, privateKey *ecdsa.PrivateKey) *linear_vertical.EncSet
- func (xcc *XchainCryptoClient) PSIntersect(sampleID []string, reEncSetLocal *linear_vertical.EncSet, ...) []string
- func (xcc *XchainCryptoClient) ProvePairingChallenge(content, indices, randVs, sigmas [][]byte, rand []byte) ([]byte, []byte, error)
- func (xcc *XchainCryptoClient) RandomWithinPairingOrder() ([]byte, error)
- func (xcc *XchainCryptoClient) SecretRetrieve(shares map[int]*big.Int) ([]byte, error)
- func (xcc *XchainCryptoClient) SecretSplit(totalShareNumber, minimumShareNumber int, secret []byte) (shares map[int]*big.Int, err error)
- func (xcc *XchainCryptoClient) VerifyPairingProof(sigma, mu, randV, randU, pubkey []byte, indices, randVs [][]byte) (bool, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type XchainCryptoClient ¶
type XchainCryptoClient struct { }
func (*XchainCryptoClient) CalculateSigmaI ¶
func (xcc *XchainCryptoClient) CalculateSigmaI(content, index, randomV, randomU, privkey []byte, round int64) ([]byte, error)
CalculateSigmaI 为指定数据块生成证明辅助信息 - content 该数据块的内容 - index 数据块对于原始数据的的索引 - randomV 小于椭圆曲线阶order的随机数 - randomU 小于椭圆曲线阶order的随机数 - privkey 副本保持证明私钥
func (*XchainCryptoClient) GenPairingChallenge ¶
func (xcc *XchainCryptoClient) GenPairingChallenge(indexList []int, round int64, privkey []byte) ([][]byte, [][]byte, []byte, error)
GenPairingChallenge 随机生成副本保持证明挑战信息 - indexList 为要验证的索引列表 - round 为挑战轮数 - privkey 为副本保持证明私钥
func (*XchainCryptoClient) GenPairingKeyPair ¶
func (xcc *XchainCryptoClient) GenPairingKeyPair() ([]byte, []byte, error)
GenPairingKeyPair 随机生成基于双线性映射副本保持证明的公私钥对
func (*XchainCryptoClient) GenerateEntropy ¶
func (xcc *XchainCryptoClient) GenerateEntropy(bitSize int) ([]byte, error)
GenerateEntropy 产生指定比特长度的随机熵
func (*XchainCryptoClient) GeneratePaillierPrivateKey ¶
func (xcc *XchainCryptoClient) GeneratePaillierPrivateKey(primeLength int) (*paillier.PrivateKey, error)
GeneratePaillierPrivateKey 生成指定比特长度的paillier同态公私钥对
func (*XchainCryptoClient) GetMerkleRoot ¶
func (xcc *XchainCryptoClient) GetMerkleRoot(objects [][]byte) []byte
GetMerkleRoot 计算梅克尔树根
func (*XchainCryptoClient) HashUsingSha256 ¶
func (xcc *XchainCryptoClient) HashUsingSha256(data []byte) []byte
HashUsingSha256 使用SHA256做单次哈希运算
func (*XchainCryptoClient) LinRegEvaluateModelSuperParamByCV ¶
func (xcc *XchainCryptoClient) LinRegEvaluateModelSuperParamByCV(sourceDataSet *ml_common.DataSet, targetFeatureName string, alpha, amplitude float64, regMode int, regParam float64, cvMode int, cvParam int) float64
LinRegEvaluateModelSuperParamByCV 通过交叉验证计算指定正则参数对应的模型均方根误差 - sourceDataSet 原始样本数据 - targetFeatureName 目标特征名称 - alpha 训练学习率 - amplitude 训练目标值 - regMode 正则模式 - regParam 正则参数 - cvMode 交叉验证模式 - cvParam 交叉验证参数
func (*XchainCryptoClient) LinRegImportFeatures ¶
func (xcc *XchainCryptoClient) LinRegImportFeatures(fileRows [][]string) ([]*ml_common.DataFeature, error)
LinRegImportFeatures 从文件导入用于多元线性回归的数据特征
func (*XchainCryptoClient) LinRegPreProcessDataSet ¶
func (xcc *XchainCryptoClient) LinRegPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet, targetFeatureName string) *ml_common.TrainDataSet
LinRegPreProcessDataSet 预处理样本数据
func (*XchainCryptoClient) LinRegStandardizeDataSet ¶
func (xcc *XchainCryptoClient) LinRegStandardizeDataSet(sourceDataSet *ml_common.DataSet) *ml_common.StandardizedDataSet
--- 多元线性回归 start --- LinRegStandardizeDataSet 标准化样本数据,每个特征对应的样本均值变为0,标准差变为1
func (*XchainCryptoClient) LinRegTrainModel ¶
func (xcc *XchainCryptoClient) LinRegTrainModel(trainDataSet *ml_common.TrainDataSet, alpha float64, amplitude float64, regMode int, regParam float64) *ml_common.Model
LinRegTrainModel 多元线性回归模型训练 - trainDataSet 预处理过的训练数据 - alpha 训练学习率 - amplitude 训练目标值 - regMode 正则模式 - regParam 正则参数
func (*XchainCryptoClient) LinRegVLCalCost ¶
func (xcc *XchainCryptoClient) LinRegVLCalCost(costMap map[int]float64) float64
LinRegVLCalCost 根据还原的损失信息计算损失值
func (*XchainCryptoClient) LinRegVLCalEncGradient ¶
func (xcc *XchainCryptoClient) LinRegVLCalEncGradient(localPart *linear_vertical.RawLocalGradientPart, tagPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)
LinRegVLCalEncGradient 非标签方计算加密的梯度,用标签方的同态公钥加密 - localPart 非标签方本地的明文梯度数据 - tagPart 标签方的加密梯度数据 - trainSet 非标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 标签方同态公钥
func (*XchainCryptoClient) LinRegVLCalEncGradientTagPart ¶
func (xcc *XchainCryptoClient) LinRegVLCalEncGradientTagPart(localPart *linear_vertical.RawLocalGradientPart, otherPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)
LinRegVLCalEncGradientTagPart 标签方计算加密的梯度,用非标签方的同态公钥加密 - localPart 标签方本地的明文梯度数据 - otherPart 非标签方的加密梯度数据 - trainSet 标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 非标签方同态公钥
func (*XchainCryptoClient) LinRegVLCalGradient ¶
func (xcc *XchainCryptoClient) LinRegVLCalGradient(gradMap map[int]float64) float64
LinRegVLCalGradient 根据还原的明文梯度数据计算梯度值
func (*XchainCryptoClient) LinRegVLCalGradientWithReg ¶
func (xcc *XchainCryptoClient) LinRegVLCalGradientWithReg(thetas []float64, gradMap map[int]float64, featureIndex int, regMode int, regParam float64) float64
LinRegVLCalGradient 根据还原的明文梯度数据计算梯度值
func (*XchainCryptoClient) LinRegVLCalLocalGradAndCost ¶
func (xcc *XchainCryptoClient) LinRegVLCalLocalGradAndCost(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*linear_vertical.LocalGradientPart, error)
LinRegVLCalLocalGradAndCost 非标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精度 - regMode 正则模式 - regParam 正则参数 - publicKey 非标签方同态公钥
func (*XchainCryptoClient) LinRegVLCalLocalGradAndCostTagPart ¶
func (xcc *XchainCryptoClient) LinRegVLCalLocalGradAndCostTagPart(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*linear_vertical.LocalGradientPart, error)
LinRegVLCalLocalGradAndCostTagPart 标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精度 - regMode 正则模式 - regParam 正则参数 - publicKey 标签方同态公钥
func (*XchainCryptoClient) LinRegVLDeStandardizeOutput ¶
func (xcc *XchainCryptoClient) LinRegVLDeStandardizeOutput(ybar, sigma, output float64) float64
LinRegVLDeStandardizeOutput 逆标准化得到最终预测结果 - ybar 目标特征对应的样本均值 - sigma 目标特征对应的样本标准差 - output 标准化样本的预测结值
func (*XchainCryptoClient) LinRegVLDecryptCost ¶
func (xcc *XchainCryptoClient) LinRegVLDecryptCost(encCostMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
LinRegVLDecryptCost 为其他方解密带噪音的损失信息 - encCostMap 加密的损失信息 - privateKey 己方同态私钥
func (*XchainCryptoClient) LinRegVLDecryptGradient ¶
func (xcc *XchainCryptoClient) LinRegVLDecryptGradient(encGradMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
LinRegVLDecryptGradient 为其他方解密带噪音的梯度信息 - encGradMap 加密的梯度信息 - privateKey 己方同态私钥
func (*XchainCryptoClient) LinRegVLEvaluateEncCost ¶
func (xcc *XchainCryptoClient) LinRegVLEvaluateEncCost(localPart *linear_vertical.RawLocalGradientPart, tagPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)
LinRegVLEvaluateEncCost 非标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - tagPart 标签方的加密损失数据 - trainSet 非标签方训练样本集合 - publicKey 标签方同态公钥
func (*XchainCryptoClient) LinRegVLEvaluateEncCostTagPart ¶
func (xcc *XchainCryptoClient) LinRegVLEvaluateEncCostTagPart(localPart *linear_vertical.RawLocalGradientPart, otherPart *linear_vertical.EncLocalGradientPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)
LinRegVLEvaluateEncCostTagPart 标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - otherPart 非标签方的加密损失数据 - trainSet 标签方训练样本集合 - publicKey 非标签方同态公钥
func (*XchainCryptoClient) LinRegVLPreProcessDataSet ¶
func (xcc *XchainCryptoClient) LinRegVLPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet) *ml_common.TrainDataSet
LinRegVLPreProcessDataSet 非标签方预处理样本数据
func (*XchainCryptoClient) LinRegVLPreProcessDataSetTagPart ¶
func (xcc *XchainCryptoClient) LinRegVLPreProcessDataSetTagPart(sourceDataSet *ml_common.StandardizedDataSet, targetFeatureName string) *ml_common.TrainDataSet
LinRegVLPreProcessDataSetTagPart 标签方预处理样本数据
func (*XchainCryptoClient) LinRegVLPredictLocalPart ¶
func (xcc *XchainCryptoClient) LinRegVLPredictLocalPart(thetas, standardizedInput map[string]float64) float64
LinRegVLPredictLocalPart 非标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据
func (*XchainCryptoClient) LinRegVLPredictLocalTagPart ¶
func (xcc *XchainCryptoClient) LinRegVLPredictLocalTagPart(thetas, standardizedInput map[string]float64) float64
LinRegVLPredictLocalTagPart 标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据
func (*XchainCryptoClient) LinRegVLRetrieveRealCost ¶
func (xcc *XchainCryptoClient) LinRegVLRetrieveRealCost(decCostMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
LinRegVLRetrieveRealCost 还原真实的损失 - decCostMap 解密的损失信息 - accuracy 同态加解密精度 - randomInt 损失的噪音值
func (*XchainCryptoClient) LinRegVLRetrieveRealGradient ¶
func (xcc *XchainCryptoClient) LinRegVLRetrieveRealGradient(decGradMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
LinRegVLRetrieveRealGradient 还原真实的梯度数据 - decGradMap 解密的梯度信息 - accuracy 同态加解密精度 - randomInt 己方梯度的噪音值
func (*XchainCryptoClient) LinRegVLStandardizeDataSet ¶
func (xcc *XchainCryptoClient) LinRegVLStandardizeDataSet(sourceDataSet *ml_common.DataSet) *ml_common.StandardizedDataSet
LinRegVLStandardizeDataSet 标准化样本数据,每个特征对应的样本均值变为0,标准差变为1
func (*XchainCryptoClient) LinRegVLStandardizeLocalInput ¶
func (xcc *XchainCryptoClient) LinRegVLStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64
LinRegVLStandardizeLocalInput 标准化样本数据 - xbars 特征对应的均值map - sigmas 特征对应的方差map - input 特征对应的样本值
func (*XchainCryptoClient) LogRegImportFeatures ¶
func (xcc *XchainCryptoClient) LogRegImportFeatures(fileRows [][]string, label, labelName string) ([]*ml_common.DataFeature, error)
LogRegImportFeatures 从文件导入用于多元逻辑回归的数据特征 - fileRows 样本数据 - label 目标特征 - labelName 目标训练值
func (*XchainCryptoClient) LogRegPreProcessDataSet ¶
func (xcc *XchainCryptoClient) LogRegPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet, labelName string) *ml_common.TrainDataSet
LogRegPreProcessDataSet 预处理样本数据
func (*XchainCryptoClient) LogRegPredictByLocalInput ¶
func (xcc *XchainCryptoClient) LogRegPredictByLocalInput(thetas, standardizedInput map[string]float64) float64
LogRegPredictByLocalInput 计算预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据
func (*XchainCryptoClient) LogRegStandardizeDataSet ¶
func (xcc *XchainCryptoClient) LogRegStandardizeDataSet(sourceDataSet *ml_common.DataSet, labelName string) *ml_common.StandardizedDataSet
--- 多元逻辑回归 start --- LogRegStandardizeDataSet 标准化样本数据,除目标特征,其余特征对应的样本数值均值变为0,标准差变为1
func (*XchainCryptoClient) LogRegStandardizeLocalInput ¶
func (xcc *XchainCryptoClient) LogRegStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64
LogRegStandardizeLocalInput 标准化样本数据 - xbars 特征对应的均值map - sigmas 特征对应的方差map - input 特征对应的样本值
func (*XchainCryptoClient) LogRegTrainModel ¶
func (xcc *XchainCryptoClient) LogRegTrainModel(trainDataSet *ml_common.TrainDataSet, alpha float64, amplitude float64, regMode int, regParam float64) *ml_common.Model
LogRegTrainModel 多元逻辑回归模型训练 - trainDataSet 预处理过的训练数据 - alpha 训练学习率 - amplitude 训练目标值 - regMode 正则模式 - regParam 正则参数
func (*XchainCryptoClient) LogRegVLCalCost ¶
func (xcc *XchainCryptoClient) LogRegVLCalCost(costMap map[int]float64) float64
LogRegVLCalCost 根据明文损失信息获取损失值
func (*XchainCryptoClient) LogRegVLCalEncGradient ¶
func (xcc *XchainCryptoClient) LogRegVLCalEncGradient(localPart *logic_vertical.RawLocalGradAndCostPart, tagPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)
LogRegVLCalEncGradient 非标签方计算加密的梯度,用其他参与方的同态公钥加密 - localPart 非标签方本地的明文梯度数据 - tagPart 标签方的加密梯度数据 - trainSet 非标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 标签方同态公钥
func (*XchainCryptoClient) LogRegVLCalEncGradientTagPart ¶
func (xcc *XchainCryptoClient) LogRegVLCalEncGradientTagPart(localPart *logic_vertical.RawLocalGradAndCostPart, otherPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, featureIndex, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalGradient, error)
LogRegVLCalEncGradientTagPart 标签方计算加密的梯度,用其他参与方的同态公钥加密 - localPart 标签方本地的明文梯度数据 - otherPart 非标签方的加密梯度数据 - trainSet 标签方训练样本集合 - featureIndex 指定特征的索引 - accuracy 同态加解密精度 - publicKey 非标签方同态公钥
func (*XchainCryptoClient) LogRegVLCalGradient ¶
func (xcc *XchainCryptoClient) LogRegVLCalGradient(gradMap map[int]float64) float64
LogRegVLCalGradient 根据明文梯度信息获取梯度值
func (*XchainCryptoClient) LogRegVLCalGradientWithReg ¶
func (*XchainCryptoClient) LogRegVLCalLocalGradAndCost ¶
func (xcc *XchainCryptoClient) LogRegVLCalLocalGradAndCost(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*logic_vertical.LocalGradAndCostPart, error)
LogRegVLCalLocalGradAndCost 非标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精确到小数点后的位数 - regMode 正则模式 - regParam 正则参数 - publicKey 非标签方同态公钥
func (*XchainCryptoClient) LogRegVLCalLocalGradAndCostTagPart ¶
func (xcc *XchainCryptoClient) LogRegVLCalLocalGradAndCostTagPart(thetas []float64, trainSet [][]float64, accuracy int, regMode int, regParam float64, publicKey *paillier.PublicKey) (*logic_vertical.LocalGradAndCostPart, error)
LogRegVLCalLocalGradAndCostTagPart 标签方计算本地的梯度和损失数据 - thetas 上一轮训练得到的模型参数 - trainSet 预处理过的训练数据 - accuracy 同态加解密精确到小数点后的位数 - regMode 正则模式 - regParam 正则参数 - publicKey 标签方同态公钥
func (*XchainCryptoClient) LogRegVLDecryptCost ¶
func (xcc *XchainCryptoClient) LogRegVLDecryptCost(encCostMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
LogRegVLDecryptCost 为其他方解密带噪音的损失信息 - encCostMap 加密的损失信息 - privateKey 己方同态私钥
func (*XchainCryptoClient) LogRegVLDecryptGradient ¶
func (xcc *XchainCryptoClient) LogRegVLDecryptGradient(encGradMap map[int]*big.Int, privateKey *paillier.PrivateKey) map[int]*big.Int
LogRegVLDecryptGradient 为其他方解密带噪音的梯度信息 - encGradMap 加密的梯度信息 - privateKey 己方同态私钥
func (*XchainCryptoClient) LogRegVLEvaluateEncCost ¶
func (xcc *XchainCryptoClient) LogRegVLEvaluateEncCost(localPart *logic_vertical.RawLocalGradAndCostPart, tagPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)
LogRegVLEvaluateEncCost 非标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - tagPart 标签方的加密损失数据 - trainSet 非标签方训练样本集合 - accuracy 同态加解密精度 - publicKey 标签方同态公钥
func (*XchainCryptoClient) LogRegVLEvaluateEncCostTagPart ¶
func (xcc *XchainCryptoClient) LogRegVLEvaluateEncCostTagPart(localPart *logic_vertical.RawLocalGradAndCostPart, otherPart *logic_vertical.EncLocalGradAndCostPart, trainSet [][]float64, accuracy int, publicKey *paillier.PublicKey) (*ml_common.EncLocalCost, error)
LogRegVLEvaluateEncCostTagPart 标签方计算加密的损失,用其他参与方的同态公钥加密 - localPart 本地的明文损失数据 - otherPart 非标签方的加密损失数据 - trainSet 标签方训练样本集合 - accuracy 同态加解密精度 - publicKey 非标签方同态公钥
func (*XchainCryptoClient) LogRegVLPreProcessDataSet ¶
func (xcc *XchainCryptoClient) LogRegVLPreProcessDataSet(sourceDataSet *ml_common.StandardizedDataSet) *ml_common.TrainDataSet
LogRegVLPreProcessDataSet 非标签方预处理样本数据
func (*XchainCryptoClient) LogRegVLPreProcessDataSetTagPart ¶
func (xcc *XchainCryptoClient) LogRegVLPreProcessDataSetTagPart(sourceDataSet *ml_common.StandardizedDataSet, label string) *ml_common.TrainDataSet
LogRegVLPreProcessDataSetTagPart 标签方预处理样本数据
func (*XchainCryptoClient) LogRegVLPredictLocalPart ¶
func (xcc *XchainCryptoClient) LogRegVLPredictLocalPart(thetas, standardizedInput map[string]float64) float64
LogRegVLPredictLocalPart 非标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据
func (*XchainCryptoClient) LogRegVLPredictLocalTagPart ¶
func (xcc *XchainCryptoClient) LogRegVLPredictLocalTagPart(thetas, standardizedInput map[string]float64) float64
LogRegVLPredictLocalTagPart 标签方计算本地预测值 - thetas 训练得到的模型 - standardizedInput 标准化后的样本数据
func (*XchainCryptoClient) LogRegVLRetrieveRealCost ¶
func (xcc *XchainCryptoClient) LogRegVLRetrieveRealCost(decCostMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
LogRegVLRetrieveRealCost 还原真实的损失信息 - decCostMap 解密的损失信息 - accuracy 同态加解密精度 - randomInt 损失的噪音值
func (*XchainCryptoClient) LogRegVLRetrieveRealGradient ¶
func (xcc *XchainCryptoClient) LogRegVLRetrieveRealGradient(decGradMap map[int]*big.Int, accuracy int, randomInt *big.Int) map[int]float64
LogRegVLRetrieveRealGradient 还原真实的梯度信息 - decGradMap 解密的梯度信息 - accuracy 同态加解密精度 - randomInt 己方梯度的噪音值
func (*XchainCryptoClient) LogRegVLStandardizeDataSet ¶
func (xcc *XchainCryptoClient) LogRegVLStandardizeDataSet(sourceDataSet *ml_common.DataSet, label string) *ml_common.StandardizedDataSet
LogRegVLStandardizeDataSet 标准化样本数据,除目标特征,其余特征对应的样本数值均值变为0,标准差变为1 - sourceDataSet 原始样本数据 - label 目标特征
func (*XchainCryptoClient) LogRegVLStandardizeLocalInput ¶
func (xcc *XchainCryptoClient) LogRegVLStandardizeLocalInput(xbars, sigmas, input map[string]float64) map[string]float64
LogRegVLStandardizeLocalInput 标准化样本数据 - xbars 特征对应的均值map - sigmas 特征对应的方差map - input 特征对应的样本值
func (*XchainCryptoClient) PSIEncryptSampleIDSet ¶
func (xcc *XchainCryptoClient) PSIEncryptSampleIDSet(sampleID []string, publicKey *ecdsa.PublicKey) *linear_vertical.EncSet
PSIEncryptSampleIDSet 利用同态公钥加密样本的ID列表 - sampleID 待加密的ID列表 - publicKey 同态公钥
func (*XchainCryptoClient) PSIReEncryptIDSet ¶
func (xcc *XchainCryptoClient) PSIReEncryptIDSet(encSet *linear_vertical.EncSet, privateKey *ecdsa.PrivateKey) *linear_vertical.EncSet
PSIReEncryptIDSet 利用同态私钥二次加密样本ID列表 - encSet 一次加密后的ID列表 - privateKey 同态私钥
func (*XchainCryptoClient) PSIntersect ¶
func (xcc *XchainCryptoClient) PSIntersect(sampleID []string, reEncSetLocal *linear_vertical.EncSet, reEncSetOthers []*linear_vertical.EncSet) []string
PSIntersect 计算多方加密ID列表的交集 - sampleID 原始ID列表 - reEncSetLocal 己方二次加密后的ID列表 - reEncSetOthers 其他方二次加密后的ID列表
func (*XchainCryptoClient) ProvePairingChallenge ¶
func (xcc *XchainCryptoClient) ProvePairingChallenge(content, indices, randVs, sigmas [][]byte, rand []byte) ([]byte, []byte, error)
ProvePairingChallenge 生成挑战的应答信息 - content 要验证的数据块内容列表 - indices 要验证的索引列表 - randVs 调整生成的随机数列表 - sigmas 要验证的数据块对应的辅助证明信息列表
func (*XchainCryptoClient) RandomWithinPairingOrder ¶
func (xcc *XchainCryptoClient) RandomWithinPairingOrder() ([]byte, error)
RandomWithinPairingOrder 生成小于椭圆曲线order的随机数
func (*XchainCryptoClient) SecretRetrieve ¶
SecretRetrieve 利用碎片还原秘密值
func (*XchainCryptoClient) SecretSplit ¶
func (xcc *XchainCryptoClient) SecretSplit(totalShareNumber, minimumShareNumber int, secret []byte) (shares map[int]*big.Int, err error)
SecretSplit 将秘密信息分割为指定数量的碎片 - totalShareNumber 需要分割的碎片数量 - minimumShareNumber 能够还原出原信息的最少碎片数量 - secret 待分割的秘密信息
func (*XchainCryptoClient) VerifyPairingProof ¶
func (xcc *XchainCryptoClient) VerifyPairingProof(sigma, mu, randV, randU, pubkey []byte, indices, randVs [][]byte) (bool, error)
VerifyPairingProof 挑战验证信息 - sigma 证明生成的应答信息 - mu 证明生成的应答信息 - randV 验证者生成的随机数 - randU 验证者生成的随机数 - pubkey 验证者的副本保持证明公钥 - indices 要验证的索引列表 - randVs 调整生成的随机数列表