Added classifer analysis to bicorder ascii and web app
This commit is contained in:
@@ -383,3 +383,49 @@ Hypothesis: Changing the analyst and their standpoint could result in interestin
|
||||
|
||||
Method: Alongside the dataset of protocols, generate diverse personas, such as a) personas used to evaluate every protocols, and b) protocol-specific personas that reflect different relationships to the protocol. Modify the test suite to include personas as an additional dimension of the analysis.
|
||||
|
||||
## Integration with Bicorder Tool
|
||||
|
||||
The cluster analysis findings have been integrated into the bicorder system as an automated analysis gradient:
|
||||
|
||||
**Bureaucratic ↔ Relational** - A new analysis field that automatically calculates where a protocol falls on the spectrum between the two protocol families identified through clustering analysis.
|
||||
|
||||
### Implementation
|
||||
|
||||
- **Model**: Linear Discriminant Analysis (LDA) trained on 406 protocols
|
||||
- **Input**: The 23 diagnostic dimension values (read from bicorder.json in gradient order)
|
||||
- **Output**: A value from 1-9 where:
|
||||
- **1-3**: Strongly bureaucratic/institutional (formal, top-down, externally enforced)
|
||||
- **4-6**: Mixed or boundary characteristics
|
||||
- **7-9**: Strongly relational/cultural (emergent, voluntary, community-based)
|
||||
|
||||
**Design philosophy**: The model includes a `bicorder_version` field matching the bicorder.json version it was trained on. The implementation checks versions match before calculating. When bicorder.json structure changes (gradients added/removed/reordered), increment the version and retrain the model.
|
||||
|
||||
This simple version-matching approach ensures compatibility without complex structure mapping.
|
||||
|
||||
### Files
|
||||
|
||||
- `bicorder_model.json` (5KB) - Trained LDA model with coefficients and scaler parameters
|
||||
- `bicorder-classifier.js` - JavaScript implementation for real-time classification in web app
|
||||
- `ascii_bicorder.py` (updated) - Python script now calculates automated analysis values
|
||||
- `../bicorder.json` (updated) - Added bureaucratic ↔ relational gradient to analysis section
|
||||
|
||||
### Usage
|
||||
|
||||
The calculation happens automatically when generating bicorder output:
|
||||
|
||||
```bash
|
||||
python3 ascii_bicorder.py bicorder.json bicorder.txt
|
||||
```
|
||||
|
||||
For web integration, see `INTEGRATION_GUIDE.md` for details on using `bicorder-classifier.js` to provide real-time classification as users fill out diagnostics.
|
||||
|
||||
### Key Features
|
||||
|
||||
- **Automated**: Calculated from diagnostic values, no manual assessment needed
|
||||
- **Data-driven**: Based on multivariate analysis of 406 protocols
|
||||
- **Single metric**: Distance to boundary determines classification confidence
|
||||
- **Form recommendation**: Can suggest short vs. long form based on boundary distance
|
||||
- **Lightweight**: 5KB model, no dependencies, runs client-side
|
||||
|
||||
The integration provides a data-backed way to understand where a protocol sits on the fundamental institutional/relational spectrum identified in the clustering analysis.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user