|
3111 | 3111 | }, |
3112 | 3112 | { |
3113 | 3113 | "cell_type": "code", |
3114 | | - "execution_count": 2, |
| 3114 | + "execution_count": null, |
3115 | 3115 | "id": "bdcbbd53-0049-4b0c-9642-ae21f20d7a1e", |
3116 | 3116 | "metadata": {}, |
3117 | 3117 | "outputs": [], |
|
3127 | 3127 | }, |
3128 | 3128 | { |
3129 | 3129 | "cell_type": "code", |
3130 | | - "execution_count": 3, |
| 3130 | + "execution_count": null, |
3131 | 3131 | "id": "f1a0cbf9-b445-4117-b2fa-537402b081f9", |
3132 | 3132 | "metadata": {}, |
3133 | 3133 | "outputs": [], |
|
3137 | 3137 | }, |
3138 | 3138 | { |
3139 | 3139 | "cell_type": "code", |
3140 | | - "execution_count": 4, |
| 3140 | + "execution_count": null, |
3141 | 3141 | "id": "25b32d56-f468-4b79-b351-4dd19bd765bb", |
3142 | 3142 | "metadata": {}, |
3143 | 3143 | "outputs": [], |
|
3148 | 3148 | }, |
3149 | 3149 | { |
3150 | 3150 | "cell_type": "code", |
3151 | | - "execution_count": 5, |
| 3151 | + "execution_count": null, |
3152 | 3152 | "id": "2fcefbf6-42a7-403a-a03c-884afe922a50", |
3153 | 3153 | "metadata": {}, |
3154 | 3154 | "outputs": [], |
|
3168 | 3168 | }, |
3169 | 3169 | { |
3170 | 3170 | "cell_type": "code", |
3171 | | - "execution_count": 6, |
| 3171 | + "execution_count": null, |
3172 | 3172 | "id": "2dc11391-39fc-4e84-891f-53d4296894da", |
3173 | 3173 | "metadata": {}, |
3174 | 3174 | "outputs": [], |
|
3191 | 3191 | }, |
3192 | 3192 | { |
3193 | 3193 | "cell_type": "code", |
3194 | | - "execution_count": 7, |
| 3194 | + "execution_count": null, |
3195 | 3195 | "id": "46f9bfc2-678e-4cc0-80c4-833710be20b4", |
3196 | 3196 | "metadata": {}, |
3197 | 3197 | "outputs": [], |
|
3238 | 3238 | }, |
3239 | 3239 | { |
3240 | 3240 | "cell_type": "code", |
3241 | | - "execution_count": 8, |
| 3241 | + "execution_count": null, |
3242 | 3242 | "id": "7efb4506-d11d-4fc0-95b3-fcf71fbbae41", |
3243 | 3243 | "metadata": {}, |
3244 | 3244 | "outputs": [], |
|
3272 | 3272 | }, |
3273 | 3273 | { |
3274 | 3274 | "cell_type": "code", |
3275 | | - "execution_count": 9, |
| 3275 | + "execution_count": null, |
3276 | 3276 | "id": "f56f1247-27de-45e3-8299-a4793e037725", |
3277 | 3277 | "metadata": {}, |
3278 | 3278 | "outputs": [], |
|
3289 | 3289 | }, |
3290 | 3290 | { |
3291 | 3291 | "cell_type": "code", |
3292 | | - "execution_count": 10, |
| 3292 | + "execution_count": null, |
3293 | 3293 | "id": "5f7bd444-eb7f-4d55-a55e-f7ee737a91b1", |
3294 | 3294 | "metadata": {}, |
3295 | | - "outputs": [ |
3296 | | - { |
3297 | | - "name": "stdout", |
3298 | | - "output_type": "stream", |
3299 | | - "text": [ |
3300 | | - "Alice: Generating paillier keypair\n" |
3301 | | - ] |
3302 | | - } |
3303 | | - ], |
| 3295 | + "outputs": [], |
3304 | 3296 | "source": [ |
3305 | 3297 | "print(\"Alice: Generating paillier keypair\")\n", |
3306 | 3298 | "alice = Alice()\n", |
|
3310 | 3302 | }, |
3311 | 3303 | { |
3312 | 3304 | "cell_type": "code", |
3313 | | - "execution_count": 11, |
| 3305 | + "execution_count": null, |
3314 | 3306 | "id": "55f86ad0-5fcf-4874-8d58-07c1da3a28a2", |
3315 | 3307 | "metadata": {}, |
3316 | | - "outputs": [ |
3317 | | - { |
3318 | | - "name": "stdout", |
3319 | | - "output_type": "stream", |
3320 | | - "text": [ |
3321 | | - "Alice: Training BC Classifier\n", |
3322 | | - "[elapsed time: 0.02 s]\n" |
3323 | | - ] |
3324 | | - } |
3325 | | - ], |
| 3308 | + "outputs": [], |
3326 | 3309 | "source": [ |
3327 | 3310 | "print(\"Alice: Training BC Classifier\")\n", |
3328 | 3311 | "with timer() as t:\n", |
|
3339 | 3322 | }, |
3340 | 3323 | { |
3341 | 3324 | "cell_type": "code", |
3342 | | - "execution_count": 12, |
| 3325 | + "execution_count": null, |
3343 | 3326 | "id": "be931707-a0b6-4a0e-bab8-75d64c8e8239", |
3344 | 3327 | "metadata": {}, |
3345 | | - "outputs": [ |
3346 | | - { |
3347 | | - "name": "stdout", |
3348 | | - "output_type": "stream", |
3349 | | - "text": [ |
3350 | | - "Classify with model in the clear -- what Alice would get having Bob's data locally\n", |
3351 | | - "[elapsed time: 0.00 s]\n", |
3352 | | - "Error 0.014\n" |
3353 | | - ] |
3354 | | - } |
3355 | | - ], |
| 3328 | + "outputs": [], |
3356 | 3329 | "source": [ |
3357 | 3330 | "print(\n", |
3358 | 3331 | " \"Classify with model in the clear -- \"\n", |
|
3373 | 3346 | }, |
3374 | 3347 | { |
3375 | 3348 | "cell_type": "code", |
3376 | | - "execution_count": 13, |
| 3349 | + "execution_count": null, |
3377 | 3350 | "id": "d97d605a-0746-47be-acc6-416f3ffd8295", |
3378 | 3351 | "metadata": {}, |
3379 | | - "outputs": [ |
3380 | | - { |
3381 | | - "name": "stdout", |
3382 | | - "output_type": "stream", |
3383 | | - "text": [ |
3384 | | - "Alice: Encrypting classifier\n", |
3385 | | - "[elapsed time: 0.43 s]\n" |
3386 | | - ] |
3387 | | - } |
3388 | | - ], |
| 3352 | + "outputs": [], |
3389 | 3353 | "source": [ |
3390 | 3354 | "print(\"Alice: Encrypting classifier\")\n", |
3391 | 3355 | "with timer() as t:\n", |
|
3394 | 3358 | }, |
3395 | 3359 | { |
3396 | 3360 | "cell_type": "code", |
3397 | | - "execution_count": 14, |
| 3361 | + "execution_count": null, |
3398 | 3362 | "id": "c78f1493-5423-4b9d-89cd-60e6186ba483", |
3399 | 3363 | "metadata": {}, |
3400 | | - "outputs": [ |
3401 | | - { |
3402 | | - "name": "stdout", |
3403 | | - "output_type": "stream", |
3404 | | - "text": [ |
3405 | | - "Bob: Scoring with encrypted classifier\n" |
3406 | | - ] |
3407 | | - } |
3408 | | - ], |
| 3364 | + "outputs": [], |
3409 | 3365 | "source": [ |
3410 | 3366 | "print(\"Bob: Scoring with encrypted classifier\")\n", |
3411 | 3367 | "bob = Bob(alice.pubkey)\n", |
|
3414 | 3370 | }, |
3415 | 3371 | { |
3416 | 3372 | "cell_type": "code", |
3417 | | - "execution_count": 15, |
| 3373 | + "execution_count": null, |
3418 | 3374 | "id": "385c53c9-f399-4d8a-bcd9-2aefe0b22985", |
3419 | 3375 | "metadata": {}, |
3420 | | - "outputs": [ |
3421 | | - { |
3422 | | - "name": "stdout", |
3423 | | - "output_type": "stream", |
3424 | | - "text": [ |
3425 | | - "[elapsed time: 5.77 s]\n" |
3426 | | - ] |
3427 | | - } |
3428 | | - ], |
| 3376 | + "outputs": [], |
3429 | 3377 | "source": [ |
3430 | 3378 | "with timer() as t:\n", |
3431 | 3379 | " encrypted_scores = bob.encrypted_evaluate(X_test)" |
|
3441 | 3389 | }, |
3442 | 3390 | { |
3443 | 3391 | "cell_type": "code", |
3444 | | - "execution_count": 16, |
| 3392 | + "execution_count": null, |
3445 | 3393 | "id": "5e44043a-08f3-4e95-9d6d-0ebc06c8c98b", |
3446 | 3394 | "metadata": { |
3447 | 3395 | "scrolled": true |
3448 | 3396 | }, |
3449 | | - "outputs": [ |
3450 | | - { |
3451 | | - "name": "stdout", |
3452 | | - "output_type": "stream", |
3453 | | - "text": [ |
3454 | | - "Alice: Decrypting Bob's scores\n", |
3455 | | - "[elapsed time: 0.59 s]\n" |
3456 | | - ] |
3457 | | - } |
3458 | | - ], |
| 3397 | + "outputs": [], |
3459 | 3398 | "source": [ |
3460 | 3399 | "print(\"Alice: Decrypting Bob's scores\")\n", |
3461 | 3400 | "with timer() as t:\n", |
|
3464 | 3403 | }, |
3465 | 3404 | { |
3466 | 3405 | "cell_type": "code", |
3467 | | - "execution_count": 17, |
| 3406 | + "execution_count": null, |
3468 | 3407 | "id": "ed338750-e553-4b87-81d3-72338dd9116f", |
3469 | 3408 | "metadata": {}, |
3470 | | - "outputs": [ |
3471 | | - { |
3472 | | - "name": "stdout", |
3473 | | - "output_type": "stream", |
3474 | | - "text": [ |
3475 | | - "Error 0.014 -- this is not known to Alice, who does not possess the ground truth labels\n" |
3476 | | - ] |
3477 | | - } |
3478 | | - ], |
| 3409 | + "outputs": [], |
3479 | 3410 | "source": [ |
3480 | 3411 | "error = np.mean(np.sign(scores) != y_test)\n", |
3481 | 3412 | "print(\n", |
|
3511 | 3442 | "name": "python", |
3512 | 3443 | "nbconvert_exporter": "python", |
3513 | 3444 | "pygments_lexer": "ipython3", |
3514 | | - "version": "3.10.5" |
| 3445 | + "version": "3.9.16" |
3515 | 3446 | } |
3516 | 3447 | }, |
3517 | 3448 | "nbformat": 4, |
|
0 commit comments