Spaces:
Running
Running
Commit
·
d718d0d
1
Parent(s):
7d14e50
Feat: Add Integrated SHAP Explanations (Backend + UI)
Browse files- app.py +138 -73
- index.html +69 -3
- models/shap_background.csv +101 -0
app.py
CHANGED
|
@@ -8,53 +8,67 @@ from fastapi.staticfiles import StaticFiles
|
|
| 8 |
from fastapi.responses import FileResponse
|
| 9 |
from pydantic import BaseModel, Field
|
| 10 |
from typing import Optional, Literal
|
| 11 |
-
import
|
| 12 |
-
import numpy as np
|
| 13 |
-
from pathlib import Path
|
| 14 |
-
import logging
|
| 15 |
import pandas as pd
|
| 16 |
-
from preprocessing import preprocess_input
|
| 17 |
|
| 18 |
-
#
|
| 19 |
-
|
| 20 |
-
logger = logging.getLogger(__name__)
|
| 21 |
|
| 22 |
-
#
|
| 23 |
-
|
|
|
|
|
|
|
| 24 |
|
| 25 |
-
#
|
| 26 |
-
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
umbrella_limit: int = Field(..., description="Umbrella policy limit")
|
| 46 |
-
incident_hour_of_the_day: int = Field(..., ge=0, le=23)
|
| 47 |
-
|
| 48 |
-
# New Categorical Fields
|
| 49 |
-
collision_type: Optional[str] = Field(None, description="Front Collision, Side Collision, Rear Collision, or ?")
|
| 50 |
-
incident_severity: Optional[str] = Field(None, description="Major Damage, Minor Damage, Total Loss, Trivial Damage")
|
| 51 |
-
authorities_contacted: Optional[str] = Field(None, description="Police, Fire, Ambulance, Other, None")
|
| 52 |
-
number_of_vehicles_involved: Optional[int] = Field(1, description="Number of vehicles")
|
| 53 |
-
bodily_injuries: Optional[int] = Field(0, description="Number of injuries")
|
| 54 |
-
police_report_available: Optional[str] = Field(None, description="YES, NO, ?")
|
| 55 |
|
| 56 |
-
|
| 57 |
-
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
class PredictionResponse(BaseModel):
|
| 60 |
"""Response schema for predictions"""
|
|
@@ -63,47 +77,51 @@ class PredictionResponse(BaseModel):
|
|
| 63 |
probability: float
|
| 64 |
threshold_flag: Optional[str] = None
|
| 65 |
scenario: str
|
| 66 |
-
|
| 67 |
-
def load_models():
|
| 68 |
-
"""Load all available models on startup"""
|
| 69 |
-
model_types = ["RandomForest", "ExtraTrees", "XGBoost", "VotingEnsemble"]
|
| 70 |
-
calibration_types = ["calibrated", "uncalibrated"]
|
| 71 |
-
|
| 72 |
-
for model_type in model_types:
|
| 73 |
-
for cal_type in calibration_types:
|
| 74 |
-
filename = f"best_tree_models_{cal_type}.joblib"
|
| 75 |
-
filepath = MODELS_DIR / filename
|
| 76 |
-
|
| 77 |
-
if filepath.exists():
|
| 78 |
-
try:
|
| 79 |
-
models_dict = joblib.load(filepath)
|
| 80 |
-
if 'Trees' in models_dict and model_type in models_dict['Trees']:
|
| 81 |
-
key = f"{model_type}_{cal_type}"
|
| 82 |
-
MODELS[key] = models_dict['Trees'][model_type]
|
| 83 |
-
logger.info(f"Loaded model: {key}")
|
| 84 |
-
except Exception as e:
|
| 85 |
-
logger.error(f"Error loading {filepath}: {e}")
|
| 86 |
-
|
| 87 |
-
logger.info(f"Total models loaded: {len(MODELS)}")
|
| 88 |
|
| 89 |
@app.on_event("startup")
|
| 90 |
async def startup_event():
|
| 91 |
load_models()
|
|
|
|
| 92 |
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 100 |
|
| 101 |
@app.post("/predict", response_model=PredictionResponse)
|
| 102 |
async def predict(
|
| 103 |
claim_data: ClaimInput,
|
| 104 |
model: Literal["rf", "et", "xgb", "voting"] = Query("rf"),
|
| 105 |
calibrated: bool = Query(True),
|
| 106 |
-
scenario: Literal["auto_flagger", "dashboard"] = Query("dashboard")
|
|
|
|
| 107 |
):
|
| 108 |
model_map = {"rf": "RandomForest", "et": "ExtraTrees", "xgb": "XGBoost", "voting": "VotingEnsemble"}
|
| 109 |
model_name = model_map[model]
|
|
@@ -115,7 +133,11 @@ async def predict(
|
|
| 115 |
model_key = f"{model_name}_{cal_type}"
|
| 116 |
|
| 117 |
if model_key not in MODELS:
|
| 118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
| 120 |
loaded_model = MODELS[model_key]
|
| 121 |
|
|
@@ -127,7 +149,49 @@ async def predict(
|
|
| 127 |
final_df = preprocess_input(input_dict)
|
| 128 |
|
| 129 |
# Predict
|
| 130 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 131 |
|
| 132 |
except Exception as e:
|
| 133 |
import traceback
|
|
@@ -141,10 +205,11 @@ async def predict(
|
|
| 141 |
|
| 142 |
return PredictionResponse(
|
| 143 |
model=model_name,
|
| 144 |
-
calibrated=(
|
| 145 |
probability=float(proba),
|
| 146 |
threshold_flag=threshold_flag,
|
| 147 |
-
scenario=scenario
|
|
|
|
| 148 |
)
|
| 149 |
|
| 150 |
if __name__ == "__main__":
|
|
|
|
| 8 |
from fastapi.responses import FileResponse
|
| 9 |
from pydantic import BaseModel, Field
|
| 10 |
from typing import Optional, Literal
|
| 11 |
+
import shap
|
|
|
|
|
|
|
|
|
|
| 12 |
import pandas as pd
|
|
|
|
| 13 |
|
| 14 |
+
# ... (Previous imports kept implicitly by replace_tool context if not ensuring full file view.
|
| 15 |
+
# Waiting, I should replace blocks. I will do a big replace to ensure imports are there.)
|
|
|
|
| 16 |
|
| 17 |
+
# SHAP Configuration
|
| 18 |
+
BACKGROUND_DATA_PATH = MODELS_DIR / "shap_background.csv"
|
| 19 |
+
SHAP_EXPLAINERS = {}
|
| 20 |
+
BACKGROUND_DATA = None
|
| 21 |
|
| 22 |
+
# Feature Name Mapping (Technical -> User)
|
| 23 |
+
FEATURE_MAP = {
|
| 24 |
+
"total_claim_amount": "Claim Value",
|
| 25 |
+
"injury_share": "Injury Cost Portion",
|
| 26 |
+
"property_share": "Property Damage Portion",
|
| 27 |
+
"incident_hour_of_the_day": "Incident Time",
|
| 28 |
+
"months_as_customer": "Policy Tenure",
|
| 29 |
+
"policy_annual_premium": "Annual Premium",
|
| 30 |
+
"vehicle_age": "Vehicle Age",
|
| 31 |
+
"age": "Insured Age",
|
| 32 |
+
"capital-gains": "Capital Gains",
|
| 33 |
+
"capital-loss": "Capital Losses",
|
| 34 |
+
"umbrella_limit": "Umbrella Limit",
|
| 35 |
+
"bodily_injuries": "Bodily Injuries",
|
| 36 |
+
"number_of_vehicles_involved": "Vehicles Involved",
|
| 37 |
+
"incident_severity_Major Damage": "Major Damage Severity",
|
| 38 |
+
"incident_severity_Total Loss": "Total Loss Severity",
|
| 39 |
+
"collision_type_Rear Collision": "Rear Collision Type",
|
| 40 |
+
"authorities_contacted_Police": "Police Contacted"
|
| 41 |
+
}
|
| 42 |
|
| 43 |
+
def load_shap_resources():
|
| 44 |
+
"""Load background data and initialize explainers"""
|
| 45 |
+
global BACKGROUND_DATA
|
| 46 |
+
if BACKGROUND_DATA_PATH.exists():
|
| 47 |
+
BACKGROUND_DATA = pd.read_csv(BACKGROUND_DATA_PATH)
|
| 48 |
+
# Ensure dummy columns match model expectation if needed, but preprocessed_for_trees should be good.
|
| 49 |
+
logger.info(f"Loaded SHAP background data: {len(BACKGROUND_DATA)} rows")
|
| 50 |
+
else:
|
| 51 |
+
logger.warning(f"SHAP background data not found at {BACKGROUND_DATA_PATH}")
|
| 52 |
|
| 53 |
+
# Pre-compute explainers for loaded models where possible
|
| 54 |
+
# Note: TreeExplainer is fast, but better to cache.
|
| 55 |
+
for key, model in MODELS.items():
|
| 56 |
+
if "Voting" in key: continue # SHAP for voting is complex, we might skip or approx
|
| 57 |
+
try:
|
| 58 |
+
# Just cache the explainer if we have data
|
| 59 |
+
if BACKGROUND_DATA is not None:
|
| 60 |
+
# Check if model has direct estimator or via pipeline steps?
|
| 61 |
+
# Assuming loaded models are pipelines or naked estimators.
|
| 62 |
+
# The 'best_tree_models' are usually estimators.
|
| 63 |
+
SHAP_EXPLAINERS[key] = shap.TreeExplainer(model, BACKGROUND_DATA)
|
| 64 |
+
except Exception as e:
|
| 65 |
+
logger.warning(f"Could not init SHAP for {key}: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
|
| 67 |
+
class ExplanationItem(BaseModel):
|
| 68 |
+
feature: str
|
| 69 |
+
direction: str # "UP" or "DOWN"
|
| 70 |
+
text: str
|
| 71 |
+
importance: float
|
| 72 |
|
| 73 |
class PredictionResponse(BaseModel):
|
| 74 |
"""Response schema for predictions"""
|
|
|
|
| 77 |
probability: float
|
| 78 |
threshold_flag: Optional[str] = None
|
| 79 |
scenario: str
|
| 80 |
+
explanation: Optional[list[ExplanationItem]] = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
|
| 82 |
@app.on_event("startup")
|
| 83 |
async def startup_event():
|
| 84 |
load_models()
|
| 85 |
+
load_shap_resources()
|
| 86 |
|
| 87 |
+
def get_readable_explanation(feature, val_raw, shap_val, mean_val):
|
| 88 |
+
"""Generate human-friendly text based on feature value and SHAP direction"""
|
| 89 |
+
direction = "Increased risk" if shap_val > 0 else "Reduced risk"
|
| 90 |
+
fname = FEATURE_MAP.get(feature, feature.replace("_", " ").title())
|
| 91 |
+
|
| 92 |
+
# Generic logic
|
| 93 |
+
reason = "factor"
|
| 94 |
+
if shap_val > 0:
|
| 95 |
+
if val_raw > mean_val: reason = f"Higher {fname} than typical"
|
| 96 |
+
else: reason = f"Specific {fname} configuration"
|
| 97 |
+
else:
|
| 98 |
+
if val_raw > mean_val and "tenure" in feature: reason = "Long-standing customer history"
|
| 99 |
+
elif val_raw < mean_val: reason = f"Lower {fname} than typical"
|
| 100 |
+
else: reason = f"Favorable {fname} profile"
|
| 101 |
|
| 102 |
+
# Specific Overrides
|
| 103 |
+
if feature == "total_claim_amount":
|
| 104 |
+
if shap_val > 0: reason = "Larger-than-usual claim size"
|
| 105 |
+
else: reason = "Smaller-than-usual claim size"
|
| 106 |
+
elif feature == "incident_hour_of_the_day":
|
| 107 |
+
if shap_val > 0: reason = "Off-hours incident timing"
|
| 108 |
+
else: reason = "Daytime incident timing"
|
| 109 |
+
elif feature == "injury_share":
|
| 110 |
+
if shap_val > 0: reason = "High proportion of injury costs"
|
| 111 |
+
else: reason = "Low proportion of injury costs"
|
| 112 |
+
elif feature == "age":
|
| 113 |
+
if shap_val > 0: reason = "Insured age group associated with higher risk"
|
| 114 |
+
else: reason = "Insured age group associated with lower risk"
|
| 115 |
+
|
| 116 |
+
return direction, reason
|
| 117 |
|
| 118 |
@app.post("/predict", response_model=PredictionResponse)
|
| 119 |
async def predict(
|
| 120 |
claim_data: ClaimInput,
|
| 121 |
model: Literal["rf", "et", "xgb", "voting"] = Query("rf"),
|
| 122 |
calibrated: bool = Query(True),
|
| 123 |
+
scenario: Literal["auto_flagger", "dashboard"] = Query("dashboard"),
|
| 124 |
+
explain: bool = Query(True)
|
| 125 |
):
|
| 126 |
model_map = {"rf": "RandomForest", "et": "ExtraTrees", "xgb": "XGBoost", "voting": "VotingEnsemble"}
|
| 127 |
model_name = model_map[model]
|
|
|
|
| 133 |
model_key = f"{model_name}_{cal_type}"
|
| 134 |
|
| 135 |
if model_key not in MODELS:
|
| 136 |
+
# Fallback to uncalibrated if calibrated not found (common dev issue)
|
| 137 |
+
if cal_type == 'calibrated':
|
| 138 |
+
model_key = f"{model_name}_uncalibrated"
|
| 139 |
+
if model_key not in MODELS:
|
| 140 |
+
raise HTTPException(status_code=404, detail=f"Model {model_key} not found")
|
| 141 |
|
| 142 |
loaded_model = MODELS[model_key]
|
| 143 |
|
|
|
|
| 149 |
final_df = preprocess_input(input_dict)
|
| 150 |
|
| 151 |
# Predict
|
| 152 |
+
# Check if pipeline or raw model
|
| 153 |
+
if hasattr(loaded_model, "predict_proba"):
|
| 154 |
+
proba = loaded_model.predict_proba(final_df)[0, 1]
|
| 155 |
+
else:
|
| 156 |
+
# Basic fallback
|
| 157 |
+
start_pred = loaded_model.predict(final_df)
|
| 158 |
+
proba = float(start_pred[0])
|
| 159 |
+
|
| 160 |
+
|
| 161 |
+
# SHAP EXPLANATION
|
| 162 |
+
explanation_items = []
|
| 163 |
+
if explain and "Voting" not in model_name and BACKGROUND_DATA is not None:
|
| 164 |
+
# Only simple tree models for now
|
| 165 |
+
try:
|
| 166 |
+
explainer = SHAP_EXPLAINERS.get(model_key)
|
| 167 |
+
if not explainer:
|
| 168 |
+
# Lazy init
|
| 169 |
+
explainer = shap.TreeExplainer(loaded_model, BACKGROUND_DATA)
|
| 170 |
+
SHAP_EXPLAINERS[model_key] = explainer
|
| 171 |
+
|
| 172 |
+
shap_values = explainer.shap_values(final_df)
|
| 173 |
+
# Handle list output (for classification) -> take index 1 (positive class) or 0 if regression
|
| 174 |
+
if isinstance(shap_values, list):
|
| 175 |
+
vals = shap_values[1][0]
|
| 176 |
+
else:
|
| 177 |
+
vals = shap_values[0] # assuming single row, SHAP returns array
|
| 178 |
+
|
| 179 |
+
# Create DF
|
| 180 |
+
shap_df = pd.DataFrame(list(zip(final_df.columns, vals, final_df.iloc[0])), columns=['feature', 'shap', 'val'])
|
| 181 |
+
shap_df['abs_shap'] = shap_df['shap'].abs()
|
| 182 |
+
top_5 = shap_df.sort_values('abs_shap', ascending=False).head(5)
|
| 183 |
+
|
| 184 |
+
for _, row in top_5.iterrows():
|
| 185 |
+
direction, text = get_readable_explanation(row['feature'], row['val'], row['shap'], 0) # 0 is dummy mean for now
|
| 186 |
+
explanation_items.append(ExplanationItem(
|
| 187 |
+
feature=FEATURE_MAP.get(row['feature'], row['feature']),
|
| 188 |
+
direction="UP" if row['shap'] > 0 else "DOWN",
|
| 189 |
+
text=text,
|
| 190 |
+
importance=float(row['abs_shap'])
|
| 191 |
+
))
|
| 192 |
+
|
| 193 |
+
except Exception as e:
|
| 194 |
+
logger.warning(f"SHAP gen failed: {e}")
|
| 195 |
|
| 196 |
except Exception as e:
|
| 197 |
import traceback
|
|
|
|
| 205 |
|
| 206 |
return PredictionResponse(
|
| 207 |
model=model_name,
|
| 208 |
+
calibrated=("calibrated" in model_key),
|
| 209 |
probability=float(proba),
|
| 210 |
threshold_flag=threshold_flag,
|
| 211 |
+
scenario=scenario,
|
| 212 |
+
explanation=explanation_items
|
| 213 |
)
|
| 214 |
|
| 215 |
if __name__ == "__main__":
|
index.html
CHANGED
|
@@ -594,7 +594,7 @@
|
|
| 594 |
|
| 595 |
<!-- 3. DECISION RECOMMENDATION (Card Style) -->
|
| 596 |
<div class="result-section"
|
| 597 |
-
style="margin-bottom:
|
| 598 |
<div
|
| 599 |
style="font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.6; margin-bottom: 12px;">
|
| 600 |
Recommended Action</div>
|
|
@@ -602,11 +602,30 @@
|
|
| 602 |
<div style="font-size: 14px; opacity: 0.8; margin-bottom: 5px;">Next steps:</div>
|
| 603 |
<div id="resActionSteps" style="font-size: 14px; line-height: 1.6; opacity: 0.9; padding-left: 5px;">--
|
| 604 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 605 |
</div>
|
| 606 |
|
| 607 |
<!-- 4. METADATA (Single Line, Quiet) -->
|
| 608 |
<div id="metaFooter"
|
| 609 |
-
style="border-top: 1px solid var(--clr-divider); padding-top: 15px; font-size: 11px; opacity: 0.4; text-align: center;">
|
| 610 |
--
|
| 611 |
</div>
|
| 612 |
</div>
|
|
@@ -706,13 +725,55 @@
|
|
| 706 |
document.getElementById('scenario_desc').innerText = scenarioDesc[e.target.value];
|
| 707 |
});
|
| 708 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 709 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 710 |
|
| 711 |
// --- SUBMISSION ---
|
| 712 |
document.getElementById('predictBtn').addEventListener('click', async () => {
|
| 713 |
const btn = document.getElementById('predictBtn');
|
| 714 |
const resBox = document.getElementById('resultBox');
|
| 715 |
const errBox = document.getElementById('errorBox');
|
|
|
|
| 716 |
|
| 717 |
// Reset
|
| 718 |
btn.disabled = true;
|
|
@@ -720,6 +781,7 @@
|
|
| 720 |
btn.innerText = "Processing...";
|
| 721 |
resBox.style.display = 'none';
|
| 722 |
errBox.style.display = 'none';
|
|
|
|
| 723 |
|
| 724 |
try {
|
| 725 |
// Construct Payload
|
|
@@ -747,7 +809,8 @@
|
|
| 747 |
const model = document.getElementById('model').value;
|
| 748 |
const scenario = document.getElementById('scenario').value;
|
| 749 |
|
| 750 |
-
|
|
|
|
| 751 |
method: 'POST',
|
| 752 |
headers: { 'Content-Type': 'application/json' },
|
| 753 |
body: JSON.stringify(payload)
|
|
@@ -807,6 +870,9 @@
|
|
| 807 |
|
| 808 |
document.getElementById('metaFooter').innerText = `Model: ${txtModel} · Calibration: ${calibStatus} · Mode: ${modeStatus}`;
|
| 809 |
|
|
|
|
|
|
|
|
|
|
| 810 |
resBox.style.display = 'block';
|
| 811 |
|
| 812 |
} catch (e) {
|
|
|
|
| 594 |
|
| 595 |
<!-- 3. DECISION RECOMMENDATION (Card Style) -->
|
| 596 |
<div class="result-section"
|
| 597 |
+
style="margin-bottom: 20px; padding: 20px; border-radius: 6px; background: rgba(255,255,255,0.06);">
|
| 598 |
<div
|
| 599 |
style="font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.6; margin-bottom: 12px;">
|
| 600 |
Recommended Action</div>
|
|
|
|
| 602 |
<div style="font-size: 14px; opacity: 0.8; margin-bottom: 5px;">Next steps:</div>
|
| 603 |
<div id="resActionSteps" style="font-size: 14px; line-height: 1.6; opacity: 0.9; padding-left: 5px;">--
|
| 604 |
</div>
|
| 605 |
+
|
| 606 |
+
<!-- SHAP TRIGGER -->
|
| 607 |
+
<button id="viewDriversBtn"
|
| 608 |
+
style="margin-top: 20px; background: transparent; border: 1px solid var(--clr-divider); color: var(--clr-text); padding: 8px 16px; font-size: 12px; border-radius: 4px; cursor: pointer; opacity: 0.8;">👉
|
| 609 |
+
View risk drivers</button>
|
| 610 |
+
</div>
|
| 611 |
+
|
| 612 |
+
<!-- RISK DRIVERS PANEL (Hidden) -->
|
| 613 |
+
<div id="driversPanel"
|
| 614 |
+
style="display:none; margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--clr-divider);">
|
| 615 |
+
<div style="font-size: 14px; font-weight: 600; margin-bottom: 15px;">Risk Drivers</div>
|
| 616 |
+
<div style="font-size: 12px; opacity: 0.6; margin-bottom: 15px;">Top factors influencing this risk
|
| 617 |
+
score provided by SHAP analysis.</div>
|
| 618 |
+
|
| 619 |
+
<div id="driversList" style="display: list-item;"></div>
|
| 620 |
+
|
| 621 |
+
<div style="margin-top: 15px; font-size: 10px; opacity: 0.4; font-style: italic;">
|
| 622 |
+
These factors indicate statistical associations, not proof of fraud.
|
| 623 |
+
</div>
|
| 624 |
</div>
|
| 625 |
|
| 626 |
<!-- 4. METADATA (Single Line, Quiet) -->
|
| 627 |
<div id="metaFooter"
|
| 628 |
+
style="border-top: 1px solid var(--clr-divider); margin-top: 20px; padding-top: 15px; font-size: 11px; opacity: 0.4; text-align: center;">
|
| 629 |
--
|
| 630 |
</div>
|
| 631 |
</div>
|
|
|
|
| 725 |
document.getElementById('scenario_desc').innerText = scenarioDesc[e.target.value];
|
| 726 |
});
|
| 727 |
|
| 728 |
+
// Global state for explanation
|
| 729 |
+
let lastExplanation = [];
|
| 730 |
+
|
| 731 |
+
// Toggle Drivers
|
| 732 |
+
document.getElementById('viewDriversBtn').addEventListener('click', () => {
|
| 733 |
+
const panel = document.getElementById('driversPanel');
|
| 734 |
+
if (panel.style.display === 'none') {
|
| 735 |
+
panel.style.display = 'block';
|
| 736 |
+
// Render
|
| 737 |
+
const list = document.getElementById('driversList');
|
| 738 |
+
list.innerHTML = '';
|
| 739 |
+
|
| 740 |
+
if (!lastExplanation || lastExplanation.length === 0) {
|
| 741 |
+
list.innerHTML = '<div style="opacity:0.5; font-size:12px;">No risk drivers available for this model/scenario.</div>';
|
| 742 |
+
return;
|
| 743 |
+
}
|
| 744 |
|
| 745 |
+
lastExplanation.forEach(item => {
|
| 746 |
+
const isUp = item.direction === 'UP';
|
| 747 |
+
const icon = isUp ? '⬆' : '⬇';
|
| 748 |
+
const color = isUp ? '#ffcccc' : '#ccffcc'; // Subtle tint? Actually user said "Arrow or +/- sign (subtle)"
|
| 749 |
+
// User said: "Injury-related costs ... Increased risk ... Higher than typical"
|
| 750 |
+
|
| 751 |
+
const row = document.createElement('div');
|
| 752 |
+
row.style.marginBottom = "15px";
|
| 753 |
+
row.style.borderBottom = "1px solid rgba(255,255,255,0.05)";
|
| 754 |
+
row.style.paddingBottom = "10px";
|
| 755 |
+
|
| 756 |
+
row.innerHTML = `
|
| 757 |
+
<div style="font-weight: 500; font-size: 14px; margin-bottom: 4px;">${item.feature}</div>
|
| 758 |
+
<div style="display: flex; align-items: center; gap: 10px; font-size: 13px; opacity: 0.9;">
|
| 759 |
+
<span style="opacity: 0.7;">${icon} ${item.direction === 'UP' ? 'Increased risk' : 'Reduced risk'}</span>
|
| 760 |
+
<span style="opacity: 0.4;">|</span>
|
| 761 |
+
<span>${item.text}</span>
|
| 762 |
+
</div>
|
| 763 |
+
`;
|
| 764 |
+
list.appendChild(row);
|
| 765 |
+
});
|
| 766 |
+
} else {
|
| 767 |
+
panel.style.display = 'none';
|
| 768 |
+
}
|
| 769 |
+
});
|
| 770 |
|
| 771 |
// --- SUBMISSION ---
|
| 772 |
document.getElementById('predictBtn').addEventListener('click', async () => {
|
| 773 |
const btn = document.getElementById('predictBtn');
|
| 774 |
const resBox = document.getElementById('resultBox');
|
| 775 |
const errBox = document.getElementById('errorBox');
|
| 776 |
+
const driversPanel = document.getElementById('driversPanel');
|
| 777 |
|
| 778 |
// Reset
|
| 779 |
btn.disabled = true;
|
|
|
|
| 781 |
btn.innerText = "Processing...";
|
| 782 |
resBox.style.display = 'none';
|
| 783 |
errBox.style.display = 'none';
|
| 784 |
+
driversPanel.style.display = 'none'; // Auto hide on new predict
|
| 785 |
|
| 786 |
try {
|
| 787 |
// Construct Payload
|
|
|
|
| 809 |
const model = document.getElementById('model').value;
|
| 810 |
const scenario = document.getElementById('scenario').value;
|
| 811 |
|
| 812 |
+
// Request explanation by default now
|
| 813 |
+
const response = await fetch(`/predict?model=${model}&scenario=${scenario}&explain=true`, {
|
| 814 |
method: 'POST',
|
| 815 |
headers: { 'Content-Type': 'application/json' },
|
| 816 |
body: JSON.stringify(payload)
|
|
|
|
| 870 |
|
| 871 |
document.getElementById('metaFooter').innerText = `Model: ${txtModel} · Calibration: ${calibStatus} · Mode: ${modeStatus}`;
|
| 872 |
|
| 873 |
+
// 5. Store SHAP
|
| 874 |
+
lastExplanation = data.explanation || [];
|
| 875 |
+
|
| 876 |
resBox.style.display = 'block';
|
| 877 |
|
| 878 |
} catch (e) {
|
models/shap_background.csv
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
months_as_customer,age,policy_state,policy_deductable,policy_annual_premium,umbrella_limit,insured_sex,insured_education_level,insured_occupation,insured_hobbies,insured_relationship,capital-gains,capital-loss,incident_type,collision_type,incident_severity,authorities_contacted,incident_state,incident_city,incident_hour_of_the_day,number_of_vehicles_involved,property_damage,bodily_injuries,witnesses,police_report_available,total_claim_amount,auto_make,auto_model,injury_share,property_share,target,days_since_bind,incident_month,vehicle_age,collision_type_missing,authorities_contacted_missing,property_damage_missing,police_report_available_missing,hour_sin,hour_cos,hour_bin_4,csl_per_person,csl_per_incident
|
| 2 |
+
5,26,IL,2000,1137.02,0,FEMALE,PhD,farming-fishing,skydiving,not-in-family,31500,0,Single Vehicle Collision,Rear Collision,Total Loss,Ambulance,WV,Springfield,22,1,YES,1,3,Missing,88110,Audi,A5,0.1818181818181818,0.1818181818181818,0,182,1,12,0,0,0,1,-0.5000000000000004,0.8660254037844384,Evening (18-23),250,500
|
| 3 |
+
160,33,IL,1000,1422.78,0,FEMALE,High School,exec-managerial,exercise,husband,61600,0,Multi-vehicle Collision,Front Collision,Total Loss,Ambulance,NC,Riverwood,17,3,Missing,2,3,YES,52800,Nissan,Pathfinder,0.1,0.1,0,2172,1,9,0,0,1,0,-0.9659258262890684,-0.2588190451025206,Afternoon (12-17),500,1000
|
| 4 |
+
385,51,IN,1000,976.37,0,FEMALE,MD,craft-repair,reading,husband,0,-61000,Multi-vehicle Collision,Rear Collision,Minor Damage,Other,WV,Riverwood,14,3,Missing,1,3,Missing,67600,Suburu,Legacy,0.2,0.1,0,8979,2,8,0,0,1,1,-0.5000000000000001,-0.8660254037844386,Afternoon (12-17),250,500
|
| 5 |
+
446,57,IN,2000,1373.21,0,MALE,College,adm-clerical,sleeping,unmarried,42700,-64900,Multi-vehicle Collision,Front Collision,Total Loss,Police,SC,Northbrook,10,3,NO,0,0,NO,62800,Jeep,Wrangler,0.1,0.2,0,8102,2,3,0,0,0,0,0.4999999999999999,-0.8660254037844387,Morning (6-11),100,300
|
| 6 |
+
84,29,OH,1000,1117.17,0,FEMALE,High School,machine-op-inspct,video-games,not-in-family,0,-29900,Parked Car,Missing,Trivial Damage,Police,SC,Arlington,6,1,YES,2,0,YES,6820,BMW,3 Series,0.0909090909090909,0.1818181818181818,0,4327,2,10,1,0,0,0,1.0,6.123233995736766e-17,Morning (6-11),250,500
|
| 7 |
+
276,45,IL,500,948.1,0,FEMALE,High School,machine-op-inspct,reading,wife,44500,-61400,Multi-vehicle Collision,Front Collision,Minor Damage,Fire,SC,Columbus,11,3,Missing,0,2,Missing,69300,Ford,Escape,0.2,0.1,0,5403,1,5,0,0,1,1,0.258819045102521,-0.9659258262890682,Morning (6-11),500,1000
|
| 8 |
+
303,50,IL,2000,836.11,5000000,MALE,Masters,sales,camping,not-in-family,0,0,Multi-vehicle Collision,Side Collision,Major Damage,Fire,SC,Springfield,1,4,YES,1,2,NO,72840,Dodge,Neon,0.1666666666666666,0.0833333333333333,0,6532,1,5,0,0,0,0,0.2588190451025207,0.9659258262890684,Night (0-5),100,300
|
| 9 |
+
184,38,IL,1000,1437.53,0,FEMALE,College,transport-moving,chess,not-in-family,0,0,Multi-vehicle Collision,Side Collision,Minor Damage,Ambulance,PA,Northbrook,6,3,Missing,0,2,NO,53730,Dodge,RAM,0.2222222222222222,0.1111111111111111,1,7448,2,2,0,0,1,0,1.0,6.123233995736766e-17,Morning (6-11),250,500
|
| 10 |
+
130,30,IL,2000,1193.4,0,MALE,PhD,exec-managerial,bungie-jumping,own-child,0,-40800,Multi-vehicle Collision,Side Collision,Total Loss,Other,SC,Columbus,16,3,NO,2,3,Missing,48950,Suburu,Legacy,0.1818181818181818,0.0909090909090909,0,890,2,10,0,0,0,1,-0.8660254037844384,-0.5000000000000004,Afternoon (12-17),500,1000
|
| 11 |
+
200,40,IL,1000,1439.34,0,FEMALE,High School,sales,exercise,other-relative,45300,-20400,Vehicle Theft,Missing,Minor Damage,Police,VA,Riverwood,9,1,Missing,0,0,NO,3690,Ford,Escape,0.1111111111111111,0.1111111111111111,0,1696,1,0,1,0,1,0,0.7071067811865476,-0.7071067811865475,Morning (6-11),100,300
|
| 12 |
+
114,30,OH,1000,1173.25,0,FEMALE,Masters,protective-serv,dancing,husband,0,-34700,Vehicle Theft,Missing,Minor Damage,Missing,WV,Arlington,3,1,NO,0,3,YES,4680,Chevrolet,Malibu,0.1111111111111111,0.1111111111111111,0,2786,2,2,1,1,0,0,0.7071067811865475,0.7071067811865476,Night (0-5),250,500
|
| 13 |
+
270,45,OH,1000,1038.09,0,FEMALE,College,handlers-cleaners,golf,husband,0,-19700,Multi-vehicle Collision,Front Collision,Minor Damage,Fire,NY,Springfield,18,3,NO,1,1,YES,89400,Suburu,Legacy,0.1666666666666666,0.0833333333333333,0,1828,1,17,0,0,0,0,-1.0,-1.8369701987210294e-16,Evening (18-23),500,1000
|
| 14 |
+
106,28,OH,2000,1609.11,0,MALE,High School,craft-repair,polo,own-child,0,0,Vehicle Theft,Missing,Minor Damage,Police,WV,Hillsdale,8,1,YES,2,1,YES,5490,Saab,95,0.0,0.2222222222222222,0,9022,1,16,1,0,0,0,0.8660254037844387,-0.4999999999999998,Morning (6-11),100,300
|
| 15 |
+
230,37,IL,1000,1060.74,0,MALE,PhD,tech-support,reading,own-child,0,-51500,Single Vehicle Collision,Rear Collision,Major Damage,Ambulance,SC,Columbus,15,1,YES,2,3,Missing,49100,Suburu,Impreza,0.2,0.1,1,3560,1,19,0,0,0,1,-0.7071067811865475,-0.7071067811865477,Afternoon (12-17),500,1000
|
| 16 |
+
147,31,IN,500,1054.92,6000000,FEMALE,PhD,prof-specialty,exercise,own-child,51900,0,Single Vehicle Collision,Front Collision,Major Damage,Other,NY,Northbrook,4,1,Missing,0,0,Missing,68240,Toyota,Corolla,0.125,0.0,1,6549,1,2,0,0,1,1,0.8660254037844386,0.5000000000000001,Night (0-5),250,500
|
| 17 |
+
127,34,OH,500,1319.97,0,FEMALE,Associate,craft-repair,paintball,own-child,73700,0,Vehicle Theft,Missing,Minor Damage,Missing,NC,Arlington,8,1,YES,1,3,Missing,4700,Saab,92x,0.1,0.2,0,3079,1,17,1,1,0,1,0.8660254037844387,-0.4999999999999998,Morning (6-11),500,1000
|
| 18 |
+
259,39,OH,1000,1422.36,0,FEMALE,JD,craft-repair,movies,unmarried,0,-83900,Multi-vehicle Collision,Side Collision,Minor Damage,Fire,PA,Columbus,12,3,NO,1,3,Missing,46560,Nissan,Ultima,0.1666666666666666,0.1666666666666666,0,7067,1,3,0,0,0,1,1.2246467991473532e-16,-1.0,Afternoon (12-17),250,500
|
| 19 |
+
115,31,OH,1000,1051.67,0,FEMALE,Associate,exec-managerial,bungie-jumping,not-in-family,0,0,Multi-vehicle Collision,Side Collision,Major Damage,Ambulance,WV,Riverwood,18,3,YES,0,3,NO,34160,Audi,A5,0.0,0.125,1,3374,3,10,0,0,0,0,-1.0,-1.8369701987210294e-16,Evening (18-23),500,1000
|
| 20 |
+
440,57,IL,1000,995.55,5000000,MALE,College,protective-serv,paintball,wife,51500,-52100,Multi-vehicle Collision,Rear Collision,Major Damage,Police,SC,Arlington,19,3,YES,0,3,Missing,68200,Jeep,Wrangler,0.1818181818181818,0.1818181818181818,1,2881,2,8,0,0,0,1,-0.9659258262890684,0.2588190451025203,Evening (18-23),100,300
|
| 21 |
+
85,30,IN,1000,1454.42,0,MALE,Associate,protective-serv,reading,other-relative,51600,-73900,Single Vehicle Collision,Side Collision,Major Damage,Other,NY,Springfield,19,1,YES,0,1,YES,74280,Suburu,Forrestor,0.1666666666666666,0.1666666666666666,1,7764,1,9,0,0,0,0,-0.9659258262890684,0.2588190451025203,Evening (18-23),500,1000
|
| 22 |
+
101,29,OH,500,1380.89,0,MALE,PhD,armed-forces,dancing,own-child,30000,-53000,Multi-vehicle Collision,Rear Collision,Minor Damage,Ambulance,SC,Arlington,0,3,Missing,2,1,Missing,67210,BMW,X6,0.1818181818181818,0.1818181818181818,0,181,2,19,0,0,1,1,0.0,1.0,Night (0-5),250,500
|
| 23 |
+
294,44,IL,1000,1226.49,0,FEMALE,PhD,farming-fishing,kayaking,unmarried,53900,0,Vehicle Theft,Missing,Trivial Damage,Missing,WV,Riverwood,3,1,NO,0,1,NO,6100,Ford,Fusion,0.1,0.2,0,8940,2,13,1,1,0,0,0.7071067811865475,0.7071067811865476,Night (0-5),100,300
|
| 24 |
+
273,41,OH,1000,1403.9,0,FEMALE,PhD,farming-fishing,dancing,own-child,0,0,Multi-vehicle Collision,Side Collision,Total Loss,Police,VA,Riverwood,16,2,Missing,1,2,YES,44110,Honda,Accord,0.0909090909090909,0.1818181818181818,0,1809,1,0,0,0,1,0,-0.8660254037844384,-0.5000000000000004,Afternoon (12-17),500,1000
|
| 25 |
+
285,47,IN,1000,1216.68,0,FEMALE,Masters,sales,basketball,other-relative,55100,0,Vehicle Theft,Missing,Trivial Damage,Police,SC,Columbus,8,1,NO,1,1,NO,2700,Ford,F150,0.1111111111111111,0.1111111111111111,0,8499,1,2,1,0,0,0,0.8660254037844387,-0.4999999999999998,Morning (6-11),100,300
|
| 26 |
+
63,24,OH,2000,1620.89,0,FEMALE,High School,handlers-cleaners,movies,other-relative,0,0,Vehicle Theft,Missing,Minor Damage,Police,NC,Hillsdale,7,1,NO,2,0,NO,6120,Toyota,Corolla,0.1666666666666666,0.1666666666666666,0,7696,2,0,1,0,0,0,0.9659258262890684,-0.2588190451025208,Morning (6-11),250,500
|
| 27 |
+
428,54,IN,2000,1506.21,0,MALE,Masters,transport-moving,kayaking,unmarried,0,-24400,Multi-vehicle Collision,Side Collision,Minor Damage,Fire,NY,Riverwood,16,3,NO,1,0,Missing,76560,Nissan,Ultima,0.1666666666666666,0.0833333333333333,0,4005,1,6,0,0,0,1,-0.8660254037844384,-0.5000000000000004,Afternoon (12-17),100,300
|
| 28 |
+
80,27,IL,1000,1474.17,0,FEMALE,College,tech-support,exercise,unmarried,0,0,Single Vehicle Collision,Side Collision,Major Damage,Police,WV,Northbend,13,1,YES,1,0,YES,52800,Saab,95,0.2,0.1,0,6772,2,11,0,0,0,0,-0.2588190451025203,-0.9659258262890684,Afternoon (12-17),100,300
|
| 29 |
+
232,42,IN,500,944.03,0,MALE,College,handlers-cleaners,kayaking,not-in-family,0,-58400,Single Vehicle Collision,Rear Collision,Minor Damage,Other,WV,Riverwood,11,1,YES,2,3,Missing,77000,Toyota,Highlander,0.2,0.1,1,660,2,0,0,0,0,1,0.258819045102521,-0.9659258262890682,Morning (6-11),100,300
|
| 30 |
+
64,28,IL,1000,1468.82,0,MALE,JD,handlers-cleaners,skydiving,other-relative,56800,-51800,Multi-vehicle Collision,Side Collision,Minor Damage,Fire,SC,Riverwood,9,3,NO,2,1,NO,60000,Honda,Accord,0.0833333333333333,0.1666666666666666,0,8497,2,18,0,0,0,0,0.7071067811865476,-0.7071067811865475,Morning (6-11),500,1000
|
| 31 |
+
465,63,IL,500,1006.99,6000000,FEMALE,Masters,sales,board-games,own-child,0,0,Single Vehicle Collision,Side Collision,Minor Damage,Other,WV,Columbus,7,1,NO,0,3,Missing,43560,Suburu,Legacy,0.1111111111111111,0.1111111111111111,0,1120,2,0,0,0,0,1,0.9659258262890684,-0.2588190451025208,Morning (6-11),250,500
|
| 32 |
+
429,56,OH,1000,1127.89,6000000,MALE,Associate,machine-op-inspct,skydiving,own-child,67400,-43800,Single Vehicle Collision,Rear Collision,Minor Damage,Ambulance,WV,Springfield,0,1,YES,2,0,YES,39480,Suburu,Forrestor,0.1666666666666666,0.1666666666666666,0,5891,1,13,0,0,0,0,0.0,1.0,Night (0-5),250,500
|
| 33 |
+
124,32,IL,1000,1198.15,0,FEMALE,MD,other-service,hiking,not-in-family,0,-43200,Multi-vehicle Collision,Front Collision,Total Loss,Other,VA,Springfield,19,3,NO,0,2,YES,73560,BMW,X5,0.1666666666666666,0.1666666666666666,0,8295,2,20,0,0,0,0,-0.9659258262890684,0.2588190451025203,Evening (18-23),250,500
|
| 34 |
+
87,27,OH,500,1048.39,0,FEMALE,Masters,transport-moving,polo,own-child,0,0,Single Vehicle Collision,Side Collision,Minor Damage,Police,NY,Riverwood,2,1,Missing,2,1,YES,34650,Ford,F150,0.1818181818181818,0.0909090909090909,0,4059,2,19,0,0,1,0,0.4999999999999999,0.8660254037844387,Night (0-5),100,300
|
| 35 |
+
304,49,IN,1000,1525.86,0,FEMALE,PhD,craft-repair,camping,own-child,0,0,Single Vehicle Collision,Side Collision,Minor Damage,Other,NC,Northbend,2,1,YES,1,1,YES,73370,Saab,95,0.1818181818181818,0.0909090909090909,0,4866,1,2,0,0,0,0,0.4999999999999999,0.8660254037844387,Night (0-5),100,300
|
| 36 |
+
396,57,IN,1000,1366.39,0,MALE,High School,protective-serv,exercise,other-relative,0,-22400,Multi-vehicle Collision,Front Collision,Major Damage,Other,NC,Columbus,22,3,YES,2,1,NO,52560,Saab,93,0.2222222222222222,0.1111111111111111,0,8146,1,20,0,0,0,0,-0.5000000000000004,0.8660254037844384,Evening (18-23),100,300
|
| 37 |
+
328,48,IL,500,1411.43,0,MALE,Masters,armed-forces,bungie-jumping,own-child,45100,-32800,Single Vehicle Collision,Front Collision,Major Damage,Ambulance,NY,Riverwood,17,1,YES,2,1,NO,59400,Honda,Civic,0.1,0.2,0,3324,1,1,0,0,0,0,-0.9659258262890684,-0.2588190451025206,Afternoon (12-17),250,500
|
| 38 |
+
194,41,IL,500,1203.81,0,MALE,JD,transport-moving,video-games,not-in-family,52500,-51300,Multi-vehicle Collision,Rear Collision,Minor Damage,Police,WV,Springfield,17,3,Missing,0,2,Missing,95900,Saab,95,0.1428571428571428,0.2142857142857142,0,8026,2,16,0,0,1,1,-0.9659258262890684,-0.2588190451025206,Afternoon (12-17),250,500
|
| 39 |
+
96,27,IL,1000,1631.1,0,FEMALE,High School,priv-house-serv,exercise,wife,0,0,Parked Car,Missing,Trivial Damage,Police,WV,Arlington,4,1,Missing,1,2,NO,6030,Nissan,Pathfinder,0.1111111111111111,0.1111111111111111,0,2166,1,8,1,0,1,0,0.8660254037844386,0.5000000000000001,Night (0-5),100,300
|
| 40 |
+
5,21,IN,500,915.41,5000000,FEMALE,High School,exec-managerial,sleeping,own-child,0,0,Single Vehicle Collision,Side Collision,Total Loss,Police,NY,Northbrook,23,1,YES,0,0,NO,40500,Nissan,Pathfinder,0.1,0.1,0,4473,2,17,0,0,0,0,-0.2588190451025207,0.9659258262890684,Evening (18-23),250,500
|
| 41 |
+
151,36,OH,2000,870.63,0,FEMALE,MD,adm-clerical,kayaking,own-child,94800,-58500,Multi-vehicle Collision,Side Collision,Minor Damage,Police,VA,Hillsdale,12,3,NO,1,1,NO,62920,Ford,Escape,0.1818181818181818,0.0909090909090909,0,3601,1,15,0,0,0,0,1.2246467991473532e-16,-1.0,Afternoon (12-17),250,500
|
| 42 |
+
257,40,IN,500,1379.93,0,MALE,MD,armed-forces,base-jumping,husband,0,0,Multi-vehicle Collision,Side Collision,Major Damage,Other,NY,Columbus,6,3,Missing,0,2,YES,51810,Audi,A3,0.1818181818181818,0.0909090909090909,1,929,2,13,0,0,1,0,1.0,6.123233995736766e-17,Morning (6-11),250,500
|
| 43 |
+
325,47,IN,1000,1690.27,0,FEMALE,Associate,protective-serv,hiking,not-in-family,61500,0,Single Vehicle Collision,Side Collision,Major Damage,Fire,VA,Springfield,11,1,YES,0,3,NO,72930,Dodge,RAM,0.0909090909090909,0.0909090909090909,1,3265,1,9,0,0,0,0,0.258819045102521,-0.9659258262890682,Morning (6-11),500,1000
|
| 44 |
+
158,33,OH,2000,1327.41,0,FEMALE,Associate,handlers-cleaners,skydiving,other-relative,0,-38600,Single Vehicle Collision,Side Collision,Total Loss,Other,SC,Hillsdale,0,1,Missing,0,0,Missing,35000,Suburu,Legacy,0.1,0.2,0,396,1,3,0,0,1,1,0.0,1.0,Night (0-5),100,300
|
| 45 |
+
234,41,IN,500,951.56,0,FEMALE,JD,transport-moving,video-games,wife,59400,-78600,Multi-vehicle Collision,Side Collision,Major Damage,Police,SC,Riverwood,3,3,NO,2,1,Missing,98280,Chevrolet,Tahoe,0.1538461538461538,0.0769230769230769,1,9034,2,8,0,0,0,1,0.7071067811865475,0.7071067811865476,Night (0-5),100,300
|
| 46 |
+
119,27,IN,2000,1097.64,0,MALE,High School,transport-moving,video-games,other-relative,27100,0,Multi-vehicle Collision,Rear Collision,Major Damage,Other,PA,Northbend,16,2,NO,1,0,Missing,63720,Accura,TL,0.1111111111111111,0.3333333333333333,0,6394,2,9,0,0,0,1,-0.8660254037844384,-0.5000000000000004,Afternoon (12-17),250,500
|
| 47 |
+
264,41,OH,500,1411.3,0,MALE,PhD,prof-specialty,cross-fit,unmarried,55600,0,Single Vehicle Collision,Rear Collision,Minor Damage,Other,PA,Northbrook,4,1,NO,1,0,Missing,60390,BMW,M5,0.1818181818181818,0.0909090909090909,1,4498,2,11,0,0,0,1,0.8660254037844386,0.5000000000000001,Night (0-5),100,300
|
| 48 |
+
135,30,IN,2000,1341.24,0,FEMALE,MD,farming-fishing,skydiving,wife,37100,-46500,Multi-vehicle Collision,Rear Collision,Minor Damage,Ambulance,WV,Riverwood,18,3,NO,0,1,NO,32670,Honda,Accord,0.1818181818181818,0.0909090909090909,0,2189,1,12,0,0,0,0,-1.0,-1.8369701987210294e-16,Evening (18-23),500,1000
|
| 49 |
+
98,31,IN,500,671.92,0,MALE,Masters,machine-op-inspct,bungie-jumping,wife,0,-26400,Single Vehicle Collision,Front Collision,Minor Damage,Other,NC,Riverwood,3,1,Missing,2,0,Missing,64080,Ford,Escape,0.1111111111111111,0.1111111111111111,0,9123,1,18,0,0,1,1,0.7071067811865475,0.7071067811865476,Night (0-5),100,300
|
| 50 |
+
61,29,IN,1000,1115.27,0,MALE,JD,handlers-cleaners,polo,unmarried,0,-66000,Parked Car,Missing,Trivial Damage,Missing,VA,Hillsdale,10,1,YES,2,1,YES,5900,Nissan,Pathfinder,0.1,0.1,0,7233,1,5,1,1,0,0,0.4999999999999999,-0.8660254037844387,Morning (6-11),250,500
|
| 51 |
+
9,24,IL,2000,1304.46,0,FEMALE,PhD,machine-op-inspct,golf,other-relative,51700,-33300,Vehicle Theft,Missing,Trivial Damage,Missing,NC,Arlington,6,1,NO,0,3,YES,5940,Audi,A5,0.0909090909090909,0.1818181818181818,1,4634,1,14,1,1,0,0,1.0,6.123233995736766e-17,Morning (6-11),100,300
|
| 52 |
+
158,33,OH,1000,1744.64,3000000,MALE,JD,prof-specialty,movies,unmarried,0,0,Multi-vehicle Collision,Rear Collision,Total Loss,Ambulance,WV,Springfield,4,3,NO,0,1,NO,36400,Volkswagen,Jetta,0.1,0.2,0,413,2,17,0,0,0,0,0.8660254037844386,0.5000000000000001,Night (0-5),100,300
|
| 53 |
+
338,47,IL,500,1143.46,4000000,MALE,MD,priv-house-serv,polo,other-relative,0,0,Single Vehicle Collision,Front Collision,Total Loss,Other,NC,Arlington,4,1,YES,2,1,Missing,58560,Mercedes,E400,0.1666666666666666,0.1666666666666666,0,7123,2,13,0,0,0,1,0.8660254037844386,0.5000000000000001,Night (0-5),500,1000
|
| 54 |
+
156,31,IL,2000,1134.08,0,MALE,PhD,other-service,reading,husband,0,0,Single Vehicle Collision,Front Collision,Major Damage,Police,NC,Arlington,3,1,Missing,2,0,Missing,59000,Ford,Fusion,0.1,0.1,1,6713,2,2,0,0,1,1,0.7071067811865475,0.7071067811865476,Night (0-5),100,300
|
| 55 |
+
415,52,IN,1000,973.5,0,MALE,PhD,machine-op-inspct,polo,not-in-family,50400,0,Multi-vehicle Collision,Rear Collision,Total Loss,Police,WV,Arlington,15,2,YES,1,3,YES,51090,Toyota,Highlander,0.1538461538461538,0.1538461538461538,0,0,2,12,0,0,0,0,-0.7071067811865475,-0.7071067811865477,Afternoon (12-17),250,500
|
| 56 |
+
413,55,IN,2000,1268.79,0,MALE,MD,priv-house-serv,chess,own-child,0,-31000,Single Vehicle Collision,Front Collision,Total Loss,Ambulance,WV,Northbend,15,1,Missing,2,2,Missing,98160,Dodge,RAM,0.0833333333333333,0.1666666666666666,1,8746,1,4,0,0,1,1,-0.7071067811865475,-0.7071067811865477,Afternoon (12-17),100,300
|
| 57 |
+
64,25,IL,1000,954.16,0,MALE,Masters,prof-specialty,video-games,husband,53200,0,Multi-vehicle Collision,Side Collision,Major Damage,Ambulance,SC,Columbus,22,4,NO,0,0,Missing,75600,Toyota,Corolla,0.1666666666666666,0.1666666666666666,0,5448,1,10,0,0,0,1,-0.5000000000000004,0.8660254037844384,Evening (18-23),250,500
|
| 58 |
+
103,26,IL,500,1354.83,0,MALE,MD,tech-support,sleeping,husband,66300,0,Multi-vehicle Collision,Front Collision,Minor Damage,Police,NY,Arlington,14,2,NO,2,2,Missing,40600,Volkswagen,Passat,0.1,0.1,0,272,1,5,0,0,0,1,-0.5000000000000001,-0.8660254037844386,Afternoon (12-17),100,300
|
| 59 |
+
235,42,OH,500,1253.12,4000000,FEMALE,Masters,exec-managerial,dancing,other-relative,38400,0,Single Vehicle Collision,Front Collision,Total Loss,Police,NY,Northbend,22,1,YES,2,2,Missing,87010,Ford,F150,0.0909090909090909,0.1818181818181818,0,4608,1,13,0,0,0,1,-0.5000000000000004,0.8660254037844384,Evening (18-23),100,300
|
| 60 |
+
298,49,OH,500,1451.01,0,FEMALE,College,other-service,exercise,own-child,47800,0,Single Vehicle Collision,Front Collision,Minor Damage,Ambulance,NY,Springfield,17,1,NO,2,2,NO,28100,Jeep,Grand Cherokee,0.1,0.2,0,2282,2,3,0,0,0,0,-0.9659258262890684,-0.2588190451025206,Afternoon (12-17),250,500
|
| 61 |
+
65,29,IL,1000,1726.91,0,MALE,High School,other-service,basketball,own-child,0,0,Vehicle Theft,Missing,Trivial Damage,Missing,VA,Hillsdale,14,1,Missing,0,0,Missing,7200,Audi,A5,0.1,0.2,0,8938,1,16,1,1,1,1,-0.5000000000000001,-0.8660254037844386,Afternoon (12-17),250,500
|
| 62 |
+
231,43,IL,2000,972.47,0,MALE,College,protective-serv,reading,wife,0,-58100,Multi-vehicle Collision,Front Collision,Minor Damage,Police,PA,Hillsdale,15,3,YES,2,2,YES,77100,Audi,A3,0.1,0.2,0,3151,2,5,0,0,0,0,-0.7071067811865475,-0.7071067811865477,Afternoon (12-17),250,500
|
| 63 |
+
195,39,OH,1000,1393.57,0,MALE,PhD,machine-op-inspct,movies,not-in-family,47600,-39600,Parked Car,Missing,Minor Damage,Police,VA,Northbend,5,1,NO,0,1,YES,2640,Ford,F150,0.1818181818181818,0.1818181818181818,0,194,2,6,1,0,0,0,0.9659258262890684,0.2588190451025207,Night (0-5),250,500
|
| 64 |
+
93,31,IL,2000,1017.18,0,FEMALE,MD,prof-specialty,paintball,husband,0,0,Multi-vehicle Collision,Rear Collision,Major Damage,Police,NC,Arlington,21,3,YES,1,3,NO,48070,Saab,92x,0.1818181818181818,0.1818181818181818,0,2591,2,1,0,0,0,0,-0.7071067811865477,0.7071067811865474,Evening (18-23),100,300
|
| 65 |
+
404,53,IN,500,767.14,0,MALE,Associate,sales,reading,not-in-family,25500,-36700,Parked Car,Missing,Trivial Damage,Police,WV,Columbus,8,1,NO,0,1,NO,8800,Suburu,Legacy,0.2,0.1,0,35,1,13,1,0,0,0,0.8660254037844387,-0.4999999999999998,Morning (6-11),250,500
|
| 66 |
+
75,27,OH,1000,1141.1,0,MALE,JD,armed-forces,movies,other-relative,0,0,Multi-vehicle Collision,Side Collision,Minor Damage,Police,SC,Hillsdale,15,2,Missing,0,1,YES,71640,Toyota,Highlander,0.0833333333333333,0.1666666666666666,0,7750,2,7,0,0,1,0,-0.7071067811865475,-0.7071067811865477,Afternoon (12-17),100,300
|
| 67 |
+
137,35,IN,500,1667.83,0,MALE,JD,prof-specialty,paintball,husband,48500,-67400,Parked Car,Missing,Minor Damage,Police,WV,Northbrook,4,1,YES,1,1,NO,6600,Jeep,Grand Cherokee,0.1818181818181818,0.1818181818181818,0,1791,2,10,1,0,0,0,0.8660254037844386,0.5000000000000001,Night (0-5),250,500
|
| 68 |
+
211,37,OH,2000,1295.63,4000000,FEMALE,PhD,armed-forces,skydiving,not-in-family,42200,-33800,Multi-vehicle Collision,Front Collision,Total Loss,Police,WV,Northbend,22,3,YES,1,0,Missing,53460,Honda,CRV,0.1111111111111111,0.1111111111111111,0,1485,1,6,0,0,0,1,-0.5000000000000004,0.8660254037844384,Evening (18-23),250,500
|
| 69 |
+
152,33,IN,1000,1034.27,0,FEMALE,JD,armed-forces,exercise,husband,0,0,Single Vehicle Collision,Front Collision,Minor Damage,Fire,NY,Hillsdale,18,1,NO,1,0,NO,63900,Accura,TL,0.1111111111111111,0.1111111111111111,0,4989,2,1,0,0,0,0,-1.0,-1.8369701987210294e-16,Evening (18-23),100,300
|
| 70 |
+
271,42,OH,500,1105.49,0,FEMALE,Associate,prof-specialty,sleeping,own-child,56200,-50000,Multi-vehicle Collision,Side Collision,Major Damage,Other,SC,Hillsdale,12,2,Missing,2,3,Missing,68310,Audi,A3,0.1818181818181818,0.0909090909090909,1,1285,2,12,0,0,1,1,1.2246467991473532e-16,-1.0,Afternoon (12-17),100,300
|
| 71 |
+
37,25,OH,1000,1221.17,0,FEMALE,Masters,protective-serv,golf,not-in-family,49300,0,Multi-vehicle Collision,Rear Collision,Minor Damage,Ambulance,SC,Northbrook,4,3,YES,0,0,YES,51030,Suburu,Impreza,0.1111111111111111,0.2222222222222222,0,4344,1,19,0,0,0,0,0.8660254037844386,0.5000000000000001,Night (0-5),100,300
|
| 72 |
+
118,28,IN,2000,1207.36,0,FEMALE,High School,handlers-cleaners,camping,own-child,0,-57000,Multi-vehicle Collision,Front Collision,Major Damage,Ambulance,WV,Columbus,22,2,NO,1,0,Missing,74200,Volkswagen,Passat,0.1,0.2,0,8464,3,18,0,0,0,1,-0.5000000000000004,0.8660254037844384,Evening (18-23),500,1000
|
| 73 |
+
231,43,IN,2000,1331.69,0,FEMALE,Masters,adm-clerical,reading,not-in-family,0,0,Single Vehicle Collision,Rear Collision,Minor Damage,Police,NY,Northbend,12,1,Missing,1,2,NO,66950,Chevrolet,Malibu,0.1538461538461538,0.1538461538461538,0,1763,2,0,0,0,1,0,1.2246467991473532e-16,-1.0,Afternoon (12-17),100,300
|
| 74 |
+
193,40,OH,500,1233.85,0,FEMALE,College,handlers-cleaners,chess,husband,0,0,Multi-vehicle Collision,Side Collision,Total Loss,Ambulance,PA,Hillsdale,23,3,Missing,2,1,YES,64260,Ford,Escape,0.0,0.2222222222222222,0,3655,2,16,0,0,1,0,-0.2588190451025207,0.9659258262890684,Evening (18-23),100,300
|
| 75 |
+
100,33,OH,500,1124.59,6000000,MALE,College,adm-clerical,golf,not-in-family,67300,0,Single Vehicle Collision,Rear Collision,Minor Damage,Other,NC,Columbus,4,1,NO,1,2,NO,40800,BMW,X5,0.1666666666666666,0.1666666666666666,0,3602,2,11,0,0,0,0,0.8660254037844386,0.5000000000000001,Night (0-5),250,500
|
| 76 |
+
39,31,IL,2000,1366.9,0,FEMALE,High School,handlers-cleaners,polo,husband,0,-15700,Multi-vehicle Collision,Rear Collision,Major Damage,Fire,NC,Northbend,14,3,Missing,1,0,NO,52700,BMW,X6,0.2,0.2,1,4383,1,1,0,0,1,0,-0.5000000000000001,-0.8660254037844386,Afternoon (12-17),250,500
|
| 77 |
+
40,39,IN,1000,1248.25,4000000,FEMALE,College,sales,hiking,own-child,0,-33300,Parked Car,Missing,Minor Damage,Police,VA,Northbrook,8,1,NO,0,2,Missing,8760,BMW,3 Series,0.1666666666666666,0.1666666666666666,0,5058,2,2,1,0,0,1,0.8660254037844387,-0.4999999999999998,Morning (6-11),500,1000
|
| 78 |
+
356,54,OH,500,912.3,0,MALE,College,prof-specialty,yachting,wife,58500,-44000,Multi-vehicle Collision,Front Collision,Major Damage,Other,SC,Northbend,23,3,NO,2,1,Missing,68750,Audi,A5,0.1818181818181818,0.1818181818181818,1,2526,1,8,0,0,0,1,-0.2588190451025207,0.9659258262890684,Evening (18-23),500,1000
|
| 79 |
+
199,37,IN,500,1262.08,0,MALE,JD,tech-support,video-games,wife,48500,0,Single Vehicle Collision,Front Collision,Major Damage,Ambulance,NC,Columbus,4,1,Missing,0,3,NO,60170,Nissan,Pathfinder,0.1818181818181818,0.1818181818181818,1,6374,1,4,0,0,1,0,0.8660254037844386,0.5000000000000001,Night (0-5),250,500
|
| 80 |
+
75,25,IL,1000,1389.86,0,FEMALE,Associate,priv-house-serv,hiking,husband,0,0,Multi-vehicle Collision,Side Collision,Total Loss,Other,WV,Springfield,23,2,Missing,2,3,YES,65100,Saab,93,0.1,0.1,0,1143,1,4,0,0,1,0,-0.2588190451025207,0.9659258262890684,Evening (18-23),500,1000
|
| 81 |
+
151,37,IN,500,1366.42,0,FEMALE,Associate,protective-serv,cross-fit,unmarried,44000,0,Multi-vehicle Collision,Rear Collision,Total Loss,Fire,SC,Arlington,14,3,NO,1,2,YES,59100,Nissan,Maxima,0.1,0.1,1,850,2,17,0,0,0,0,-0.5000000000000001,-0.8660254037844386,Afternoon (12-17),250,500
|
| 82 |
+
148,30,OH,500,1471.24,0,FEMALE,Masters,farming-fishing,camping,own-child,57500,-93600,Multi-vehicle Collision,Side Collision,Minor Damage,Police,NC,Riverwood,4,3,NO,2,2,NO,32480,Dodge,Neon,0.125,0.125,0,4660,1,18,0,0,0,0,0.8660254037844386,0.5000000000000001,Night (0-5),100,300
|
| 83 |
+
107,31,IN,500,1239.22,7000000,FEMALE,High School,tech-support,paintball,not-in-family,43400,-91200,Single Vehicle Collision,Side Collision,Minor Damage,Fire,SC,Springfield,12,1,YES,0,1,NO,89700,Audi,A5,0.1538461538461538,0.1538461538461538,1,1262,1,6,0,0,0,0,1.2246467991473532e-16,-1.0,Afternoon (12-17),250,500
|
| 84 |
+
243,43,IN,500,1307.74,0,FEMALE,Associate,machine-op-inspct,board-games,own-child,0,-75700,Multi-vehicle Collision,Front Collision,Major Damage,Ambulance,SC,Riverwood,10,3,Missing,0,1,NO,37530,Jeep,Wrangler,0.1111111111111111,0.1111111111111111,0,3281,1,7,0,0,1,0,0.4999999999999999,-0.8660254037844387,Morning (6-11),500,1000
|
| 85 |
+
478,64,OH,500,835.02,0,FEMALE,Associate,adm-clerical,reading,unmarried,59600,0,Multi-vehicle Collision,Side Collision,Minor Damage,Fire,WV,Hillsdale,17,3,NO,1,1,NO,33930,BMW,X6,0.0,0.1111111111111111,0,8932,2,17,0,0,0,0,-0.9659258262890684,-0.2588190451025206,Afternoon (12-17),250,500
|
| 86 |
+
1,33,IL,500,903.32,0,FEMALE,High School,transport-moving,yachting,not-in-family,0,0,Multi-vehicle Collision,Rear Collision,Minor Damage,Police,NY,Northbend,1,3,Missing,1,0,Missing,31700,Toyota,Highlander,0.2,0.1,0,7062,1,9,0,0,1,1,0.2588190451025207,0.9659258262890684,Night (0-5),250,500
|
| 87 |
+
210,38,IN,500,999.52,0,MALE,JD,tech-support,golf,other-relative,0,0,Vehicle Theft,Missing,Minor Damage,Police,VA,Springfield,6,1,Missing,1,2,NO,8640,Accura,TL,0.1666666666666666,0.0833333333333333,0,5869,1,7,1,0,1,0,1.0,6.123233995736766e-17,Morning (6-11),250,500
|
| 88 |
+
458,62,IL,2000,1356.92,5000000,MALE,Associate,handlers-cleaners,base-jumping,wife,0,0,Single Vehicle Collision,Rear Collision,Major Damage,Other,NY,Arlington,2,1,Missing,0,1,YES,46980,Audi,A5,0.1111111111111111,0.1111111111111111,0,1196,2,17,0,0,1,0,0.4999999999999999,0.8660254037844387,Night (0-5),500,1000
|
| 89 |
+
475,61,IL,500,1265.72,0,FEMALE,Masters,handlers-cleaners,paintball,wife,0,-59500,Single Vehicle Collision,Front Collision,Major Damage,Fire,SC,Columbus,23,1,YES,0,2,Missing,64350,Mercedes,E400,0.1538461538461538,0.1538461538461538,0,3842,2,17,0,0,0,1,-0.2588190451025207,0.9659258262890684,Evening (18-23),500,1000
|
| 90 |
+
435,58,IN,2000,1145.85,0,MALE,JD,sales,movies,not-in-family,0,-40000,Multi-vehicle Collision,Rear Collision,Total Loss,Other,NY,Columbus,19,3,Missing,1,1,YES,41490,Mercedes,E400,0.2222222222222222,0.1111111111111111,0,6265,1,11,0,0,1,0,-0.9659258262890684,0.2588190451025203,Evening (18-23),100,300
|
| 91 |
+
276,47,IN,1000,1724.09,0,MALE,PhD,craft-repair,yachting,own-child,0,0,Multi-vehicle Collision,Rear Collision,Minor Damage,Police,NY,Arlington,23,3,YES,0,0,Missing,65780,Chevrolet,Tahoe,0.0909090909090909,0.1818181818181818,0,7878,1,1,0,0,0,1,-0.2588190451025207,0.9659258262890684,Evening (18-23),100,300
|
| 92 |
+
113,29,OH,2000,1091.73,0,MALE,PhD,exec-managerial,golf,not-in-family,36100,-42300,Multi-vehicle Collision,Rear Collision,Minor Damage,Other,NY,Springfield,15,3,Missing,0,2,YES,49950,Nissan,Ultima,0.1111111111111111,0.1111111111111111,1,2561,1,11,0,0,1,0,-0.7071067811865475,-0.7071067811865477,Afternoon (12-17),250,500
|
| 93 |
+
88,30,IN,1000,1437.88,0,FEMALE,College,transport-moving,reading,husband,42800,-51200,Single Vehicle Collision,Side Collision,Total Loss,Fire,SC,Northbrook,3,1,NO,2,0,YES,56000,Chevrolet,Malibu,0.25,0.0,0,8239,2,12,0,0,0,0,0.7071067811865475,0.7071067811865476,Night (0-5),100,300
|
| 94 |
+
220,42,IN,1000,1281.72,0,MALE,College,farming-fishing,hiking,other-relative,33500,-49500,Multi-vehicle Collision,Rear Collision,Minor Damage,Fire,SC,Northbend,20,4,NO,0,2,YES,47740,Honda,Civic,0.0909090909090909,0.0909090909090909,0,7494,2,10,0,0,0,0,-0.8660254037844386,0.5000000000000001,Evening (18-23),100,300
|
| 95 |
+
328,46,IL,500,1314.6,0,FEMALE,MD,prof-specialty,exercise,not-in-family,24800,0,Single Vehicle Collision,Rear Collision,Total Loss,Other,WV,Hillsdale,0,1,Missing,2,3,Missing,70290,Saab,92x,0.1818181818181818,0.0909090909090909,1,6823,2,17,0,0,1,1,0.0,1.0,Night (0-5),500,1000
|
| 96 |
+
133,30,IN,1000,1231.01,0,MALE,College,adm-clerical,board-games,husband,0,-31700,Multi-vehicle Collision,Front Collision,Minor Damage,Fire,SC,Riverwood,19,3,NO,1,2,Missing,28440,Dodge,Neon,0.1111111111111111,0.1111111111111111,0,3420,2,8,0,0,0,1,-0.9659258262890684,0.2588190451025203,Evening (18-23),500,1000
|
| 97 |
+
61,23,IL,500,1111.72,0,MALE,JD,exec-managerial,bungie-jumping,other-relative,54600,0,Single Vehicle Collision,Side Collision,Major Damage,Fire,PA,Riverwood,6,1,Missing,1,2,Missing,41850,Suburu,Legacy,0.1111111111111111,0.1111111111111111,0,2910,2,18,0,0,1,1,1.0,6.123233995736766e-17,Morning (6-11),100,300
|
| 98 |
+
366,50,IN,1000,1561.41,0,FEMALE,High School,handlers-cleaners,basketball,husband,21200,0,Multi-vehicle Collision,Rear Collision,Minor Damage,Police,NY,Arlington,5,3,YES,1,3,NO,70290,Mercedes,C300,0.1818181818181818,0.1818181818181818,0,8946,1,3,0,0,0,0,0.9659258262890684,0.2588190451025207,Night (0-5),500,1000
|
| 99 |
+
31,36,IL,2000,1318.24,9000000,FEMALE,College,prof-specialty,kayaking,not-in-family,0,-78600,Parked Car,Missing,Trivial Damage,Missing,WV,Arlington,9,1,NO,0,1,YES,4700,Dodge,Neon,0.2,0.1,0,5647,1,13,1,1,0,0,0.7071067811865476,-0.7071067811865475,Morning (6-11),500,1000
|
| 100 |
+
215,42,OH,500,1848.81,0,MALE,JD,transport-moving,video-games,own-child,0,-49000,Multi-vehicle Collision,Front Collision,Major Damage,Fire,WV,Northbend,20,3,YES,2,2,YES,68520,Suburu,Legacy,0.1666666666666666,0.0833333333333333,1,2292,2,12,0,0,0,0,-0.8660254037844386,0.5000000000000001,Evening (18-23),500,1000
|
| 101 |
+
179,32,OH,2000,1246.68,0,FEMALE,PhD,priv-house-serv,movies,own-child,0,0,Single Vehicle Collision,Front Collision,Minor Damage,Fire,NY,Arlington,10,1,Missing,0,1,Missing,53100,Suburu,Impreza,0.1111111111111111,0.1111111111111111,0,6618,1,9,0,0,1,1,0.4999999999999999,-0.8660254037844387,Morning (6-11),500,1000
|