CSV Data Format
How to prepare your sensor data for training with Luviner.
Basic format
Luviner accepts standard CSV files with these rules:
- Header row required — first row must contain column names
- Features — all columns except the last are treated as input features (numeric)
- Label — the last column is the class label (string or integer)
- Delimiter — comma (
,) is default; semicolons and tabs are auto-detected
- Encoding — UTF-8
feature_1,feature_2,feature_3,label
0.12,0.98,0.34,normal
2.34,1.87,4.56,anomaly
Requirements
| Parameter |
Minimum |
Recommended |
Maximum |
| Samples (rows) |
20 |
500+ |
200,000 |
| Features (columns) |
1 |
4 – 50 |
1,000 |
| Classes |
2 |
2 – 10 |
50 |
| File size |
— |
< 10 MB |
50 MB |
Data quality tips
- Balanced classes — try to have roughly equal samples per class. A 90/10 split will bias the model toward the majority class.
- No missing values — fill or remove rows with NaN/empty cells before upload.
- Numeric features — all feature columns must be numeric. Luviner normalizes automatically.
- Consistent sampling rate — if your data is time-series, use a fixed sampling interval.
- Clean labels — avoid typos in class names.
Normal and normal are treated as different classes.
Example datasets
Download these ready-to-use datasets to test Luviner immediately:
| Dataset |
Samples |
Features |
Classes |
Use case |
| Vibration sensor |
1,000 |
8 |
4 (normal, bearing, misalignment, imbalance) |
Predictive maintenance |
| Gesture IMU |
500 |
6 |
5 gestures |
Wearable interaction |
| ECG heartbeat |
800 |
12 |
3 (normal, arrhythmia, other) |
Medical device |
You can also try these datasets directly in the
Live Demo without creating an account.
Time-series vs tabular data
Luviner supports both:
- Tabular (classification): each row is an independent sample. Standard CSV as described above.
- Time-series (streaming): rows are sequential sensor readings. Luviner maintains state between readings, making it ideal for temporal patterns like vibration signatures or ECG waveforms.
For time-series data, simply provide the CSV with rows in chronological order. Luviner detects temporal patterns automatically.
Common issues
| Problem | Solution |
| Low accuracy |
Add more samples, ensure classes are balanced, check for label errors |
| Upload error |
Check encoding (must be UTF-8), remove non-numeric values from feature columns |
| Slow training |
Reduce samples to < 50K for initial testing, use AutoML (Builder+) |