找回密码
 立即注册
首页 业界区 安全 隐语智链·深网(FlowSecureMLP)

隐语智链·深网(FlowSecureMLP)

能氐吨 7 天前
今天给大家介绍一个github上很有趣的项目,是实现数据可用不可见的目的的。
github地址在这里
https://github.com/YnRen22852/secretflowgryffindor/
本项目使用SecretFlow框架实现了多方安全计算,旨在通过联合数据训练,预测城市居民的年收入是否超过50k。该项目由城市内的三个政府机构合作进行,运用了多层感知器(MLP)模型来进行神经网络训练和预测。为了确保数据的准确性和可靠性,我们进行了全面的统计分析,包括多重共线性检验(VIF)和相关系数矩阵分析,并通过直方图、饼图等可视化方式呈现数据分析结果。此外,我们还开发了一个图形用户界面(GUI),使项目的操作更加简便直观。该项目的实施不仅体现了隐私保护技术在现实中的应用潜力,同时也为政府部门间的数据共享与合作提供了安全、高效的解决方案。
1.jpg

2.jpg

3.jpg

4.jpg

5.jpg


  隐语智链·深网(FlowSecureMLP)

  
    一个使用SecretFlow框架和MLP模型来进行神经网络训练和预测的项目!      
    Team:Gryffindor   
    探索本项目的文档 »   
   
    查看Demo    ·    报告Bug    ·    提出新特性  


目录


  • 上手指南

    • 运行代码前的环境要求
    • 配置步骤

  • 功能
  • 快速开始
  • 演示视频
  • 文件目录说明
  • 使用到的框架
  • 贡献者

    • 如何参与开源项目

  • 版权说明
  • 鸣谢
上手指南

运行代码前的环境要求


  • python3
  • 隐语所需要的系统环境Ubuntu/WSL2
  • 隐语所需要的conda环境
    ps:第一条和第二条在隐语SecretFlow快速开始中有详细步骤
    以下需要在Ubuntu/WSL2中安装相应库
  • PyQt5库
  • LibreOffice库
  • pandas库
  • numpy库
  • matplotlib库
  • seaborn库
配置步骤

配置隐语的第一和第二个环境可以从这里开始
隐语SecretFlow快速开始

  • PyQt5库安装
  1. pip install PyQt5
复制代码

  • LibreOffice库安装
  1. sudo apt install libreoffice
复制代码

  • pandas库安装
  1. pip install pandas
复制代码

  • numpy库安装
  1. pip install numpy
复制代码

  • matplotlib库安装
  1. pip install matplotlib
复制代码

  • seaborn库安装
  1. 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
文件目录说明
  1. filetree
  2. ├── LICENSE
  3. ├── README.md
  4. ├── /GUI/   #图形化界面
  5. |  ├── /neural_network_gui.py/
  6. ├── /data/  #数据处理
  7. │  ├── /corr_coefficient_matrix.py/
  8. │  ├── /data_process.py/
  9. │  ├── /data_visual.py/
  10. │  ├── /full_table_statistics.py/
  11. │  ├── /multicollinearity_test.py/
  12. ├── /neural_network/   #神经网络模型
  13. │  ├── /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
  • 隐语

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册