|
1 | 1 | # Novacta.Analytics |
2 | 2 |
|
3 | 3 | The **Novacta.Analytics** library |
4 | | -provides functionality for data analysis. |
| 4 | +provides functionality for data analysis. |
5 | 5 |
|
6 | | -The project targets all platforms implementing |
7 | | -the [.NET Standard](https://github.com/dotnet/standard), |
8 | | -version 2.0, and supports the |
9 | | -[x86 architecture](https://en.wikipedia.org/wiki/X86): |
10 | | -64 bit is supported on all platforms, 32 bit on Windows only. |
| 6 | +The project targets |
| 7 | +[.NET 6](https://github.com/dotnet/core/blob/main/release-notes/6.0/README.md), |
| 8 | +and supports the |
| 9 | +[x86-64 architecture](https://en.wikipedia.org/wiki/X86-64) |
| 10 | +on Windows, Linux, and macOS platforms. |
11 | 11 |
|
12 | 12 | Installation can be performed via [NuGet](https://www.nuget.org/packages/Novacta.Analytics). |
13 | 13 |
|
14 | | -# Features |
| 14 | +## Features |
15 | 15 |
|
16 | | -## Matrix algebra operations |
| 16 | +### Matrix algebra operations |
17 | 17 |
|
18 | | -* [Read only](http://novacta.github.io/analytics/html/T_Novacta_Analytics_ReadOnlyDoubleMatrix.htm) |
| 18 | +* Matrices of |
| 19 | + [Double](https://docs.microsoft.com/dotnet/api/system.double) |
19 | 20 | or |
20 | | - [writable](http://novacta.github.io/analytics/html/T_Novacta_Analytics_DoubleMatrix.htm) |
21 | | - matrices, supporting |
22 | | - [Sparse](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_Sparse.htm) |
23 | | - and |
24 | | - [Dense](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_Dense_1.htm) |
25 | | - storage schemes. |
26 | | -* [Overloaded operators](http://novacta.github.io/analytics/html/Operators_T_Novacta_Analytics_DoubleMatrix.htm) |
| 21 | + [Complex](https://docs.microsoft.com/dotnet/api/system.numerics.complex) |
| 22 | + numbers, represented through types |
| 23 | + [DoubleMatrix](https://novacta.github.io/analytics/html/1DED9EB1.htm) and |
| 24 | + [ComplexMatrix](https://novacta.github.io/analytics/html/AFDA21E4.htm), |
| 25 | + respectively. |
| 26 | +* Support for both dense |
| 27 | + and |
| 28 | + [Compressed sparse row](https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_(CSR,_CRS_or_Yale_format)) |
| 29 | + storage |
| 30 | + [schemes](https://novacta.github.io/analytics/html/6274B7FA.htm). |
| 31 | +* Matrices exposed as read-only objects, see types |
| 32 | + [ReadOnlyDoubleMatrix](https://novacta.github.io/analytics/html/9FFC4131.htm) |
| 33 | + and |
| 34 | + [ReadOnlyComplexMatrix](https://novacta.github.io/analytics/html/E2E3D527.htm). |
| 35 | +* Overloaded operators |
27 | 36 | supporting sums, subtractions, multiplications, and divisions whose operands |
28 | | - are matrices or scalars. |
| 37 | + are (writable or read-only) matrices or scalars, eventually mixing Complex or |
| 38 | + Double based operands. |
29 | 39 | * Matrix slicing where rows or columns are referred to |
30 | 40 | using integers, strings, or |
31 | | - [collections of indexes](http://novacta.github.io/analytics/html/T_Novacta_Analytics_IndexCollection.htm), |
32 | | - possibly avoiding dense allocations via specialized |
33 | | - [indexers](http://novacta.github.io/analytics/html/P_Novacta_Analytics_DoubleMatrix_Item_1.htm). |
34 | | -* [Out-](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_Apply.htm) |
| 41 | + [collections of indexes](https://novacta.github.io/analytics/html/9B3BDFD7.htm). |
| 42 | +* Out- or In- place application |
| 43 | + of operations to matrix entries (for examples, see methods |
| 44 | + [Apply](https://novacta.github.io/analytics/html/4A64A4C1.htm) |
35 | 45 | or |
36 | | - [In-](http://novacta.github.io/analytics/html/M_Novacta_Analytics_DoubleMatrix_InPlaceApply.htm) |
37 | | - place application of operations to matrix entries. |
| 46 | + [InPlaceApply](https://novacta.github.io/analytics/html/7887E503.htm)). |
| 47 | +* Matrix |
| 48 | + [Singular Value Decompositions](https://novacta.github.io/analytics/html/D334409A.htm) |
| 49 | + and |
| 50 | + [Spectral Decompositions](https://novacta.github.io/analytics/html/17359C6B.htm) |
| 51 | + of symmetric/Hermitian matrices. |
| 52 | + |
38 | 53 |
|
39 | | -## Matrix data presentation and interaction in application UI |
| 54 | +### Matrix data presentation and interaction in application UI |
40 | 55 |
|
41 | 56 | * Matrices can be exploited as |
42 | 57 | [binding sources](https://docs.microsoft.com/en-us/dotnet/desktop-wpf/data/data-binding-overview#basic-data-binding-concepts) |
43 | 58 | by interpreting them as |
44 | | - [collections](http://novacta.github.io/analytics/html/T_Novacta_Analytics_DoubleMatrixRowCollection.htm) |
| 59 | + [collections](https://novacta.github.io/analytics/html/CF178F79.htm) |
45 | 60 | of |
46 | | - [rows](http://novacta.github.io/analytics/html/T_Novacta_Analytics_DoubleMatrixRow.htm). |
| 61 | + [rows](https://novacta.github.io/analytics/html/8C5BBFE.htm). |
47 | 62 | See the |
48 | 63 | [BindingToRowCollection](https://github.com/novacta/analytics/blob/master/samples/BindingToRowCollection) |
49 | 64 | sample for further details. |
50 | 65 |
|
51 | | -## Summary statistics |
| 66 | +### Summary statistics |
52 | 67 |
|
53 | | -* [Descriptive statistical functions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Stat.htm), |
| 68 | +* [Descriptive statistical functions](https://novacta.github.io/analytics/html/ADDA5F5.htm), |
54 | 69 | operating on rows, columns, or all matrix entries. |
55 | 70 |
|
56 | | -## Multivariate data analysis |
| 71 | +### Multivariate data analysis |
57 | 72 |
|
58 | 73 | * Represent multi-dimensional, weighted points by taking |
59 | 74 | their coordinates with respect to whatever |
60 | | - [basis](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_Basis.htm) |
| 75 | + [basis](https://novacta.github.io/analytics/html/59623234.htm) |
61 | 76 | using |
62 | | - [cloud](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_Cloud.htm) |
| 77 | + [cloud](https://novacta.github.io/analytics/html/781E2F6F.htm) |
63 | 78 | instances. |
64 | 79 | * Project clouds along their |
65 | | - [principal](http://novacta.github.io/analytics/html/T_Novacta_Analytics_PrincipalProjections.htm) |
| 80 | + [principal](https://novacta.github.io/analytics/html/3ADFD77D.htm) |
66 | 81 | directions by identifying new, uncorrelated variables |
67 | 82 | whose variances enhance our comprehension of the overall cloud |
68 | 83 | variability, possibly approximating the cloud in a lower dimensional space. |
69 | 84 | * Compute the |
70 | | - [principal components](http://novacta.github.io/analytics/html/T_Novacta_Analytics_PrincipalComponents.htm) |
| 85 | + [principal components](https://novacta.github.io/analytics/html/3ADC7B56.htm) |
71 | 86 | of a matrix, an application of principal projections |
72 | 87 | to the classical context in which matrix rows are |
73 | 88 | interpreted as point coordinates taken with respect to |
74 | 89 | bases depending on specific coefficients assigned to the |
75 | 90 | observed variables. |
76 | | -* [Correspondence](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Correspondence.htm) |
| 91 | +* [Correspondence](https://novacta.github.io/analytics/html/8945AB1F.htm) |
77 | 92 | analysis of a contingency table. |
78 | 93 | * Cluster Analysis |
79 | | - * [Discover](http://novacta.github.io/analytics/html/M_Novacta_Analytics_Clusters_Discover.htm) |
| 94 | + * [Discover](https://novacta.github.io/analytics/html/32B0ECC0.htm) |
80 | 95 | optimal clusters in a data set by minimizing the sum of |
81 | 96 | intra-cluster squared deviations. |
82 | | - * [Explain](http://novacta.github.io/analytics/html/M_Novacta_Analytics_Clusters_Explain.htm) |
| 97 | + * [Explain](https://novacta.github.io/analytics/html/76A18A84.htm) |
83 | 98 | existing clusters selecting features by minimizing the |
84 | | - [Davies-Bouldin index](http://novacta.github.io/analytics/html/M_Novacta_Analytics_IndexPartition_DaviesBouldinIndex.htm). |
| 99 | + [Davies-Bouldin index](https://novacta.github.io/analytics/html/40CF1518.htm). |
85 | 100 |
|
86 | | -## Categorical data sets |
| 101 | +### Categorical data sets |
87 | 102 |
|
88 | 103 | * Create |
89 | | - [categorical data sets](http://novacta.github.io/analytics/html/T_Novacta_Analytics_CategoricalDataSet.htm) |
| 104 | + [categorical data sets](https://novacta.github.io/analytics/html/B39F799B.htm) |
90 | 105 | by |
91 | | - [encoding](http://novacta.github.io/analytics/html/M_Novacta_Analytics_CategoricalDataSet_Encode_1.htm) |
| 106 | + [encoding](https://novacta.github.io/analytics/html/CBC7240B.htm) |
92 | 107 | categorical or numerical data from a stream. |
93 | 108 | * Categorize continuous data |
94 | | - [by entropy minimization](http://novacta.github.io/analytics/html/M_Novacta_Analytics_CategoricalDataSet_CategorizeByEntropyMinimization.htm). |
95 | | -* [Multiple Correspondence](http://novacta.github.io/analytics/html/T_Novacta_Analytics_MultipleCorrespondence.htm) |
| 109 | + [by entropy minimization](https://novacta.github.io/analytics/html/5D736549.htm). |
| 110 | +* [Multiple Correspondence](https://novacta.github.io/analytics/html/C792CEE0.htm) |
96 | 111 | analysis of a categorical data set. |
97 | 112 | * Classify items from a feature space via |
98 | | - [ensembles](http://novacta.github.io/analytics/html/T_Novacta_Analytics_CategoricalEntailmentEnsembleClassifier.htm) |
| 113 | + [ensembles](https://novacta.github.io/analytics/html/401D2F27.htm) |
99 | 114 | of |
100 | | - [categorical entailments](http://novacta.github.io/analytics/html/T_Novacta_Analytics_CategoricalEntailment.htm). |
| 115 | + [categorical entailments](https://novacta.github.io/analytics/html/39D67B46.htm). |
101 | 116 |
|
102 | | -## Randomization |
| 117 | +### Randomization |
103 | 118 |
|
104 | 119 | * Use Mersenne Twister |
105 | | - [random number generators](http://novacta.github.io/analytics/html/T_Novacta_Analytics_RandomNumberGenerator.htm) |
| 120 | + [random number generators](https://novacta.github.io/analytics/html/E076C0AC.htm) |
106 | 121 | to draw samples from basic statistical distributions. |
107 | 122 | * Represent additional |
108 | | - [probability distributions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_ProbabilityDistribution.htm) |
| 123 | + [probability distributions](https://novacta.github.io/analytics/html/1984D730.htm) |
109 | 124 | to compute and sample from specific cumulative or probability density |
110 | 125 | functions. |
111 | 126 | * Select |
112 | | - [random samples](http://novacta.github.io/analytics/html/T_Novacta_Analytics_RandomSampling.htm) |
| 127 | + [random samples](https://novacta.github.io/analytics/html/FCF45A04.htm) |
113 | 128 | from a finite population, with |
114 | | - [equal](http://novacta.github.io/analytics/html/T_Novacta_Analytics_SimpleRandomSampling.htm) |
| 129 | + [equal](https://novacta.github.io/analytics/html/37F088DE.htm) |
115 | 130 | or |
116 | | - [unequal](http://novacta.github.io/analytics/html/T_Novacta_Analytics_UnequalProbabilityRandomSampling.htm) |
| 131 | + [unequal](https://novacta.github.io/analytics/html/EC35632C.htm) |
117 | 132 | probabilities of being inserted in a sample. |
118 | | -* [Permute randomly](http://novacta.github.io/analytics/html/T_Novacta_Analytics_RandomIndexPermutation.htm) |
| 133 | +* [Permute randomly](https://novacta.github.io/analytics/html/C0371263.htm) |
119 | 134 | a given collection of integers. |
120 | 135 |
|
121 | | -## Optimization |
| 136 | +### Optimization |
122 | 137 |
|
123 | | -* [Optimize continuous functions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_ContinuousOptimization.htm) |
| 138 | +* [Optimize continuous functions](https://novacta.github.io/analytics/html/3D985383.htm) |
124 | 139 | having multiple arguments ranging over the real line. |
125 | 140 | * Apply the Cross-Entropy method to |
126 | 141 | represent continuous or combinatorial optimization problems via |
127 | | - [Cross-Entropy contexts for optimization](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_SystemPerformanceOptimizationContext.htm), |
| 142 | + [Cross-Entropy contexts for optimization](https://novacta.github.io/analytics/html/1C32368C.htm), |
128 | 143 | and solve them using a |
129 | | - [Cross-Entropy optimizer](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_SystemPerformanceOptimizer.htm). |
| 144 | + [Cross-Entropy optimizer](https://novacta.github.io/analytics/html/E252E84.htm). |
130 | 145 | * Take advantage of specialized Cross-Entropy contexts to |
131 | 146 | optimize functions having as arguments |
132 | | - [continuous variables](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_ContinuousOptimizationContext.htm), |
133 | | - [combinations](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_CombinationOptimizationContext.htm), |
134 | | - [partitions](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_PartitionOptimizationContext.htm), |
| 147 | + [continuous variables](https://novacta.github.io/analytics/html/A8203153.htm), |
| 148 | + [combinations](https://novacta.github.io/analytics/html/236BBBCF.htm), |
| 149 | + [partitions](https://novacta.github.io/analytics/html/240B10D.htm), |
135 | 150 | or |
136 | | - [ensembles of categorical entailments](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_CategoricalEntailmentEnsembleOptimizationContext.htm). |
| 151 | + [ensembles of categorical entailments](https://novacta.github.io/analytics/html/EB7894F3.htm). |
137 | 152 |
|
138 | | -## Rare event simulation |
| 153 | +### Rare event simulation |
139 | 154 |
|
140 | 155 | * Express the problem of estimating the probability of |
141 | | - rare events via |
142 | | - [Cross-Entropy contexts for rare event simulation](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_RareEventProbabilityEstimationContext.htm), |
| 156 | + rare events via |
| 157 | + [Cross-Entropy contexts for rare event simulation](https://novacta.github.io/analytics/html/F877CA6A.htm), |
143 | 158 | solvable using a |
144 | | - [Cross-Entropy estimator](http://novacta.github.io/analytics/html/T_Novacta_Analytics_Advanced_RareEventProbabilityEstimator.htm). |
| 159 | + [Cross-Entropy estimator](https://novacta.github.io/analytics/html/463F9A03.htm). |
145 | 160 |
|
146 | 161 | ## Documentation |
147 | 162 |
|
148 | 163 | The current documentation includes the following topics. |
149 | 164 |
|
150 | | -* [Novacta.Analytics release notes](http://novacta.github.io/analytics/html/41221eed-891e-4925-a654-ecf8b2d38c65.htm). |
151 | | -* [Testing environment](http://novacta.github.io/analytics/html/07a926cb-9c3c-432d-998b-0af7eea037f6.htm) |
| 165 | +* [Novacta.Analytics release notes](https://novacta.github.io/analytics/html/e6a1e4b5-02ef-4f97-9bd4-3bf049441535.htm). |
| 166 | +* [Build and test](https://novacta.github.io/analytics/html/07a926cb-9c3c-432d-998b-0af7eea037f6.htm) |
152 | 167 | instructs about the setup required |
153 | | - to test the assembly. |
154 | | -* [Novacta.Analytics namespaces](http://novacta.github.io/analytics/html/G_Novacta_Analytics.htm) |
155 | | - contains reference information about library |
156 | | - types by namespace. |
| 168 | + to build and test the assembly. |
| 169 | +* Namespaces [Novacta.Analytics](https://novacta.github.io/analytics/html/2406EB43.htm) |
| 170 | + and [Novacta.Analytics.Advanced](https://novacta.github.io/analytics/html/F249DE1E.htm) |
| 171 | + contain reference information about assembly types. |
157 | 172 |
|
158 | 173 | ## Versioning |
159 | 174 |
|
160 | | -We use [SemVer](http://semver.org/) for versioning. |
161 | | -For available versions, see the |
162 | | -[tags on this repository](https://github.com/novacta/analytics/tags). |
| 175 | +We use [SemVer](http://semver.org/) for versioning. |
| 176 | +For available versions, see the |
| 177 | +[tags on this repository](https://github.com/novacta/analytics/tags). |
163 | 178 |
|
164 | 179 | ## Copyrights and Licenses |
165 | 180 |
|
166 | | -All source code is Copyright (c) 2020 Giovanni Lafratta. |
| 181 | +All source code is Copyright (c) 2018 Giovanni Lafratta. |
167 | 182 |
|
168 | | -**Novacta.Analytics** is licensed under the |
169 | | -[MIT License](https://github.com/novacta/analytics/blob/master/LICENSE.md). |
| 183 | +**Novacta.Analytics** is licensed under the |
| 184 | +[MIT License](https://github.com/novacta/analytics/blob/master/LICENSE.md). |
170 | 185 |
|
171 | | -This project relies on native dynamic-link libraries obtained via the Intel® MKL custom DLL builder. |
172 | | -[MKL](https://software.intel.com/en-us/mkl) is Copyright (c) 2018 Intel Corporation and |
| 186 | +This project relies on native dynamic-link libraries obtained |
| 187 | +via the Intel® oneAPI Math Kernel Library customDLL builder. |
| 188 | +[oneAPI MKL](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html) is |
| 189 | +Copyright (c) 2021 Intel® Corporation and |
173 | 190 | licensed under the |
174 | 191 | [ISSL](https://software.intel.com/en-us/license/intel-simplified-software-license) |
175 | | -terms. |
| 192 | +terms. |
0 commit comments