UInsight 0.3.2
dotnet add package UInsight --version 0.3.2
NuGet\Install-Package UInsight -Version 0.3.2
<PackageReference Include="UInsight" Version="0.3.2" />
<PackageVersion Include="UInsight" Version="0.3.2" />
<PackageReference Include="UInsight" />
paket add UInsight --version 0.3.2
#r "nuget: UInsight, 0.3.2"
#:package UInsight@0.3.2
#addin nuget:?package=UInsight&version=0.3.2
#tool nuget:?package=UInsight&version=0.3.2
UInsight
.NET bindings for the u-insight statistical analysis engine.
Features
- CSV Profiling: Column-level statistics, missing analysis, type inference
- Clustering: K-Means++, Mini-Batch K-Means, DBSCAN, Hierarchical (4 linkages), HDBSCAN
- PCA: Principal Component Analysis with auto-scaling
- Anomaly Detection: Isolation Forest, Local Outlier Factor (LOF), Mahalanobis distance
- Statistical Analysis: Pearson correlation, simple linear regression, Cramer's V
- Distribution: Normality testing (KS, Jarque-Bera, Shapiro-Wilk, Anderson-Darling)
- Feature Importance: Composite scores, ANOVA F-test, Mutual Information, Permutation Importance
- Cross-Platform: Windows, Linux, and macOS support
Installation
dotnet add package UInsight
Quick Start
Profiling
using UInsight;
using var client = new InsightClient();
Console.WriteLine($"Version: {client.GetVersion()}");
var profile = client.ProfileCsv("name,value\nAlice,1.5\nBob,2.3\n");
Console.WriteLine($"Rows: {profile.RowCount}, Columns: {profile.ColumnCount}");
Clustering
using UInsight;
using var client = new InsightClient();
var data = new double[,] { {0,0}, {1,1}, {10,10}, {11,11} };
// K-Means
var km = client.KMeans(data, k: 2);
Console.WriteLine($"K={km.K}, WCSS={km.Wcss:F2}");
// DBSCAN
var db = client.Dbscan(data, epsilon: 2.0, minSamples: 2);
Console.WriteLine($"Clusters: {db.NClusters}, Noise: {db.NoiseCount}");
Anomaly Detection
using UInsight;
using var client = new InsightClient();
var data = new double[,] {
{1,1}, {2,2}, {1.5,1.5}, {2.5,2.5},
{100,100} // outlier
};
var result = client.IsolationForest(data, nEstimators: 100, contamination: 0.2);
Console.WriteLine($"Anomalies: {result.AnomalyCount}");
Distribution Analysis
using UInsight;
using var client = new InsightClient();
var data = Enumerable.Range(0, 100).Select(i => (i - 50.0) * 0.2).ToArray();
var dist = client.Distribution(data);
Console.WriteLine($"Normal: {dist.IsNormal}, SW p={dist.SwPValue:F4}");
API Reference
InsightClient
public sealed class InsightClient : IDisposable
{
// Version
string GetVersion();
// Profiling
ProfileResult ProfileCsv(string csvData);
// Clustering
KMeansResult KMeans(double[,] data, uint k);
KMeansResult MiniBatchKMeans(double[,] data, uint k, uint batchSize = 100, uint maxIter = 100, ulong seed = 42);
DbscanResult Dbscan(double[,] data, double epsilon, uint minSamples);
HierarchicalResult Hierarchical(double[,] data, uint linkage, uint nClusters);
HdbscanResult Hdbscan(double[,] data, uint minClusterSize, uint minSamples);
GapStatResult GapStatistic(double[,] data, uint kMin, uint kMax, uint nRefs = 10, ulong seed = 42);
// PCA
PcaResult Pca(double[,] data, uint nComponents, bool autoScale = true);
// Anomaly Detection
AnomalyResult IsolationForest(double[,] data, uint nEstimators = 100, double contamination = 0.1, ulong seed = 42);
AnomalyResult Lof(double[,] data, uint k = 20, double threshold = 1.5);
MahalanobisResult Mahalanobis(double[,] data, double chi2Quantile = 0.975);
// Statistical Analysis
CorrelationResult Correlation(double[,] data);
RegressionResult Regression(double[] x, double[] y);
CramersVResult CramersV(double[,] table);
// Distribution
DistributionResult Distribution(double[] data, double significanceLevel = 0.05);
// Feature Importance
FeatureImportanceResult FeatureImportance(double[,] data);
AnovaSelectionResult AnovaSelect(double[,] data, uint[] target, double significanceLevel = 0.05);
MutualInfoResult MutualInfo(double[,] data, uint[] target, uint nBins = 10);
PermImportanceResult PermutationImportance(double[,] data, double[] target, uint nRepeats = 5, ulong seed = 42);
}
Native Library
The native library (u_insight.dll / libu_insight.so / libu_insight.dylib) must be available in your application's runtime directory or system PATH.
Building Native Library
cd <u-insight-repo>
cargo build --release
The built library will be in target/release/.
License
MIT License - see LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on UInsight:
| Package | Downloads |
|---|---|
|
DataLens
Exploratory data analysis engine for CSV/Excel datasets. Produces JSON analysis results including profiling, descriptive statistics, correlation, regression, clustering, outlier detection, PCA, and feature importance. |
GitHub repositories
This package is not used by any popular GitHub repositories.