隐语智链·深网(FlowSecureMLP)
今天给大家介绍一个github上很有趣的项目,是实现数据可用不可见的目的的。github地址在这里
https://github.com/YnRen22852/secretflowgryffindor/
本项目使用SecretFlow框架实现了多方安全计算,旨在通过联合数据训练,预测城市居民的年收入是否超过50k。该项目由城市内的三个政府机构合作进行,运用了多层感知器(MLP)模型来进行神经网络训练和预测。为了确保数据的准确性和可靠性,我们进行了全面的统计分析,包括多重共线性检验(VIF)和相关系数矩阵分析,并通过直方图、饼图等可视化方式呈现数据分析结果。此外,我们还开发了一个图形用户界面(GUI),使项目的操作更加简便直观。该项目的实施不仅体现了隐私保护技术在现实中的应用潜力,同时也为政府部门间的数据共享与合作提供了安全、高效的解决方案。
隐语智链·深网(FlowSecureMLP)
一个使用SecretFlow框架和MLP模型来进行神经网络训练和预测的项目!
Team:Gryffindor
探索本项目的文档 »
查看Demo · 报告Bug · 提出新特性
目录
[*]上手指南
[*]运行代码前的环境要求
[*]配置步骤
[*]功能
[*]快速开始
[*]演示视频
[*]文件目录说明
[*]使用到的框架
[*]贡献者
[*]如何参与开源项目
[*]版权说明
[*]鸣谢
上手指南
运行代码前的环境要求
[*]python3
[*]隐语所需要的系统环境Ubuntu/WSL2
[*]隐语所需要的conda环境
ps:第一条和第二条在隐语SecretFlow快速开始中有详细步骤
以下需要在Ubuntu/WSL2中安装相应库
[*]PyQt5库
[*]LibreOffice库
[*]pandas库
[*]numpy库
[*]matplotlib库
[*]seaborn库
配置步骤
配置隐语的第一和第二个环境可以从这里开始
隐语SecretFlow快速开始
[*]PyQt5库安装
pip install PyQt5
[*]LibreOffice库安装
sudo apt install libreoffice
[*]pandas库安装
pip install pandas
[*]numpy库安装
pip install numpy
[*]matplotlib库安装
pip install matplotlib
[*]seaborn库安装
pip install seaborn功能
[*]数据预处理、统计分析以及可视化
1.1. 数据预处理
我们主要使用了隐语SecretFlow库里的隐私求交(PSI)技术对齐数据(secret_psi函数),得到对齐后的数据框。然后我们对数据集进行缺失值填充(Missing_Value_Filling函数),标签编码(label_encode_function函数),有序类别特征处理(Ordinal_Cate_Features函数),One-Hot 编码(One_Hot_Function函数),标准化(standard_scaler_func函数),再经过从VDataFrame到SPUObject格式的数据类型转换(vdataframe_to_spu函数和convert_to_spu函数),这样可以在SPU上进行计算。
以上步骤被汇总到数据处理总函数data_process函数中。
1.2. 数据统计分析
我们主要使用了隐语SecretFlow库里的函数做了对于数据的全表统计分析(full_table_statistics函数)、相关系数矩阵分析(correlation_coefficient_matrix函数)、VIF多重共线性检验(VIF_calculation函数)
1.3. 数据可视化
我们主要使用了seaborn库里的相关函数对数据分别做了直方图、条形图以及饼图。
详见data_visualize函数
[*]训练
我们分别实现了在CPU上和SPU上的神经网络训练(train_auto_grad函数和train_auto_grad_spu函数),相比于在CPU上的用明文数据进行训练,我们通过使用隐语SecretFlow库的SPU,实现了在SPU上的训练。
[*]预测
我们分别实现了在CPU上和SPU上的神经网络预测(predict函数和predict_spu函数),相比于在CPU上的用明文数据进行预测,我们通过使用隐语SecretFlow库的SPU,实现了在SPU上的预测,这样做可以做到数据隐私保护,分布式安全计算,确保了透明性和可追溯性。
快速开始
[*]将以上环境配置好之后,把仓库clone到本地就可以开始了
[*]打开图形话界面直接运行,之后根据图形化界面进行操作
ps:需要激活隐语的环境
演示视频
https://github.com/user-attachments/assets/d2c20784-2f3a-430b-83b0-a6aaf30ec183
文件目录说明
filetree
├── LICENSE
├── README.md
├── /GUI/ #图形化界面
|├── /neural_network_gui.py/
├── /data/#数据处理
│├── /corr_coefficient_matrix.py/
│├── /data_process.py/
│├── /data_visual.py/
│├── /full_table_statistics.py/
│├── /multicollinearity_test.py/
├── /neural_network/ #神经网络模型
│├── /mlp.py/使用到的框架
[*]隐语SecretFlow
贡献者
请阅读贡献者 查阅为该项目做出贡献的开发者。
如何参与开源项目
贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是非常感谢的。
[*]Fork the Project
[*]Create your Feature Branch (git checkout -b feature/AmazingFeature)
[*]Commit your Changes (git commit -m 'Add some AmazingFeature')
[*]Push to the Branch (git push origin feature/AmazingFeature)
[*]Open a Pull Request
版权说明
该项目签署了Apache License 2.0授权许可,详情请参阅 LICENSE
鸣谢
[*]GitHub Emoji Cheat Sheet
[*]Img Shields
[*]Choose an Open Source License
[*]GitHub Pages
[*]Animate.css
[*]隐语
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]