{ "cells": [ { "cell_type": "code", "execution_count": 5, "id": "db0bcf0c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C-index: 0.6160477453580901\n" ] } ], "source": [ "#deepseek_c_index kyr 2025-5-5\n", "\n", "import json\n", "import re\n", "from lifelines.utils import concordance_index\n", "\n", "\n", "def load_json_data(file_path):\n", " with open(file_path, 'r') as file:\n", " data = json.load(file)\n", " return data\n", "\n", "def extract_ground_state(ground_truth):\n", " match = re.search(r\"state is ###\\s*(.*?)\\s*###.*?time is ###\\s*(\\d+\\.?\\d*)\\s*###\", ground_truth)\n", " if match:\n", " ground_state = match.group(1).strip() \n", " else:\n", " raise ValueError(f\"Could not extract ground truth values from: {ground_truth}\")\n", " \n", " return ground_state\n", "\n", "def extract_ground_time(ground_truth):\n", " match = re.search(r\"state is ###\\s*(.*?)\\s*###.*?time is ###\\s*(\\d+\\.?\\d*)\\s*###\", ground_truth)\n", " if match:\n", " ground_time = float(match.group(2).strip()) \n", " else:\n", " raise ValueError(f\"Could not extract ground truth values from: {ground_truth}\")\n", " \n", " return ground_time\n", "\n", "def extract_predict_state(predicted_texts):\n", " match = re.search(r\"(?:state|statu)\\s*is\\s*###\\s*(.*?)\\s*###.*?time\\s*is\\s*###\\s*(\\d+\\.?\\d*)\\s*###\", predicted_texts)\n", " if match:\n", " pred_state = match.group(1).strip() \n", " else:\n", " raise ValueError(f\"Could not extract values from output: {predicted_texts}\")\n", "\n", " return pred_state\n", "\n", "def extract_predict_time(predicted_texts):\n", " match = re.search(r\"(?:state|statu)\\s*is\\s*###\\s*(.*?)\\s*###.*?time\\s*is\\s*###\\s*(\\d+\\.?\\d*)\\s*###\", predicted_texts)\n", " if match:\n", " pred_time = float(match.group(2).strip()) \n", " else:\n", " raise ValueError(f\"Could not extract values from output: {predicted_texts}\")\n", " \n", " return pred_time\n", "\n", "true_data = load_json_data('/home/kongyiran/work/Dataset/Dataset_0429/Qwen2_5vl/0427_json/DFS/test_DFS_0427.json') # 真实值文件路径\n", "predicted_data = load_json_data('/home/kongyiran/work/deepseek_infer/Deepseek_v1/deepseek_response-kyr-DFS-0407.json') # 预测值文件路径\n", "\n", "event_true_state = []\n", "event_true_times = []\n", "\n", "event_predicted_state = []\n", "event_predicted_times = []\n", "\n", "for i in range(len(true_data)):\n", " ground_truth = true_data[i]['conversations'][1]['value']\n", " predicted_texts = predicted_data[i]\n", " \n", "\n", " if not predicted_texts:\n", " continue\n", " \n", " true_state = extract_ground_state(ground_truth)\n", " true_times = extract_ground_time(ground_truth)\n", " \n", " binary_true_state = 1 if true_state == \"dead\" else 0\n", " \n", " event_true_state.append(binary_true_state)\n", " event_true_times.append(true_times)\n", " \n", " \n", " predicted_state = extract_predict_state(predicted_texts)\n", " predicted_times = extract_predict_time(predicted_texts)\n", " \n", " binary_predicted_state = 1 if true_state == \"dead\" else 0\n", " \n", " event_predicted_state.append(binary_predicted_state)\n", " event_predicted_times.append(predicted_times)\n", " \n", "c_index = concordance_index(event_true_times, event_predicted_times , event_true_state)\n", "\n", "print(\"C-index:\", c_index)\n" ] } ], "metadata": { "kernelspec": { "display_name": "R1", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.16" } }, "nbformat": 4, "nbformat_minor": 5 }