WO2009149926A2 - System und verfahren zur rechnerbasierten analyse grosser datenmengen - Google Patents
System und verfahren zur rechnerbasierten analyse grosser datenmengen Download PDFInfo
- Publication number
- WO2009149926A2 WO2009149926A2 PCT/EP2009/004196 EP2009004196W WO2009149926A2 WO 2009149926 A2 WO2009149926 A2 WO 2009149926A2 EP 2009004196 W EP2009004196 W EP 2009004196W WO 2009149926 A2 WO2009149926 A2 WO 2009149926A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- value
- client computer
- interval
- values
- Prior art date
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 119
- 238000000034 method Methods 0.000 title claims description 88
- 238000012545 processing Methods 0.000 claims abstract description 44
- 238000013144 data compression Methods 0.000 claims abstract description 28
- 238000003860 storage Methods 0.000 claims abstract description 18
- 238000007405 data analysis Methods 0.000 claims abstract description 17
- 230000006837 decompression Effects 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 92
- 238000009826 distribution Methods 0.000 claims description 63
- 210000002569 neuron Anatomy 0.000 claims description 52
- 238000007906 compression Methods 0.000 claims description 34
- 230000006835 compression Effects 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 33
- 238000007418 data mining Methods 0.000 claims description 16
- 238000007781 pre-processing Methods 0.000 claims description 13
- 230000003247 decreasing effect Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 4
- 238000013459 approach Methods 0.000 claims description 3
- 230000004888 barrier function Effects 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims 2
- 230000037431 insertion Effects 0.000 claims 2
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000012549 training Methods 0.000 abstract description 14
- 238000013528 artificial neural network Methods 0.000 abstract description 7
- 238000011065 in-situ storage Methods 0.000 abstract 5
- 238000003062 neural network model Methods 0.000 abstract 3
- 238000004519 manufacturing process Methods 0.000 description 10
- 230000002452 interceptive effect Effects 0.000 description 7
- 238000000491 multivariate analysis Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013480 data collection Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 241001673112 Citrus clementina Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013398 bayesian method Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000007907 direct compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/10—Pre-processing; Data cleansing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2137—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
Definitions
- SOM self-adapting neural network
- Kohonen clustering works with very few neurons, typically between about 4 and about 20 neurons. Each of these neurons represents a 'cluster', ie a homogeneous group of data sets.
- This technique is primarily used for data segmentation and is implemented in many data mining software packages, such as SPSS Clementine or IBM DB2 Warehouse. (See, for example, Ch. Ballard et al., Dynamic Warehousing: Data Mining Made Easy, IBM Redbook, 2007).
- SOM map analysis uses relatively large neural networks of, for example, 30 ⁇ 40 neurons for data analysis. Homogeneous data segments are represented by local groups of neurons with similar characteristics. SOM maps are used for data exploration, segmentation, prediction, simulation, and optimization (see, for example, R. Otte, V. Otte, V. Kaiser, Data Mining for Industrial Practice, Hanser Verlag, Kunststoff, 2004).
- production data in the engineering, chemical, automotive, and supplier industries for example, 10 million units produced, 10 nominal component and production line information, 10 binary component and equipment information, 10 numerical production data (measured Tolerance data, sensor data, recorded production times, machine data, ...)
- the aim of the SOM analysis here is quality assurance, error source analysis, early warning, production process optimization.
- customer data in retail, financial or insurance companies 10 million customers, 10 nominal demographics (marital status, occupational group,
- Region type of dwelling, ...), 10 binary features of interests and services / products used (gender, possesses credit card, operates online banking, ...) / 10 numerical characteristics (annual income, age, annual turnover, creditworthiness,. ..).
- the aim of the SOM analysis here is customer segmentation, the prediction of customer value, creditworthiness, risk of damage, ... as well as the optimization of marketing campaigns.
- Each neuron of the self-adapting neuron network has as many signal inputs as each of the individual data sets has characteristics. Once the neuron network has learned the data, the following tasks can be performed with the trained neuron network, among others:
- Visual interactive data exploration interactive discovery of interesting subgroups, correlations between features and general contexts using various visualizations of the data generated from self-organizing feature maps.
- Document US 2007/0118399 A1 describes an information system which stores data in an integrated knowledge database and allows access to and evaluation of data.
- the information system integrates data from various data sources.
- the data obtained are then processed by logical components, for example by means of neural networks.
- the processed data is ready for retrieval by human or machine users after processing.
- This arrangement has the technical effect of increasing the efficiency and security of data analysis. Another technical effect is to reduce the requirements for the required computer resources compared to the conventional approach. Finally, the data transfer rate and the subsequent data processing are positively influenced.
- the type of data compression can be adapted to the structure of the data (Boolean, numeric, textual, etc.). This allows different-structured or differently-captured source data (e.g., flat files, database tables, Excel spreadsheets) to be transformed into a compressed form that has only about 5% to about 12% of the original data storage requirement. Since only this compressed form of data from the on-site client computer is sent to the analysis server, as a further technical advantage, a faster data transfer with less demand on the data channel is possible.
- the data type dependent compression of the original data causes a simultaneous
- the compression may also be such that the accuracy of the data in compression / decompression does not unduly distort the result of the analysis.
- the compressed data form is very well suited for neuron network analysis, but also for fast interactive data exploration, e.g. through multivariate statistics, where the results should be real-time or near-real-time (with little waiting - less than a few tens of seconds).
- an electronic data processing system is used to analyze data.
- the electronic data processing system has an analysis server 10 and one or more on-site client computers 12.
- the analysis server is, for example, a PC with several 3 GHz Intel® CPUs and 64 GigaBytes of RAM as main memory.
- a self-adapting neuron network is to be implemented as a data object to be trained on a large database with a multiplicity of data records with many features.
- the on-premises client computer 12 is configured and programmed to subject data supplied to it to data preprocessing and / or data compression before the data via an electronic network 14, for example the Internet, are sent to the analysis server 10.
- the analysis server 10 is also configured and programmed to train the self-adapting neuron network with the received, preprocessed / compressed data by repeatedly presenting the data to the self-adapting neuron network and then performing an analysis on its own to create adaptive neuron network model.
- the analysis server then causes the self-adapting neuron network model to be sent from the analysis server 10 to the on-premises client computer 12 also via the network 14.
- the on-premises client computer 12 is finally there and programmed to decompress the data of the self-adapting neuron network model.
- Data compression can be used for multiple types of powerful interactive data analysis and exploration techniques that allow for real-time interactive work even on large data sources larger than one gigabyte in size.
- Interactive multivariate statistics display value distribution diagrams (histograms) side by side on the screen for several or all characteristics of a data collection. If you select one part of the histogram bars in one or more of the diagrams in an interactive multivariate statistic, the remaining frequencies are immediately displayed in the other diagrams. This allows for a very flexible 'drill down' into the data without the hassle of building and maintaining a multidimensional OLAP cube. The problem is that response times slow down on large volumes of data.
- the IBM DB2 Data Warehouse Edition software takes this into account by performing multivariate analysis by default only on a dataset of 1000 datasets.
- the procedure described allows the treatment of large amounts of data with a significant increase in the volume of data that can be analyzed.
- For textual (nominal) data a drastic reduction in storage space requirements is possible, and the analysis speed for predominantly non-numerical data increases significantly.
- the analysis speed also increases by accelerating the training of the SOM models.
- the data anonymization is done by dividing the data into a confidential and a non-confidential part. Only the non-confidential part is transmitted to the analysis server and is analyzed by it. The confidential part remains on the on-site client. This can be set up and programmed to merge this anonymous result with the confidential part of the data to a deanonymized plaintext analysis result upon arrival of the anonymized analysis result from the analysis server.
- the anonymizing sensitive data to a flat file in the broadest sense (ie, for example, a comma, semicolon, or tab-delimited text file with variable column width, a text file with a fixed column width, a table of a spreadsheet program such as Microsoft ® Excel ® or Open Office ®, a Table in a relational, object-oriented or XML database, etc.) while removing all potentially sensitive information from the data.
- the confidential information is stored in a separate data description.
- the information filtered out is, for example, the following: firstly, feature names that are replaced by the anonymized names such as CO, Cl,..., DO, Dl,..., BO, Bl,..., NO, N1,.
- C stands for 'continuous numeric'
- D for 'discrete numeric'
- B for binary
- N for nominal (textual);
- textual features that are replaced by anonymized values such as V, Vl, ... or VALUEO, VALUEl, ...
- Other possible anonymizations for example, in numerical features are not only the first two moments of the distribution, m and s, but also even higher moments such as skewness or kurtosis.
- the above-described anonymization of the data in the compression process makes it possible to use a client-server architecture for data analysis, even for confidential data: Because a software program component is provided for compressing the data in the client, for example, a production company can perform a quality analysis. Improvement of its production processes would like to carry out with the operator of the analysis server the software program component for training the self-adapting neuron network with the aid of the received compressed data and the software program component for performing an analysis, on its own on-site client computer, first preprocessing / compressing (and anonymizing) the data before he sends them to the analysis server to have the analysis done with the preprocessed / compressed, anonymized data. The analysis server returns the anonymized neuron network model and the on-premises client computer replaces the anonymized values therein with the original values.
- the anonymized data can still be encrypted during the transmission process via a network.
- the data anonymization described above is fully compatible with conventional secure transmission protocols and encryption methods such as e.g. PBP, https or scp.
- encryption of the data previously subjected to anonymization is not absolutely necessary.
- the technical advantage of anonymisation is that in addition to the reduction in the volume of data (based on the collected original data), confidentiality of the data is maintained not only during the transfer via the network, but also throughout the analysis on the analysis server.
- a further encryption and decryption requiring resources for the transmission between the analysis server and the on-site client can actually be omitted, since the anonymized data without the correlation to the plaintext portion are incomprehensible.
- An insight into the confidential data is thus not only a potential Mitleser during transmission denied, but also the operator of the analysis server.
- the analysis server may be configured and programmed to train the self-adapting neuron network with the received anonymized data as many times as necessary until an out-of-convergence network condition is established that adequately represents the data.
- the data is presented to the self-adapting neuron network about 100 to about 200 times.
- the on-premises client computer may be configured and programmed to subject data supplied thereto up to about 10 gigabytes to several terabytes of data pre-processing and data compression. These data sizes refer to typical large database tables and the available computer technology of the year 2008. If the general computer performance and database size continues to increase exponentially (Moore's Law 7 ), the mentioned data sizes become proportional grow.
- the analysis server may also be set up and programmed to provide, in addition to or instead of SOM modeling, other data mining or data analysis techniques, such as association rule procedures, decision tree techniques,
- Bayesian methods, regression methods or other neural analysis methods in addition to the SOM method. These mentioned methods and many more can also be based directly on the compressed data format described above and thereby run significantly faster.
- the on-premises client computer may be configured and programmed to once read the data supplied to it during data preprocessing, and to transform original features contained therein to purely numerical normalized features.
- the on-site client computer can be set up and programmed to compress the normalized numerical feature values of the data supplied to it in the data compression, so that on average only between two bits and about one byte is required as storage space per feature expression.
- the compressed data in many subsequent analyzes - which may be performed with different analysis methods - by a single loading completely into the memory of the analysis server for processing by the software program component for training the self-adapting neuron network (and / or a another analysis method) and the software program component to perform an analysis. Repeated, time-consuming loading of the data for each analysis step is therefore unnecessary.
- the adjusted, high compression rate also allows the normalized, compressed data to persist on the mass storage in addition to the original data.
- the usual 100 to 200 times record-by-record reading, parsing and transferring the data into a format suitable for the analysis can be dispensed with, even if the compressed data does not fit completely into the working memory of the computer used.
- the combination of reading a record from disk as a string, and then parsing, including mapping strings to numeric values, can take about 10,000 times as long as accessing a compressed, already parsed, and normalized record in memory (which is a factor of about 1,000 by the higher access speed, and a factor of about 10 results in the data size reduced / compressed to about 5% to about 12%).
- the on-site client computer can also be set up and programmed to specify a data compression method to be used, depending on a compression error acceptable for the respective analysis task, the compression method to be used and the compression rate to be achieved depending on the different feature types (Boolean) , numerical, nominal (textual)) and to select from the accuracy requirements of the selected analysis technique.
- a data compression method to be used depending on a compression error acceptable for the respective analysis task, the compression method to be used and the compression rate to be achieved depending on the different feature types (Boolean) , numerical, nominal (textual)) and to select from the accuracy requirements of the selected analysis technique.
- the on-site client computer can be set up and programmed so that the mean prediction error for numerical features - ie the difference between the actual normalized feature value of a data set and the normalized value, the best overall for which data record matching neuron for the feature predicts - in sensibly well-trained SOM networks usually lies between 0.01 and 0.1.
- the advantage is that in this way the network does not exactly try to reproduce every feature expression existing randomly in a particular data record, and thus random fluctuations and coincidences in the training data sets are not learned as general laws in the data (so-called 'over-training' of the network ). Rather, when allowing for an error, the self-adapting neuron network will provide usable information even when applied to new data sets that were not yet included in the training data.
- the on-premises client computer may be configured and programmed to perform a discretization of the normalized numerical feature values into a number of discrete intervals such that a mean discretization error
- the on-premises client may also be configured and programmed to store the discretized numerical value in more or less than 8 bits. If an analysis method requires a higher accuracy than the SOM method, e.g. 1022 different interval indices (plus 2 indices for 'value not present' and 'invalid throw') are stored on 10 bits - which would reduce the discretization error by a factor of 4 compared with storage on 8 bits.
- the on-premises client machine may also be set up and programmed so that the interval division is value distribution dependent, non-equidistant.
- the interval widths of the discrete subintervals in areas of high value densities are preferably determined to be particularly low.
- the on-site client computer can be set up and programmed in such a way that in the case of numerical data value distributions which follow the Gaussian or normal distribution with a mean value m and a standard deviation s,
- the value density in the range [m-s, m + s] is high, decreases sharply in the distance range of Is to 2s from the mean value and rapidly approaches 0 at even larger distances from the mean value.
- interval division described above is optimized for 8-bit storage. If one uses more (less) than 8 bits per value, multiply the above numbers by a factor of 2 per more (less) used bit.
- the on-site client computer may be set up and programmed so that the discrete intervals as a function of m and s are distributed symmetrically about the mean m, the interval [ms / 64, m [the interval position 127, and the Interval [m, m + s / 64 [which has position 128, where the numeric value assigned to each interval is the interval midpoint, and where the 0 or 255 interval positions are reserved for invalid or missing values. These numbers are optimized for storage on 8 bits.
- This average discretization error is about 0.005 ⁇ s, that is smaller than the equidistant at an appropriate discretization of the area [m-7s, 7s + m] to be achieved in 254 intervals, medium discretization error by about a factor. 3
- the mean discretization error for the normalized numerical features is about 0.0013 and is sufficiently accurate for SOM networks.
- the on-site client computer may be configured and programmed to read a small fraction of about 1 per mille to about 10% of the data sets to determine the mean (m) and standard deviation (s) of the feature to be discretized, for example each numerical feature in the data to calculate a provisional mean (m (vorl) ) and a preliminary spread (s (vorl) ).
- the on-premises client machine may be further configured and programmed to read all records and for all numerical features a preliminary discretization based on the provisional mean (m (pre) ) and the preliminary spread (s (a prior ) ).
- the on-site client computer can be set up and programmed to
- This procedure can be used as pre-discretization prior to the actual discretization to save computation time.
- the procedure has the technical advantage that this provisional discretization on the one hand requires only 16 bits (2 bytes) of memory for a numerical value, ie reduces the data size to about one quarter compared to a double floating-point number.
- this preliminary discretization is also can be generated in a single pass through the entire original data, even if mean and other distribution parameters (standard deviation, skewness, distribution) are not yet known at the beginning.
- Direct compression into an 8-bit format is only possible if the distribution parameters have been determined exactly before - which normally requires a (time-consuming) separate reading pass through the entire original data required.
- the preliminary discretization uses narrow, equidistant intervals and can accumulate values at arbitrary points in the
- the on-premises client machine may be further configured and programmed to log the frequency records of the interval occupancies and derive therefrom the value distribution form and the appropriate final discretization.
- the on-site client computer can be set up and programmed to form two open end intervals with at least approximately equal distribution and 2 n -4 equidistant intervals between them, in which one of the provisional interval limits is defined as the upper limit of the lower end interval in the lower end interval total about l / (2 n - 2) of all valid values and the width of the 2 n - 4 equidistant intervals is the smallest multiple of the provisional interval width, which sets the occupation of the remaining upper end interval not more than 1 / ( 2 n - 2) of all valid values.
- the on-site client computer can be set up and programmed to set an existing provisional interval limit as the next interval limit (g 2 ) such that the absolute value of the upper limit (gi ) difference of the lower end interval minus the next interval limit (g 2 ) minus desired width (b) (
- On-site client computer may be set up and programmed to set the tentative interval limit closest to the true mean (m) as the midpoint (m), to set the standard deviation (s) to approximate the true standard deviation, and that s / 64 is a multiple of the existing interval width, summarizing the existing tentative intervals into larger new intervals having a decreasing width distribution of s / 64, s / 32, s / 16, .... With memory width deviating from 8 bit per value, correspondingly different numerical factors result.
- the methods described so far allow to achieve a sufficiently accurate discretization adapted to the actual value distribution of each numerical feature, with 8-bit storage space per feature or another to the analytical methods to be used zugenitte memory width, gets by.
- the original data only needs to be read once.
- the on-premises client machine may be further configured and programmed to split nominal (textual) features into multiple Boolean or numeric 0/1 characteristics for use in SOM map analysis, one for each valid nominal value of the nominal feature. In a given data set, at most one of these 0/1 characteristics can always have the value 1. Therefore, data storage can be made such that, instead of the nominal value of a feature, the position (index) of that value is stored in the list of all valid values of that feature. In addition, two index values can be maintained, representing 'no value present' and 'value does not appear in the list of valid values'.
- the on-premises client machine may be further configured and programmed to group the less common ones into one or more groups for nominal features of a great many different types. For example, for the SOM method, usually a single treatment is more than about 15 nominal
- Characteristic values per characteristic do not make sense. In this case, you can treat the 14 most common characteristics as individual values and combine all other characteristics into the group "other".
- the on-premises client machine may be set up and programmed to do the following:
- the dictionary is sorted by decreasing frequency of occurrence.
- the 14 most common values are considered separate values and assigned the index numbers 0 through 13. All other values in the dictionary, as well as the previous "other value” index, are assigned the value 14. From the previous index 'value not present' becomes index 15.
- the provisional index numbers are replaced by the new index numbers. Each index number can then be stored in no more than 4 bits of memory.
- this method achieves a sufficiently accurate compression adapted to the actual value frequencies of each nominal feature, which requires 4 bits of memory per nominal feature. The original data had to be read only once completely.
- the new index can occupy 8 bits of memory rather than 4 bits. Then you can display up to 254 different individual values.
- Preliminary compression can be paral- lelized on partitioned data. Then there is an exchange of data between the parallel threads to determine global statistics (mean, standard deviation) or value frequencies. After this information has been communicated between each thread, the final compression is done in parallel.
- the described compression techniques also cause anonymization of the data. For example, if a user of a data analysis server does not want to provide his data unencrypted to the server for privacy or secrecy reasons, he can perform the data compression on his own computer (on-premises client computer).
- the compressed data (which contains only interval indexes for numeric data and value indices for binary and nominal data) are transmitted to the data analysis server.
- the analysis server builds analyzes, scores, SOM models, and so on, based on the interval and value indices of the compressed data, and sends those results back to the on-premises client machine. This is set up and programmed to associate the results with the decompression information, providing the results with the original information.
- Binary and nominal features are not distinguished but compressed as categorical features on 4-bit memory size.
- the example implementation is programmed in the programming language C ++.
- Style conventions were followed: Variable names and function names begin with lowercase letters, types and uppercase classes. Constants consist only of uppercase letters. Instance variables of classes have the prefix 'iv' or 'piv' if it is a pointer variable.
- the implementation consists of an enumeration type and 4 main classes: enum FieldType ⁇ CON ⁇ NUOUS, DISCR_NUMERIC, BINARY, NOMINAL ⁇ describes the feature types (floating-point number, integer, binary, nominal).
- the GaussianCompress class performs the compression and decompression of a numerical feature (assuming that the value distribution is approximately normally distributed).
- the DataDescription class describes the training data: feature names, feature types, number of different valid values of nominal and discrete numeric features, averages, and standard deviations of numerical features.
- the class contains a GaussianCompress type object for each numeric feature.
- the DataRecord class contains the data of a single record. The class is able to read and decompress the binary compressed data format from a DataPage object (using the GaussianCompress objects it finds in the DataDescription's DataDescription).
- the DataPage class contains a series of compressed records that it can read in and compress using the appendDataRecord method, and retrieves it using the retrieveNextDataRecord method in the form of a DataRecord object, automatically decompressing it.
- Each class instance thus contains some or all of the training data in compressed form for the training of a SOM network.
- the method readRecordFromDataPage decompresses the data record, which is stored from the memory address pData.
- the decompressed numerical values are written to the pivNumValues field, the decompressed binary and nominal field values to the pivCatValues field.
- the appendDataRecord method compresses the record dataRecord, which is in the form of a character string, where the individual feature values are separated by the separator character ivDataDescr.getSeparator ().
- the class GaussianCompress stores mean m and standard deviation s of a distribution of numerical feature values.
- the class will map any numerical value to one of 256 discrete intervals, i. to a discrete value between 0 and 255, and vice versa for a given interval index to provide the numerical value of the interval midpoint.
- the discrete intervals are defined as a function of m and s as follows
- the intervals are distributed symmetrically around the mean m. That is, the interval [m- s / 64, m [has the interval position 127, and [m, m + s / 64] the position 128.
- the numerical value assigned to each interval is the interval center. That is, the interval 127 is assigned the value ms / 128, and the interval 128 is the value m + s / 128.
- the Interval 1 is assigned the value m-6.5s, the interval 254 the value m + 6.5s.
- the interval positions 0 and 255 are reserved for invalid or missing (SQL NULL) values.
- the numerical value assigned to these positions is DBL-MAX.
- size_t getNbOfRecords () const ⁇ return ivNbRecords; ⁇ size_t getNbOfFields () const ⁇ return ivNbFIds; ⁇ size_t getNbOfNumericFieldsO const ⁇ return ivNbContNumFIds + ivNbDiscrNumFIds; ⁇ size_t getNbOfCategoricalFields () const ⁇ return ivNbBinaryFIds + ivNblMominalFIds; ⁇ size_t getNbOfContinuousFields () const ⁇ return ivNbContNumFIds; ⁇ size_t getNbOfDiscrNumericFields () const ⁇ return ivNbDiscrNumFIds; ⁇ size_t getNbOfBinaryFields () const ⁇ return
- size_t getFieldIndex (size_t index) const ⁇ return pivFldIndex [index]; ⁇
- FieldType getFieldType (size_t index) const ⁇ return pivFldTypes [index]; ⁇
- size_t ivNbContNumFIds size_t ivNbDiscrNumFIds; size_t ivNbBinaryFIds; size_t ivNbNominalFIds; size_t ivNbSetValuedFIds; size_t ivNbFIds; size_t ivNbRecords;
- the analysis server has one or more computer program objects to implement a self-adapting neuron network that is to be trained on a database having a plurality of records with many features.
- the on-site client computer has one or more computer program objects for data supplied to it data pre-processing and / or data compression, and the data of the Send on-site client machine to the analysis server.
- One or more analysis server computer program objects use the received, preprocessed / compressed data to train the self-adapting neuron network by repeatedly presenting the data to the self-adapting neuron network.
- One or more analysis server computer program objects then perform an analysis to create a self-adapting neuron network model or other data mining analysis result.
- One or more computer program objects of the analysis server cause the self-adapting neuron network model or other data mining analysis result to be sent from the analysis server to the on-premises client computer.
- One or more computer program objects of the on-premises client computer subject the data of the self-adapting neuron network model or other data mining analysis result to decompression.
- One or more computer program objects of the on-premises client computer can adapt the type of data compression to the type or structure of the data.
- One or more computer program objects of the analysis server can train the self-adapting neuron network with the received anonymized data until such time as there is an out-of-convergence network state that adequately represents the data.
- One or more analysis server computer program objects may present the data to the self-adapting neuron network about 100 to about 200 times.
- One or more computer program objects of the on-site client computer may subject the data supplied to it to the extent of up to approximately 10 gigabytes to several terabytes of data preprocessing and data compression.
- One or more computer program objects of the on-site client computer can read the data supplied to it once in the data preprocessing, and transform original characters contained therein into purely numerical normalized features.
- One or more computer program objects of the on-site client computer may compress the normalized numerical feature values of the data supplied to it during data compression, such that between two bits and about 8-10 bits is needed as memory space per feature.
- One or more analysis server computer program objects may hold at least one compressed data sub-object for processing each while other sub-objects of the compressed data are held in the form of binary data objects on the analysis server's mass memory from where they are read by block reads read into memory for processing.
- One or more computer program objects of the on-site client computer may, depending on a compression error acceptable for the respective analysis task, define a data compression method to be used, the compression method to be used and the compression rate to be achieved depending on the different feature types (Boolean, numeric, nominal (textual)).
- One or more computer program objects of the on-premises client computer may set the mean prediction error for numerical features between about 0.01 and about 0.1.
- One or more on-premises client computer program objects may discretize the normalized numerical feature values into a number of discrete intervals such that a mean discretization error (
- One or more computer program objects of the on-premises client computer can map the discriminated numerical value to 2 ⁇ -2 interval indices, as well as "value not present” and “invalid value” and store it on n-bit memory space, where 1 ⁇ n ⁇ 64.
- One or more computer program objects of the on-site client computer can set the interval division depending on the distribution of distribution, non-equidistant, wherein preferably the interval widths of the discrete subintervals in areas of high value densities are set to be particularly low.
- One or more computer program objects of the on-premises client computer may follow numerical data value distributions that follow the Gaussian or normal distribution with a mean (m) and a standard deviation (s),
- One or more computer program objects of the on-premises client computer may distribute the discrete intervals symmetrically about the mean m as a function of mean (m) and standard deviation (s), preferably
- One or more computer program objects of the on-premises client computer may use to read the fractional value (m) and the standard deviation (s) of the feature to be discretized from a fraction of about 1 per thousand to about 10% of the data records for each numerical feature to calculate in the data a preliminary mean (m (vorl) ) and a preliminary spread (s (vorl) ).
- One or more computer program objects of the on-premises client computer can read all records and perform preliminary discretization for all numerical features based on the preliminary mean (m (f) ) and the preliminary spread (f (f) ).
- One or more computer program objects of the on-premises client machine may have 65532 equidistant intervals of width s (vorl) / 256 centered about the tentative mean (m (vorl) ) and two open end intervals] - ⁇ , m (vorl) - ⁇ & -s (vorl) [and [m (vorl) + TM -s ⁇ , ⁇ [ and two interval indexes, which specify 'value not present' as well as invalid numerical value ', and for all intervals record the frequencies with which a value falls within the respective intervals.
- One or more computer program objects of the on-premises client computer can analyze the logged records the frequencies of the interval occupancies and derive therefrom the value distribution form and the matching final discretization.
- One or more computer program objects of the on-site client computer can form at least approximately equal distribution two open end intervals and between 2 n - 4 equidistant intervals in which the upper limit of the lower end interval one of the provisional interval limits is set so that in the lower end of total is about l / 2 n of all valid values and the width of the 2 n - 4 equidistant intervals is the smallest multiple of the provisional interval width, which increases the occupation of the remaining upper end interval to not more than 1/2 "of all valid values the following applies: 1 ⁇ n ⁇ 64.
- One or more computer program objects of the on-site client computer can set an existing provisional interval limit as the next interval limit (g 2 ) such that the
- ) is minimized, the desired width (b) of the first intermediate interval multiplied by the factor e ⁇ b and the next intervals will be calculated accordingly.
- One or more computer program objects of the on-site client computer can be used on the set the next intermediate interval limit (m) as the midpoint (m), set the standard deviation (s) as close as possible to the true standard deviation, and let s / 64 be a multiple of the existing interval width, with the existing provisional intervals into larger new intervals having a decreasing width distribution of s / 64, s / 32, s / 16, ....
- One or more computer program objects of the on-premises client computer may store Boolean characteristics as different feature values ('first valid value', 'second valid value', 'value not present',, invalid throw).
- One or more on-premises client computer program objects may split nominal features for use in SOM map analysis into a plurality of Boolean and numeric 0/1 features, respectively.
- One or more computer program objects of the on-premises client computer may store nominal features as the location of the feature in the list of all valid values of that feature and maintain two index values which have no value and value does not appear in the list of valid values before 'represent.
- One or more on-premises client computer program objects may index up to about 100, preferably up to about 60, different nominal values individually or as groups of individual nominal values.
- About 10 to about 20 or 30, preferably about 15 most frequent values can be selected as individual values for evaluation by one or more computer program objects of the on-site client computer and all other values can be combined under an index "others" into a single value group.
- One or more on-premises client computer program objects may perform the following steps:
- One or more on-premises client computer program objects may perform the following step:
- One or more on-premises client computer program objects may perform compression based on the actual value frequencies of each nominal feature using 4 bits or one byte of memory per nominal feature.
- One or more on-premises client computer program objects may perform the following steps:
- One or more on-premises client computer program objects may concurrently perform preliminary compression with multiple machine cores on partitioned data, communicate global stats between individual threads, and perform the final compression in parallel.
- One or more on-premises client computer program objects may perform anonymization of the data by performing the data compression on the on-premises client computer, the compressed data with the numeric data interval indexes and value indices for binary and nominal data on the data analysis For numeric data averages, standard deviations, distribution form, minimum, maximum and for binary and nominal data the value "dictionaries", which allow a conclusion of the value index to the actual value, are transmitted to the server (10) and the decompression information On-site client computer (12) are stored.
- One or more analysis server computer program objects may generate analyzes, evaluations, SOM models based on the interval and value indices of the compressed data, and send those results back to the on-premises client computer (12).
- One or more on-premises client computer program objects may associate the results with the decompression information, thereby providing the results with the original information.
- a first computer program product may include one or more computer program objects for executing one or more of the foregoing method steps on an on-premises client computer.
- a second computer program product may include one or more computer program objects for performing one or more of the aforementioned method steps on an analysis server.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Für ein Computersystem zur Datenanalyse soll die Trainingszeit durch technische Vorkehrungen signifikant reduziert werden; außerdem soll der benötigte Speicherbedarf durch den Einsatz technischer Maßnahmen nennenswert sinken. Dazu wird ein elektronisches Datenverarbeitungssystem zur Analyse von Daten vorgeschlagen, mit wenigstens einem Analyse-Server und wenigstens einem Vor-Ort-Client-Rechner. Der Analyse-Server ist dazu eingerichtet und programmiert, ein selbst adaptierendes Neuronen-Netz zu implementieren, das auf eine Datenbank mit einer Vielzahl Datensätzen mit vielen Merkmalen zu trainieren ist. Der Vor-Ort- Client-Rechner ist dazu eingerichtet, ihm zugeführte Daten einer Datenvorverarbeitung und / oder einer Datenkompression zu unterziehen, bevor die Daten von dem Vor-Ort-Client-Rechner über ein elektronisches Netzwerk an den Analyse-Server gesendet werden. Der Analyse- Server ist dazu eingerichtet und programmiert, mit den empfangenen, vorverarbeiteten / komprimierten Daten das selbst adaptierende Neuronen-Netz zu trainieren, indem die Daten dem sich selbst adaptierenden Neuronen-Netz wiederholt präsentiert werden und anschließend eine Analyse durchgeführt wird um ein selbst adaptierende Neuronen-Netz-Modell zu erstellen. Der Analyse-Server ist weiterhin dazu eingerichtet und programmiert, ein Versenden des selbst adaptierenden Neuronen-Netz-Modells von dem Analyse-Server an den Vor- Ort-Client-Rechner zu bewirken. Schließlich ist der Vor-Ort-Client-Rechner dazu eingerichtet und programmiert, die Daten des selbst adaptierenden Neuronen-Netz-Modells einer Dekomprimierung zu unterziehen.
Description
System und Verfahren zur rechnerbasierten Analyse großer Datenmenqen
Beschreibung
Hintergrund
Derzeit verfügbare, kostengünstige Computerprogramme zur Datenanalyse (zum Beispiel DataCockpit® 1.04) sind in der Analyse nennenswert langsamer als konkurrierende Data Mining Workbenches (SPSS und andere), können nur erheblich kleinere Datenmengen verar- beiten, und haben andere Nachteile (sie sind als monolithischer Block programmiert, sie sind in ihrer Architektur und Datenbehandlung ungeeignet zur Client-Server-Architektur, etc.).
Zur Segmentierung oder zur Vorhersage werden Daten auf ein ein-, zwei- oder dreidimensionales selbstadaptierendes Neuronen-Netz (seif organizing map, ,SOM') abgebildet. [T. Koh- onen. Self-Organization and Associative Memory, vol. 8 of Springer Series in Information Science, 3rd edition, Springer- Verlag, Berlin, 1989].
Bei der der SOM-basierten Datenanalyse werden das sogenannte ,Kohonen Clustering' und die sogenannte SOM-Karten-Analyse unterschieden. Das Kohonen Clustering arbeitet nur mit sehr wenigen Neuronen, typischerweise zwischen etwa 4 und etwa 20 Neuronen. Jedes dieser Neuronen repräsentiert einen ,Cluster', also eine homogene Gruppe von Datensätzen. Diese Technik wird vor allem zur Datensegmentierung eingesetzt und ist in vielen Data Mining Softwarepaketen implementiert, zum Beispiel in SPSS Clementine oder IBM DB2 Ware- house. (siehe zum Beispiel Ch. Ballard et al., Dynamic Warehousing: Data Mining Made Easy, IBM Redbook, 2007).
Die SOM-Karten-Analyse benutzt demgegenüber relativ große Neuronennetze von zum Beispiel 30 ■ 40 Neuronen zur Datenanalyse. Hierbei werden homogene Datensegmente durch lokale Gruppen von Neuronen mit ähnlichen Merkmalsausprägungen repräsentiert. SOM-Kar- ten werden zur Datenexploration, Segmentierung, Vorhersage, Simulation und Optimierung verwendet (siehe zum Beispiel R. Otte, V. Otte, V. Kaiser, Data Mining für die industrielle Praxis, Hanser Verlag, München, 2004).
Als Beispiele für weiteren technologischen Hintergrund seien die EP 97 11 56 54.2 und die EP 97 12 0787.3 genannt.
Um eine umfangreiche, auf einem Computer zusammengetragene Datensammlung - zum Beispiel Produktionsdaten aus einer Fertigungsanlage mit etwa 104 bis 1010 Datensätzen und etwa 3 bis 1000 Merkmalen pro Datensatz - zu analysieren und ggf. die Ergebnisse der Analyse in den Fertigungsablauf zurückfließen zu lassen, werden die vorhandenen Datensätze immer wieder einem lernenden und sich selbst adaptierenden Neuronen-Netz präsentiert.
Dabei kann es sich um Produktionsdaten in der Maschinenbau-, Chemie-, Automobil-, Zuliefererindustrie handeln: Zum Beispiel 10 Millionen produzierte Einheiten, 10 nominale Kompo- nenten- und Produktionslinien-Informationen, 10 binäre Komponenten- und Ausstattungsinformationen, 10 nummerische Produktionsdaten (gemessene Toleranzdaten, Sensordaten, erfasste Produktionszeiten, Maschinendaten, ...) Ziel der SOM-Analyse ist hier die Qualitätssicherung, Fehlerquellenanalyse, Frühwarnung, Produktionsprozess-Optimierung. Ein anderes Beispiel wären Kundendaten in Einzelhandels-, Finanz- oder Versicherungsunternehmen: 10 Millionen Kunden, 10 nominale demografische Merkmale (Familienstand, Berufsgruppe,
Region, Wohnungstyp, ...) , 10 binäre Merkmale über Interessen und in Anspruch genommene Dienstleistungen / Produkte (Geschlecht; besitzt Kreditkarte; betreibt Online-Banking, ...)/ 10 nummerische Merkmale (Jahreseinkommen, Alter, Jahresumsatz, Kreditwürdigkeit, ...). Ziel der SOM-Analyse ist hier die Kundensegmentierung, die Vorhersage von Kunden- wert, Kreditwürdigkeit, Schadensrisiko, ... sowie die Optimierung von Marketingkampagnen.
Jedes Neuron des sich selbst adaptierenden Neuronen-Netzes hat so viele Signaleingänge, wie jeder der einzelnen Datensätze Merkmale hat. Hat das Neuronen-Netz die Daten gelernt', können mit dem trainierten Neuronen-Netz unter Anderem folgende Aufgaben abge- arbeitet werden:
• Visuelle interaktive Datenexploration: Interaktives Entdecken von interessanten Untergruppen, Korrelationen zwischen Merkmalen und allgemeinen Zusammenhängen mit Hilfe von verschiedenen Visualisierungen der Daten, welche aus selbstorganisierenden Merkmalskarten erzeugt werden.
• Segmentierung: Einteilen der gesamten Daten in homogene Gruppen.
• Vorhersage: Vorhersage von bisher unbekannten Merkmalsausprägungen in einzelnen Datensätzen.
• Simulation: Wie würden sich gewisse Merkmalsausprägungen eines Datensatzes wahrscheinlich ändern, wenn bestimmte andere Merkmalsausprägungen gezielt geändert würden?
• Optimierung: Wenn für eine Teilmenge der Merkmale bestimmte optimale Ausprägungen erreicht werden sollen, wie sollten dann die übrigen Merkmalsausprägungen gewählt werden?
Bestehende Methoden und Implementierungen SOM-Karten-basierter Datenanalyse benötigen für die kommerzielle Ersetzbarkeit derzeit zu lange Trainingszeiten der Neuronen-Netze. Diese übersteigen die Trainingszeiten anderer Data Mining Techniken auf denselben Daten um etwa das Hundertfache und behindern die Anwendung derartiger existierender Software- Pakete auf viele existierende Datensammlungen und Fragen mit der gegenwärtig zur Verfü- gung stehenden Rechnerleistung. Um zum Beispiel mit der Software DataCockpit ein SOM- Netzwerk von 30 ■ 40 Neuronen auf einer großen Datenbank von 60.000.000 Datensätzen mit 100 Merkmalen zu trainieren, müsste ein Server mit ein bis zwei 3 GHz Intel® CPUs, 64 GigaByte RAM) etwa 2 - 3 Monate ununterbrochen rechnen - dies wäre in der Praxis völlig inakzeptabel.
In Dokument US 2007/0118399 Al ein Informationssystem beschrieben, das Daten in einer integrierten Wissensdatenbank speichert und den Zugang zu Daten sowie deren Auswertung erlaubt. Das Informationssystem integriert dabei Daten von verschiedenen Daten-Quellen. Die gewonnenen Daten werden dann durch logische Komponenten, zum Beispiel mit Hilfe von neuronalen Netzen, verarbeitet. Die verarbeiteten Daten stehen nach der Verarbeitung für einen Abruf durch menschliche oder maschinelle Benutzer bereit.
Das Dokument mit dem Titel „Knowledge Discovery in Databases" von G. Stumme et al. (Vorlesungsskript, Universität Kassel, 2004) beschreibt allgemein bekannte Verfahren zum Data-Mining. Unter anderem wird ein Einsatz neuronaler Netze für eine Datensegemtierung, eine Attributvorhersage und eine Abweichungsanalyse erwähnt.
Technisches Problem
So besteht die technische Anforderung, diese Trainingszeit durch technische Vorkehrungen signifikant zu reduzieren. Außerdem sollte der benötigte Speicherbedarf durch den Einsatz technischer Maßnahmen nennenswert sinken; das oben genannte Beispiel sollte für die
Ausführung einen Hauptspeicher mit wenigen GigaByte RAM erfordern.
Kurzbeschreibunq
Zur Problemlösung wird ein elektronisches Datenverarbeitungssystem zur Analyse von Daten mit den Merkmalen des Patentanspruchs 1 vorgeschlagen.
Diese Anordnung hat die technische Wirkung, die Effizienz und die Sicherheit der Datenanalyse zu erhöhen. Eine weitere technische Wirkung besteht darin, die Anforderungen an die erforderlichen Computerressourcen gegenüber der herkömmlichen Vorgehensweise zu sen- ken. Schließlich wird die Datenübertragungsgeschwindigkeit und die anschließende Datenverarbeitung positiv beeinflusst.
Die Art der Datenkompression kann an den Aufbau der Daten (boolesch, nummerisch, tex- tuell, etc.) angepasst sein. Dies erlaubt, unterschiedlich strukturierte oder auf verschiedene Weise erfasste Quelldaten (z.B. Flachdateien, Datenbanktabellen, Excel-Tabellen) in eine komprimierte Form zu transformieren, welche nur etwa 5% bis etwa 12% des Speicherbedarfes der Originaldaten hat. Da auch nur diese komprimierte Form der Daten von dem Vor- Ort-Client-Rechner an den Analyse-Server gesendet wird, ist als weiterer technischer Vorteil ein schnellerer Datentransfer mit geringerer Anforderung an den Datenkanal möglich. Die von dem Datentyp abhängige Kompression der Originaldaten bewirkt eine gleichzeitige
Anonymisierung der Daten. Die Kompression kann außerdem so erfolgen, dass die Genauigkeit der Daten bei der Kompression / Dekompression das Ergebnis der Analyse nicht ungebührlich verfälscht.
Die komprimierte Datenform ist sehr gut geeignet für Neuronen-Netz-Analysen, aber auch für schnelle interaktive Datenexploration, z.B. durch multivariate Statistiken, bei denen die Ergebnisse in Echtzeit oder beinahe Echtzeit (mit geringer Wartezeit - weniger als einige zehn Sekunden) vorliegen sollen.
Unter Bezugnahme auf Fig. 1 dient ein elektronisches Datenverarbeitungssystem zur Analyse von Daten. Das elektronische Datenverarbeitungssystem hat einen Analyse-Server 10 und einen oder mehrere Vor-Ort-Client-Rechner 12. Der Analyse-Server ist zum Beispiel ein PC mit mehreren 3 GHz Intel® CPUs und 64 GigaByte RAM als Hauptspeicher. Darin ist ein selbst adaptierendes Neuronen-Netz als Datenobjekt zu implementieren, das auf eine große Datenbank mit einer Vielzahl Datensätzen mit vielen Merkmalen zu trainieren ist. Der Vor- Ort-Client-Rechner 12 ist dazu eingerichtet und programmiert, ihm zugeführte Daten einer Datenvorverarbeitung und/oder einer Datenkompression zu unterziehen, bevor die Daten
über ein elektronisches Netzwerk 14, zum Beispiel das Internet, an den Analyse-Server 10 gesendet werden. Der Analyse-Server 10 ist außerdem dazu eingerichtet und programmiert, mit den empfangenen, vorverarbeiteten / komprimierten Daten das selbst adaptierende Neuronen-Netz zu trainieren, indem die Daten dem sich selbst adaptierenden Neuronen-Netz wiederholt präsentiert werden und anschließend eine Analyse durchzuführen um ein selbst adaptierende Neuronen-Netz-Modell zu erstellen. Der Analyse-Server bewirkt anschließend ein Versenden des selbst adaptierenden Neuronen-Netz-Modells von dem Analyse-Server 10 an den Vor-Ort-Client-Rechner 12 ebenfalls über das Netzwerk 14. Der Vor-Ort-Client- Rechner 12 ist schließlich dazu eingerichtet und programmiert, die Daten des selbst adaptie- renden Neuronen-Netz-Modells einer Dekomprimierung zu unterziehen.
Die Datenkomprimierung kann für mehrere Arten mächtiger interaktiver Datenanalysen und Datenexplorationstechniken benutzt werden, die selbst auf großen Datenquellen von mehr als einem Gigabyte Größe noch ein interaktives Arbeiten in Echtzeit erlauben. Bei einer inter- aktiven multivariaten Statistik werden für mehrere oder alle Merkmale einer Datensammlung Werteverteilungsdiagramme (Histogramme) nebeneinander auf dem Bildschirm angezeigt. Wenn man in einer interaktiven multivariaten Statistik in einem oder mehreren der Diagramme einen Teil der Histogrammbalken selektiert, werden in den anderen Diagrammen sofort die verbleibenden Häufigkeiten angezeigt. Dies erlaubt einen sehr flexiblen 'drill down' in die Daten, ohne mühsam einen multidimensionalen OLAP-Cube aufbauen und pflegen zu müssen. Das Problem ist, dass sich auf großen Datenbeständen die Antwortzeiten stark verlangsamen. Die Software IBM DB2 Data Warehouse Edition trägt dem Rechnung, indem sie die multivariate Analyse standardmäßig nur auf einem Datenraum von 1000 Datensätzen durchführt. Damit kann man aber nicht erwarten, auf Tabellen von z.B. 106 - 108 Datensätzen korrekte und verlässliche Ergebnisse zu erhalten. Die vorgestellte Datenkomprimierung bietet einen eleganten Ausweg. Wenn die Datensammlung komprimiert und in komprimierter Form in den Hauptspeicher geladen ist, kann man die multivariate Analyse auch auf Datensammlungen von mehreren Gigabyte Originalgröße noch ohne Sampling in Echtzeit durchführen.
Die beschriebene Vorgehensweise erlaubt die Behandlung großer Datenmengen mit einer signifikanten Erhöhung des analysierbaren Datenvolumens. Bei textuellen (nominalen) Daten ist eine drastische Reduzierung des Speicherplatzbedarfs möglich, und die Analysegeschwindigkeit bei überwiegend nicht-nummerischen Daten nimmt signifikant zu. Die Analysegeschwindigkeit steigt außerdem durch die Beschleunigung des Trainings der SOM-Modelle. Die Daten-Anonymisierung erfolgt durch die Aufteilung der Daten in einen vertraulichen und einen nicht-vertraulichen Teil. Nur der nicht-vertrauliche Teil wird dem Analyse-Server übermittelt und wird von diesem analysiert. Der vertrauliche Teil bleibt auf dem Vor-Ort-Client.
Dieser kann dazu eingerichtet und programmiert sein, bei Eintreffen des anonymisierten Analyse-Ergebnisses vom Analyseserver dieses anonymisierten Ergebnis mit dem vertraulichen Teil der Daten zu einem deanonymisierten Klartext-Analyseergebnis zusammenzuführen.
Bei der Anonymisierung vertraulicher Daten wird eine Flachdatei im weitesten Sinne (d.h. z.B. eine Komma-, Semikolon-, oder Tabulator-separierte Textdatei mit variabler Spaltenbreite, eine Textdatei mit fester Spaltenbreite, eine Tabelle aus einem Tabellenkalkulationsprogramm wie Microsoft® Excel® oder OpenOffice®, eine Tabelle in einer relationalen, objektorientierten oder XML-Datenbank usw.) komprimiert und dabei gleichzeitig alle potenziell vertraulichen Informationen aus den Daten entfernt. Die vertraulichen Informationen werden in einer separaten Datenbeschreibung gespeichert. Die herausgefilterten Informationen sind zum Beispiel die folgenden: erstens Merkmalsnamen, die ersetzt werden durch die anonymisierte Namen wie z.B. CO, Cl, ..., DO, Dl, ..., BO, Bl, ..., NO, Nl, ..., wobei C für ,continuous numeric' steht, D für ,discrete numeric', B für binary (zweiwertig), N für nominal (textuell); zweitens textuelle Merkmalsausprägungen, die ersetzt werden durch anonymisierte Wertausprägungen wie z.B. V, Vl, ... oder VALUEO, VALUEl, ..., und drittens nummerische Wertausprägungen, deren tatsächliche Wertebereiche auf eine normierte Verteilung mit Mittelwert m, m = 0 und Streubreite s, s = 1 transformiert werden. Weitere mögliche Ano- nymisierungen sind zum Beispiel bei nummerischen Merkmalen nicht nur die ersten beiden Momente der Verteilung, m und s, sondern auch noch höhere Momente wie Schiefe oder Kurtosis.
Nur die anonymisierten komprimierten Daten werden zum Analyse-Server übermittelt, der daraus ein anonymisiertes SOM-Modell erstellt und zurückschickt. Ein anonymisiertes SOM- Modell wird wieder deanonymisiert, indem die vertraulichen Informationen aus der separaten Datenbeschreibung mit dem SOM-Modell rekombiniert werden. Auch wenn vorstehend die Trennung des Analyse-Servers von dem Vor-Ort-Client-Rechner angenommen wurde, ist es auch möglich, die in den beiden Einheiten vorgehaltenen Rechnerleistungen und Software- programmkomponenten in einer Rechnereinheit zusammenzufassen.
Die oben beschriebene Anonymisierung der Daten beim Komprimierungsvorgang macht den Einsatz einer Client-Server-Architektur zur Datenanalyse auch für vertrauliche Daten möglich: Weil eine Softwareprogrammkomponente für die Komprimierung der Daten im Client vorge- sehen ist, kann zum Beispiel ein Produktionsbetrieb, der eine Qualitätsanalyse / -Verbesserung seiner Produktionsabläufe durchführen möchte, beim Betreiber des Analyse-Servers mit
der Softwareprogrammkomponente zum Trainieren des selbst adaptierenden Neuronen-Net- zes mit Hilfe der empfangenen, komprimierten Daten und der Softwareprogrammkomponente zum Ausführen einer Analyse, auf seinem eigenen Vor-Ort-Client-Rechner die Daten zunächst vorverarbeiten / komprimieren (und dabei anonymisieren), bevor er sie zum Analyse- Server schickt, um dort die Analyse mit den vorverarbeiteten / komprimierten, anonymisier- ten Daten durchführen zu lassen. Der Analyse-Server schickt das anonymisierte Neuronen- Netz-Modell zurück, und der Vor-Ort-Client-Rechner ersetzt die anonymisierten Werte darin wieder durch die Originalwerte.
Zusätzlich können die anonymisierten Daten während des Übermittlungsvorgangs über ein Netzwerk noch verschlüsselt werden. Die vorstehend beschriebene Datenanonymisierung ist vollkommen verträglich mit herkömmlichen sicheren Übertragungsprotokollen und Verschlüsselungsverfahren wie z.B. PBP, https oder scp. Dabei ist eine Verschlüsselung der zuvor der Anonymisierung unterworfenen Daten jedoch nicht unbedingt erforderlich. Der technische Vorteil der Anonymisierung ist, dass die neben der Verringerung des Datenumfangs (bezogen auf die erfassten Originaldaten) auch noch Vertraulichkeit der Daten nicht nur während des Transfers über das Netzwerk gewahrt bleibt, sondern auch während der gesamten Analyse auf dem Analyseserver. So kann eine weitere Ressourcen erfordernde Verschlüsselung und Entschlüsselung für die Übertragung zwischen dem Analyseserver und dem Vor-Ort- Client eigentlich unterbleiben, da die anonymisierten Daten ohne die Korrelierung zu dem Klartextanteil unverständlich sind. Ein Einblick in die vertraulichen Daten bleibt damit nicht nur einem potenziellen Mitleser während der Übertragung verwehrt, sondern auch dem Betreiber des Analyse-Servers.
Der Analyse-Server kann dazu eingerichtet und programmiert sein, das selbst adaptierende Neuronen-Netz so oft mit den empfangenen anonymisierten Daten zu trainieren, bis sich ein auskonvergierter Netzzustand ergibt, der die Daten angemessen repräsentiert. Vorzugsweise werden die Daten dem selbst adaptierenden Neuronen-Netz etwa 100 bis etwa 200 Mal präsentiert.
Der Vor-Ort-Client-Rechner kann dazu eingerichtet und programmiert sein, die ihm zugeführten Daten im Umfang von bis zu etwa 10 Gigabyte bis mehreren Terabyte der Datenvorver- arbeitung und der Datenkompression zu unterziehen. Die genannten Datengrößen beziehen sich auf typische große Datenbanktabellen und die verfügbare Computertechnologie des Jahres 2008. Wenn die allgemeine Computerleistungsfähigkeit und Datenbankgröße weiterhin exponentiell steigt (,Moore's Law7), werden die genannten Datengrößen proportional
mitwachsen.
Der Analyse-Server kann außerdem dazu eingerichtet und programmiert sein, zusätzlich oder anstelle der SOM-Modellierung auch weitere Data-Mining- oder Datenanalyse-Verfahren bereitzuhalten, zum Beispiel Assoziationsregel-Verfahren, Entscheidungsbaumverfahren,
Bayessche Verfahren, Regressionsverfahren oder weitere neuronale Analyseverfahren neben dem SOM-Verfahren. Auch diese genannten Verfahren und viele weitere können direkt auf dem vorstehend beschriebenen komprimierten Datenformat aufsetzen und dadurch signifikant schneller ablaufen.
Der Vor-Ort-Client-Rechner kann dazu eingerichtet und programmiert sein, die ihm zugeführten Daten bei der Datenvorverarbeitung einmal zu lesen, und darin enthaltene Originalmerkmale auf rein nummerische normalisierte Merkmale zu transformieren.
Der Vor-Ort-Client-Rechner kann dazu eingerichtet und programmiert sein, bei der Datenkompression die normalisierten nummerischen Merkmalsausprägungen der ihm zugeführten Daten komprimiert zu speichern, so dass im Mittel nur zwischen zwei Bit und etwa einem Byte als Speicherplatz pro Merkmalsausprägung benötigt wird.
Damit können einerseits die komprimierten Daten bei vielen aufeinander folgenden Analysen - die eventuell mit verschiedenen Analyseverfahren durchgeführt werden - durch ein einmaliges Laden komplett in den Arbeitsspeicher des Analyse-Servers zur Verarbeitung durch die Softwareprogrammkomponente zum Trainieren des selbst adaptierenden Neuronen-Netzes (und/oder eines anderen Analyseverfahrens) und der Softwareprogrammkomponente zum Ausführen einer Analyse geladen werden. Ein wiederholtes, zeitaufwändiges Laden der Daten für jeden Analyseschritt erübrigt sich dadurch. Andererseits erlaubt die angepasste, hohe Kompressionsrate auch, die normalisierten, komprimierten Daten zusätzlich zu den Originaldaten persistent auf dem Massenspeicher zu halten. So kann das sonst übliche 100- bis 200- malige datensatzweise Einlesen, Parsen und in ein für die Analyse geeignetes Format Brin- gen der Daten entfallen, selbst wenn die komprimierten Daten nicht komplett in den Arbeitsspeicher des verwendeten Computers passen.
Die Kombination aus Einlesen eines Datensatzes von Festplatte als Zeichenkette und anschließendem Parsen inklusive Abbilden von Zeichenketten auf nummerische Werte kann etwa 10 000 Mal so lange dauern wie der Zugriff auf einen komprimierten, bereits geparsten und normalisierten Datensatz im Arbeitsspeicher (wobei sich ein Faktor von etwa 1000 durch
die höhere Zugriffsgeschwindigkeit, und ein Faktor von etwa 10 durch die auf etwa 5% bis etwa 12% reduzierte / komprimierte Größe der Daten ergibt).
Der Vor-Ort-Client-Rechner kann weiterhin dazu eingerichtet und programmiert sein, in Ab- hängigkeit von einem für die jeweilige Analyseaufgabe akzeptablen Kompressionsfehler ein zu verwendendes Datenkompressionsverfahren festzulegen, wobei das einzusetzende Kompressionsverfahren und die zu erzielende Kompressionrate abhängig von den unterschiedlichen Merkmalstypen (boolesch, nummerisch, nominal (textuell)) und von den Genauigkeitsanforderungen der gewählten Analysetechnik zu wählen ist.
Bei Einsatz der SOM-Analysetechnik kann der Vor-Ort-Client-Rechner dabei so eingerichtet und programmiert sein, dass der mittlere Vorhersagefehler für nummerische Merkmale - also die Differenz zwischen dem tatsächlichen normalisierten Merkmalswert eines Datensatzes und dem normalisierten Wert, den das insgesamt am besten zu dem Datensatz passende Neuron für das Merkmal vorhersagt - bei sinnvoll austrainierten SOM-Netzen meist zwischen 0.01 und 0.1 liegt. Der Vorteil ist, dass das Netz auf diese Weise nicht jede zufällig in einem bestimmten Datensatz vorhandene Merkmalsausprägung exakt zu reproduzieren versucht, und dass somit zufällige Schwankungen und Koinzidenzen in den Trainingsdatensätzen nicht als allgemeine Gesetzmäßigkeiten in den Daten gelernt werden (sogenanntes ,Übertrainieren' des Netzes). Vielmehr liefert bei Zulassen eines Fehlers das selbst adaptierende Neuronen- Netz auch dann brauchbare Aussagen, wenn es auf neue Datensätze angewendet wird, die noch nicht in den Trainingsdaten enthalten waren.
Wenn also ein ,Generalisierungsfehler' des selbst adaptierenden Neuronen-Netzes von 0.01- 0.1 pro Merkmal normal ist, dann ist ein durch die Trainingsdaten-Komprimierung erzeugter mittlerer zusätzlicher Fehler von 0.00001 pro Merkmal vernachlässigbar und tolerabel, denn in diesem Fall wären vom selbst adaptierenden Neuronen-Netz zu findende Merkmalsausprägungen auf 3 - 4 Stellen Genauigkeit vom Diskretisierungsfehler unbeeinflusst.
Für den Fall, dass auf ein Neuron zum Beispiel etwa 10.000 Datensätze abgebildet werden (was z.B. bei einem Netz von 30 ■ 40 Neuronen und etwa 12 Millionen Datensätzen im Durchschnitt der Fall ist), dann ergeben nach dem Gesetz der großen Zahlen die 10.000 unabhängigen und zufälligen Diskretisierungsfehler insgesamt genau dann einen Gesamt-Ein- fluss der Diskretisierungsfehler von 0.00001, wenn jeder einzelne Diskretisierungsfehler im Mittel 0.001 = 0.00001 ■ VlOOOO beträgt. Ein mittlerer Diskretisierungsfehler eines einzelnen Datensatzes in einem normalisierten nummerischen Merkmal von 0.001 ist also akzeptabel.
Der Vor-Ort-Client-Rechner kann dazu eingerichtet und programmiert sein, eine Diskretisie- rung der normalisierten, nummerischen Merkmalswerte in eine Anzahl diskreter Intervalle so durchzuführen, dass ein mittlerer Diskretisierungsfehler |Wert - DiskretWert| ungefähr 0.001 beträgt. Mit anderen Worten erfolgt eine Abbildung ,Wert -> Intervallindex' (und zur Rückrechnung die Umkehrabbildung ,Intervallindex -> DiskretWert := Mittelpunkt des Intervalls) so, dass der mittlere Diskretisierungsfehler |Wert - DiskretWert| etwa 0.001 beträgt.
Der Vor-Ort-Client-Rechner kann dazu eingerichtet und programmiert sein, den diskretisier- ten nummerischen Wert auf 8 bit (=1 Byte) Speicherplatz zu speichern, womit 254 Intervallindizes zur Verfügung gestellt werden, plus 2 Indizes für ,Wert nicht vorhanden' und ,ungültiger Wert'.
Bei Verwendung mit anderen Data-Mining- oder Datenanalyseverfahren kann der Vor-Ort- Client auch dazu eingerichtet und programmiert sein, den diskretisierten nummerischen Wert in mehr oder weniger als 8 bits zu speichern. Erfordert ein Analyseverfahren eine höhere Genauigkeit als das SOM-Verfahren, könnten z.B. auf 10 bits 1022 verschiedene Intervallindizes (plus 2 Indizes für ,Wert nicht vorhanden' und ,ungültiger Werf) gespeichert werden - was den Diskretisierungsfehler gegenüber der Speicherung auf 8 bits um den Faktor 4 redu- zieren würde.
Der Vor-Ort-Client-Rechner kann außerdem so eingerichtet und programmiert sein, dass die Intervalleinteilung Wertverteilungs-abhängig, nicht-äquidistant ist. Dabei werden vorzugsweise die Intervall-Breiten der diskreten Teilintervalle in Bereichen hoher Wertedichten als be- sonders gering festgelegt. Dabei kann der mittlere Diskretisierungsfehler auch bei einer
Speicherung auf nur 8 bits für die meisten praktisch relevanten Wertverteilungen (z.B. Normalverteilung, Exponentialverteilung, Weibull-Verteilung) unter etwa 0.001 gehalten werden.
Der Vor-Ort-Client-Rechner kann dazu so eingerichtet und programmiert sein, dass bei num- merischen Daten-Werteverteilungen, die der Gauß- oder Normalverteilung mit einem Mittelwert m und einer Standardabweichung s folgen,
• etwa 64 Intervalle der Breite s/64 in den Bereichen [m-s, m[ und [m, m+s];
• etwa 32 Intervalle der Breite s/32 in den Bereichen [m-2s, m-s[ und [m+s, m+2s[;
• etwa 16 Intervalle der Breite s/16 in den Bereichen [m-3s, m-2s[ und [m+2s, m+3s[; • etwa 8 Intervalle der Breite s/8 in den Bereichen [m-4s, m-3s[ und [m+3s, m+4s[;
• etwa 4 Intervalle der Breite s/4 in den Bereichen [m-5s, m-4s[ und [m+4s/ m+5s[;
• etwa 2 Intervalle der Breite s/2 in den Bereichen [m-6s, m-5s[ und [m+5s, m+6s[; und
• etwa 1 Intervall unendlicher Breite für ]-oo, m-6s[ und [m+6s, ∞[. festgelegt sind.
Bei dieser Verteilung ist die Werte-Dichte im Bereich [m-s, m+s] hoch, sinkt im Abstandsbereich von Is bis 2s vom Mittelwert stark ab und geht bei noch größeren Abständen vom Mittelwert rasch gegen 0.
Die vorstehend beschriebene Intervallaufteilung ist optimiert für eine Speicherung auf 8 bit. Benutzt man mehr (weniger) als 8 bits pro Wert, sind die vorstehend genannten Zahlen pro mehr (weniger) verwendetem bit mit dem Faktor 2 zu multiplizieren (dividieren).
Der Vor-Ort-Client-Rechner kann dazu so eingerichtet und programmiert sein, dass die diskreten Intervalle als Funktion von m und s symmetrisch um den Mittelwert m verteilt sind, wobei das Intervall [m-s/64, m[ die Intervallposition 127, und das Intervall [m, m+s/64[ die Position 128 hat, wobei der nummerische Wert, der jedem Intervall zugeordnet wird, der Intervallmittelpunkt ist, und wobei die Intervallpositionen 0 bzw. 255 für ungültige bzw. feh- lende Werte reserviert sind. Diese Zahlen sind optimiert für eine Speicherung auf 8 bits.
Benutzt man mehr (weniger) als 8 bits pro Wert, sind die vorstehend genannten Zahlen pro mehr (weniger) verwendetem bit mit dem Faktor 2 zu multiplizieren (dividieren).
Auf diese Weise ist für zumindest annähernd normalverteilte Daten eine Diskretisierung mit mittlerem Diskretisierungsfehler von nur 0.005s bei 8 bit Speicherbreite pro Wert erreichbar, denn für Werte im Intervall [m-s, m+s] (68% aller Werte) ist der mittlere Diskretisierungsfehler s/256, für Werte in [m-2s, m-s[ und ]m+s, m+2s] (28% aller Werte) sind es s/128, und für Werte in [m-3s, m-2s[ und ]m+2s, m+3s] (4% aller Werte) s/64. Dieser mittlere Diskretisierungsfehler beträgt etwa 0.005 ■ s, ist also etwa um den Faktor 3 kleiner als der bei einer entsprechenden äquidistanten Diskretisierung des Bereiches [m-7s, m+7s] in 254 Intervalle zu erreichende, mittlere Diskretisierungsfehler.
Der Vor-Ort-Client-Rechner kann dazu so eingerichtet und programmiert sein, dass nummerische Merkmale zunächst auf normalisierte Merkmale mit Mittelwert m = 0.5 und einer Standardabweichung von s = 0.25 abgebildet werden, so dass etwa alle Werte (96%) im
Bereich zwischen 0 und 1 liegen. Somit sind die normalisierten nummerischen Merkmale ver-
gleichbar mit normalisierten booleschen oder nominalen Merkmalen, deren Werte ebenfalls im Bereich zwischen 0 und 1 liegen.
Damit beträgt der mittlere Diskretisierungsfehler für die normalisierten nummerischen Merk- male etwa 0.0013 und ist hinreichend genau für SOM-Netze.
Der Vor-Ort-Client-Rechner kann dazu eingerichtet und programmiert sein, zur Ermittlung des Mittelwertes (m) und der Standardabweichung (s) des zu diskretisierenden Merkmals einen kleinen Bruchteil von etwa 1 Promille bis etwa 10% der Datensätze zu lesen um daraus für jedes nummerische Merkmal in den Daten einen vorläufigen Mittelwert (m(vorl)) und eine vorläufige Streubreite (s(vorl) ) zu berechnen.
Der Vor-Ort-Client-Rechner kann des Weiteren dazu eingerichtet und programmiert sein, alle Datensätze zu lesen und für alle nummerischen Merkmale eine vorläufige Diskretisierung ba- sierend auf dem vorläufigen Mittelwert (m(vorl)) und der vorläufigen Streubreite (s(vorl)) durchzuführen.
Der Vor-Ort-Client-Rechner kann dabei dazu eingerichtet und programmiert sein,
65532 äquidistante Intervalle der Breite s(vorl)/ 256 zentriert um den vorläufigen Mittelwert (m(vorl)), sowie zwei offene Endintervalle ]-co, m(vorl)- ^ -s(vor1)[ und [m(vorl)+ ™ -s(vorl), ∞[ und zwei Intervallindizes, welche ,Wert nicht vorhanden' sowie ,ungültiger numerischer Wert' wiedergeben, und für alle Intervalle die Häufigkeiten zu protokollieren, mit denen ein Wert in die jeweili- gen Intervalle fällt.
Diese Vorgehensweise kann als Vor-Diskretisierung vor der eigentlichen Diskretisierung verwendet werden, um Rechenzeit einzusparen. Die Vorgehensweise hat nämlich den technischen Vorteil, dass diese vorläufige Diskretisierung einerseits nur 16 Bit (2 Bytes) Speicher für einen nummerischen Werte benötigt, also den Datenumfang gegenüber einer ,double'- Fließkommazahl auf etwa ein Viertel reduziert, Andererseits ist diese vorläufige Diskretisierung aber auch in einem einzigen Durchlauf durch die gesamten Originaldaten erstellbar, selbst wenn Mittelwert und sonstige Verteilungsparameter (Standardabweichung, Schiefe, Verteilungsform) anfangs noch nicht bekannt sind. Eine direkte Komprimierung in ein 8-bit- Format ist dagegen erst möglich, wenn man die Verteilungsparameter zuvor exakt ermittelt hat - was normalerweise einen (zeitaufwändigen) separaten Lesedurchgang durch die ge-
samten Originaldaten erfordert. Dieser zusätzliche Lesedurchgang zur exakten Ermittlung von Mittelwert und Standardabweichen (und evtl. weiterer Verteilungsparameter) ist hier vermeidbar, weil das Komprimierungsschema hinreichend granulär ist, um zunächst Mittelwert und Standardabweichung hinreichend grob angenähert zu schätzen oder zu raten (oder auf einem kleinen Datenraum näherungsweise zu bestimmen) und danach folgende Effekte abzufangen:
• Verschiebung des Mittelwerts (m ≠ m(vorl)). Die vorläufige Diskretisierung deckt 128 Standardabweichungen rechts und links von dem vorläufigen Mittelwert m(vorl) ab und kann daher beträchtliche spätere Mittelwertverschiebungen verkraften. • Änderung der Streubreite (s ≠ s(vorl)). Die vorläufige Diskretisierung ist über den gesamten abgedeckten Bereich von 256 ■ s(vorl) so fein, dass selbst bei einer deutlichen Streubreitenabweichung (s = 0.25 ■ s(vorl)... 16 ■ s(vorl)) noch die spätere endgültige Diskretisierung daraus abgeleitet werden kann.
• Es liegt keine Normalverteilung vor. Die vorläufige Diskretisierung benutzt schma- Ie, äquidistante Intervalle und kann Wertehäufungen an beliebigen Stellen der
Verteilung fein wiedergeben.
Der Vor-Ort-Client-Rechner kann weiterhin dazu eingerichtet und programmiert sein, die mitprotokollierten die Häufigkeiten der Intervall-Besetzungen zu analysieren und daraus die Werteverteilungsform und die dazu passende endgültige Diskretisierung abzuleiten.
Der Vor-Ort-Client-Rechner kann hierfür dazu eingerichtet und programmiert sein, bei zumindest annähernder Gleichverteilung zwei offene Endintervalle und dazwischen 2n - 4 äquidistante Intervalle zu bilden, bei denen als Obergrenze des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, dass im unteren Endintervall insgesamt etwa l/(2n - 2) aller gültigen Werte liegen und als Breite der 2n - 4 äquidistanten Intervalle das kleinste Vielfache der vorläufigen Intervallbreite festgelegt ist, welches die Besetzung des verbleibenden oberen Endintervalls auf nicht mehr als l/(2n - 2) aller gültigen Werte anwachsen lässt. Hierbei gilt: 1 < n < 64.
Der Vor-Ort-Client-Rechner kann weiterhin dazu eingerichtet und programmiert sein, bei zumindest annähernder Exponentialverteilung (Dichtefunktion d(x) = λ ■ e"**) zwei offene Endintervalle und dazwischen 2n - 4 Intervalle mit abnehmender Breite so festzulegen, dass als Obergrenze (g1} des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, so dass im unteren Endintervall insgesamt etwa l/(2n - 2) aller gültigen Werte liegen und die Intervallgrenze gend, bestimmt wird, oberhalb der insgesamt etwa l/(2n - 2) aller gültigen Werte liegen, wobei λ aus gi und gend bestirnt wird zu λ := In (2n - 2) / (gend - gi),
und die Wunschbreite (b) des ersten Zwischenintervalls als b := ln((2n - 3) /(2n - 2)) / λ bestimmt wird. Damit liegen bei einer Exponentialverteilung in diesem Intervall genau l/(2n - 2) aller gültigen Werte. Hierbei gilt: 1 < n < 64. Bei einer Speicherbreite von 8 bit (1 Byte) pro Wert ergeben sich folgende Zahlenfaktoren: 252, 254, 1/254, In 254, In (253/254); bei 9 bit: 508, 1/510, In 510 und ln(509/510).
Weiterhin kann der Vor-Ort-Client-Rechner bei zumindest annähernder Exponentialverteilung dazu eingerichtet und programmiert sein, als nächste Intervallgrenze (g2) eine bestehende vorläufige Intervallgrenze so festzulegen, dass der Betrag der Differenz der Obergrenze (gi} des unteren Endintervalls minus nächster Intervallgrenze (g2) minus Wunschbreite (b) (|g2- gi~b|) minimal wird, die Wunschbreite (b) des ersten Zwischenintervalls mit dem Faktor eλb zu multiplizieren und die nächsten Intervalle entsprechend zu berechnen, (d.h. minimiere |g3-g2-b|; multipliziere b mit eλb, ... )
Für weitere Verteilungen, z.B. Weibull-Verteilung, logarithmische Verteilung, Poisson-Vertei- lung, etc. sind vergleichbare Spezialverfahren anzuwenden um die Intervalle zu diskretisie- ren.
Für Verteilungen, die zu keiner der individuell behandelten Verteilungsformen passen, kann zumindest annähernde Normalverteilung angenommen werden, wobei in diesem Fall der
Vor-Ort-Client-Rechner dazu eingerichtet und programmiert sein kann, die am nächsten beim wahren Mittelwert (m) liegende vorläufige Intervallgrenze als Mittelpunkt (m) festzulegen, die Standardabweichung (s) so festzulegen, dass sie der wahren Standardabweichung möglichst nahe kommt und dass s/64 ein Vielfaches der bestehenden Intervall breite ist, wobei die bestehenden vorläufigen Intervalle zu größeren neuen Intervallen zusammengefasst werden, die eine abnehmende Breitenverteilung von s/64, s/32, s/16, ... haben. Bei von 8 bit abweichender Speicherbreite pro Wert ergeben sich entsprechend andere Zahlenfaktoren.
Die bisher beschriebenen Verfahren inklusive einer eventuellen Vor-Diskretisierung in ein 16- bit-Format erlauben, eine auf die tatsächliche Werteverteilung jedes nummerischen Merkmals angepasste, hinreichend genaue Diskretisierung zu erzielen, welche mit 8 bit Speicherplatz pro Merkmal, oder einer anderen auf die anzuwendenden Analyseverfahren zugeschnitte Speicherbreite, auskommt. Die Originaldaten müssen dafür nur ein Mal komplett gelesen werden.
Der Vor-Ort-Client-Rechner kann weiterhin dazu eingerichtet und programmiert sein, boolesche Merkmale in folgender Form auf 2 bit Speicherplatz zu speichern: (0: erster valider Wert, 1: zweiter valider Wert, 2: ,Wert nicht vorhanden', 3: ,ungültiger Werf). Dies benötigt 2 bit Speicherplatz. Hat ein boolesches (=zweiwertiges) keine nicht vorhandenen oder ungül- tigen Werte, kommt man sogar mit 1 bit Speicherplatz aus (0: erster valider Wert, 1: zweiter valider Wert).
Der Vor-Ort-Client-Rechner kann weiterhin dazu eingerichtet und programmiert sein, nominale (textuelle) Merkmale für die Verwendung in der SOM-Karten-Analyse in mehrere boolesche bzw. nummerische 0/1-Merkmale aufzuspalten, eines für jeden validen Nominalwert des nominalen Merkmals. In einem gegebenen Datensatz kann immer höchstens eines dieser 0/1-Merkmale den Wert 1 haben. Daher kann eine Datenspeicherung auf die Weise vorgenommen werden, dass anstelle des Nominalwerts eines Merkmals die Position (Index) dieses Wertes in der Liste aller validen Werte dieses Merkmals gespeichert wird. Zusätzlich können zwei Indexwerte geführt werden, welche ,kein Wert vorhanden' und ,Wert kommt in der Liste gültiger Werte nicht vor' repräsentieren.
Der Vor-Ort-Client-Rechner kann weiterhin dazu eingerichtet und programmiert sein, bei nominalen Merkmalen mit sehr vielen verschiedenen Ausprägungen die weniger häufig vorkommenden zu einer oder mehreren Gruppen zusammenzufassen. Zum Beispiel ist für die SOM-Methode normalerweise eine einzelne Behandlung von mehr als etwa 15 nominalen
Merkmalsausprägungen pro Merkmal nicht sinnvoll. In diesem Fall kann man die 14 häufigsten Ausprägungen als Einzelwerte behandeln und alle weiteren Ausprägungen zur Gruppe ,sonstige' zusammenfassen.
Der Vor-Ort-Client-Rechner kann hierfür dazu eingerichtet und programmiert sein, folgende Schritte auszuführen:
Alle Original-Datensätze werden gelesen und für jedes nominale Merkmal in den Original- Daten wird ein zum ersten Mal vorkommender Wert in einem ,Wörterbuch' abgespeichert, in dem jedem vorkommenden Wert eine Index-Nummer zugeordnet und die jeweilige Vorkom- menshäufigkeit erfasst wird. Wenn eine benutzerdefinierte Schranke, z.B. etwa 30 , 1000, oder 65534, unterschiedliche Werte in dem Wörterbuch eingetragen sind, beende das Einfügen neuer Werte und führe alle danach vorkommenden Werte, die nicht im Wörterbuch auftreten, unter der vorletzten letzten Indexposition, welche ,anderer Wert' wiedergibt, während die letzte Indexposition ,kein Wert vorhanden' wiedergibt. Die Nominalwerte in dem Wörterbuch werden durch die Indexnummer (8 Bit oder 16 Bit
Ganzzahl) ersetzt. Dies reduziert den Datenumfang bereits beträchtlich gegenüber der vorher erforderlichen Speicherung von Zeichenketten.
Das Wörterbuch wird nach absteigender Vorkommenshäufigkeit sortiert. Die 14 häufigsten Werte werden als separate Werte betrachtet und ihnen werden die Index- Nummer 0 bis 13 zugewiesen. Allen anderen Werten im Wörterbuch, und auch dem bisherigen Index ,anderer Wert' wird der Wert 14 zugewiesen. Aus dem bisherigen Index ,Wert nicht vorhanden' wird der Index 15. In den vorläufig komprimierten Daten werden die vorläufigen Index-Nummern durch die neuen Index-Nummern ersetzt. Jede Index-Nummer kann dann auf nicht mehr als 4 Bit Speicherplatz gespeichert werden.
Insgesamt wird mit diesem Verfahren eine auf die tatsächlichen Wertehäufigkeiten jedes nominalen Merkmals angepasste, hinreichend genaue Komprimierung erzielt, welche mit 4 Bit Speicherplatz pro nominalem Merkmal auskommt. Die Originaldaten mussten dafür nur ein Mal komplett gelesen werden.
Sofern mehr als 14 Einzelwerte betrachten werden sollen, kann der neue Index nicht 4 Bit, sondern 8 Bit Speicherplatz einnehmen. Dann kann man bis zu 254 verschiedene Einzelwerte darstellen.
Diese Vorgehensweise eignet sich für eine Parallelisierung auf einem Mehrprozessor-Rechner oder Rechner-Netzwerk. Die vorläufige Komprimierung kann auf partitionierten Daten paral- lelisiert werden. Anschließend erfolgt ein Datenaustausch zwischen den parallelen Threads, um globale Statistiken (Mittelwert, Standardabweichung) bzw. Wertehäufigkeiten zu ermitteln. Nachdem diese Informationen zwischen den einzelnen Threads kommuniziert wur- den, erfolgt die endgültige Komprimierung parallelisiert.
Die beschriebenen Komprimierungstechniken bewirken außerdem eine Anonymisierung der Daten. Wenn zum Beispiel ein Nutzer eines Datenanalyse-Servers dem Server seine Daten aus Datenschutz- oder Geheimhaltungsgründen nicht unverschlüsselt bereitstellen möchte, kann er die Datenkomprimierung auf seinem eigenen Rechner (Vor-Ort-Client-Rechner) durchführen. Die komprimierten Daten (welche nur noch Intervall-Indizes für nummerische Daten und Wert-Indizes für binäre und nominale Daten enthalten) werden zu dem Datenanalyse-Server übermittelt. Die ,Dekomprimierungs-Informationen - d.h. für nummerische Daten Mittelwerte, Standardabweichungen, Verteilungsform, Minimum, Maximum und evtl. weitere Information, die zur Diskretisierung verwendet wurde, und für binäre und nominale Daten die Werte-"Wörterbücher", welche einen Rückschluss vom Werteindex zum tatsäch-
lichen Wert ermöglichen, verbleiben auf dem Vor-Ort-Client-Rechner. Somit kann ein unbefugter Betrachter der komprimierten Daten mit diesen nichts anfangen. Der Analyse-Server erstellt Analysen, Auswertungen, SOM-Modelle usw. auf Basis der Intervall- und Werteindizes der komprimierten Daten und schickt diese Ergebnisse zurück an den Vor-Ort-Client-Rech- ner. Dieser ist dazu eingerichtet und programmiert, die Ergebnisse mit den Dekomprimie- rungsinformationen zu verknüpfen, wodurch die Ergebnisse mit den ursprünglichen Informationen zur Verfügung stehen.
Durch die automatische Diskretisierung von nummerischen Werten und durch die Zusam- menfassung von selten vorkommenden Nominalwerten zur Gruppe ,andere' werden automatisch gesetzliche Regelungen und Vorschriften eingehalten, welche Auswertungen und Analysen verbieten, wenn die Ergebnissgruppen so klein sind, dass daraus auf Einzelpersonen geschlossen werden könnte.
Die nachfolgende Beispielimplementierung enthält folgende Einschränkungen / Vereinfachungen gegenüber dem allgemeinen Konzept:
Bei der Kompression nummerischer Merkmale wurden nicht die Spezialdiskretisierungen für bestimmte Verteilungsformen implementiert, sondern nur das Basisverfahren, welches annä- hernde Normalverteilung annimmt.
Binäre und nominale Merkmale werden nicht unterschieden sondern als kategorische' Merkmale auf 4 Bit Speichergröße komprimiert.
Die Beispielimplementierung ist in der Programmiersprache C++ programmiert. Folgende
Stil-Konventionen wurden befolgt: Variablennamen und Funktionsnamen beginnen mit Kleinbuchstaben, Typen und Klassen mit Großbuchstaben. Konstanten bestehen nur aus Großbuchstaben. Instanzvariablen von Klassen haben das Präfix ,iv', bzw. ,piv', wenn es sich um eine Zeiger-Variable handelt.
Die Implementierung besteht aus einem Aufzählungstyp und 4 Haupt-Klassen: enum FieldType { CONΗNUOUS, DISCR_NUMERIC, BINARY, NOMINAL } beschreibt die Merkmalstypen (Gleitkommazahl, Ganzzahl, Binär, Nominal).
Die Klasse GaussianCompress führt die Komprimierung und Dekomprimierung eines numme- rischen Merkmals durch (unter der Annahme, dass die Werteverteilung annähernd normalverteilt ist).
Die Klasse DataDescription beschreibt die Trainingsdaten: Merkmalsnamen, Merkmalstypen, Anzahl verschiedener valider Werte der nominalen und diskret nummerischen Merkmale, Mittelwerte und Standardabweichungen der nummerischen Merkmale. Die Klasse enthält ein Objekt vom Type GaussianCompress für jedes nummerische Merkmal. Die Klasse DataRecord enthält die Daten eines einzelnen Datensatzes. Die Klasse ist in der Lage, das binär komprimierte Datenformat aus einem Objekt vom Typ DataPage zu lesen und zu dekomprimieren (wobei sie die Objekte vom Typ GaussianCompress verwendet, welche sie in der DataDescription des Data Page-Objekts findet). Die Klasse DataPage enthält eine Serie von komprimierten Datensätzen, welche sie mit Hilfe der Methode appendDataRecord einlesen und dabei komprimieren kann, und mit der Methode retrieveNextDataRecord in Form eines Objekts vom Typ DataRecord wieder auslesen und dabei automatisch dekomprimieren. Jede Klassen-Instanz enthält also einen Teil oder alle Trainingsdaten in komprimierter Form für das Training eines SOM-Netzes. Die Methode readRecordFromDataPage dekomprimiert den Datensatz, welcher ab der Speicheradresse pData gespeichert ist.
Die dekomprimierten nummerischen Werte werden in das Feld pivNumValues geschrieben, die dekomprimierten binären und nominalen Feldwerte in das Feld pivCatValues. Die Methode appendDataRecord komprimiert den Datensatz dataRecord, welcher in Form einer Zeichenkette vorliegt, bei der die einzelnen Merkmalsausprägungen durch das Separator- Zeichen ivDataDescr.getSeparator() getrennt sind.
Die Klasse GaussianCompress speichert Mittelwert m und Standardabweichung s einer Verteilung nummerischer Merkmalsausprägungen. Außerdem bildet die Klasse jeden beliebigen nummerischen Wert auf eines von 256 diskreten Intervallen abzubilden, d.h. auf einen diskreten Wert zwischen 0 und 255, und auch umgekehrt zu einem gegebenen Intervallindex den nummerischen Wert des Intervallmittelpunktes zu liefern.
Die diskreten Intervalle sind wie folgt als Funktion von m und s definiert
• 64 Intervalle der Breite s/64 in den Bereichen [m-s, m[ und [m, m+s]
• 32 Intervalle der Breite s/32 in den Bereichen [m-2s, m-s[ und [m+s, m+2s[
• 16 Intervalle der Breite s/16 in den Bereichen [m-3s, m-2s[ und [m+2s, m+3s[ » 8 Intervalle der Breite s/8 in den Bereichen [m-4s, m-3s[ und [m+3s, m+4s[
• 4 Intervalle der Breite s/4 in den Bereichen [m-5s, m-4s[ und [m+4s, m+5s[
• 2 Intervalle der Breite s/2 in den Bereichen [m-6s, m-5s[ und [m+5s, m+6s[
• 1 Intervall unendlicher Breite für ]-∞, m-6s[ und [m+6s, ∞[.
Die Intervalle sind symmetrisch um den Mittelwert m verteilt. Das heißt, das Intervall [m- s/64, m[ hat die Intervallposition 127, und [m, m+s/64[ die Position 128. Der jedem Intervall zugeordnete nummerische Wert ist der Intervallmittelpunkt. Das bedeutet, dem Intervall 127 ist der Wert m-s/128 zugeordnet, und dem Intervall 128 der Wert m+s/128. Dem
Intervall 1 wird der Wert m-6.5s zugeordnet, dem Intervall 254 der Wert m+6.5s. Die Intervallpositionen 0 bzw. 255 sind reserviert für ungültige bzw. fehlende (SQL NULL) Werte. Der diesen Positionen zugeordnete nummerische Wert ist DBL-MAX.
class GaussianCompress
{ public:
unsigned char getBinIndex( double value ) const { if (fabs(value) == DBL_MAX) return 255; double distFromMean( (value - ivMean) / ivSigma ); if (distFromMean >= -1. && distFromMean < 1.) return unsigned char( distFromMean * 64. + 128. ); if (distFromMean >= -2. && distFromMean < 2.) return unsigned char ( distFromMean * 32. + (value>ivMean? 160. : 92.) ); if (distFromMean >= -3. && distFromMean < 3.) return unsigned char ( distFromMean * 16. + (value>ivMean? 192.: 64.) ); if (distFromMean >= -4. && distFromMean < 4.) return unsigned char ( distFromMean * 8. + (value>ivMean? 216.: 40.) ); if (distFromMean >= -5. && distFromMean < 5.) return unsigned char ( distFromMean * 4. + (value>ivMean? 232.: 24.) ); if (distFromMean >= -6. && distFromMean < 6.) return unsigned char ( distFromMean * 2. + (value>ivMean? 242.: 14.) ); return (distFromMean > 0.) ? 254 : 0; }
double getValue( unsigned char binlndex ) const { double step( ivSigma * ((binlndex > 127)? 0.015625: -0.015625) ); if (binlndex > 127) binlndex = 255 - binlndex; unsigned range( binlndex > 31 ? (binlndex>63? 0: 1) : (binlndex>7?
(binlndex>15? 2: 3): (binlndex>l? (binlndex>3?4:5): (binIndex>0?6:7))) ); switch (ränge) { case 0: return (127.5 - binlndex) * step + ivMean; case 1: return (95.5 - binlndex) * 2.0 * step + ivMean;
case 2: return (63.5 - binlndex) * 4.0 *step + ivMean; case 3: return (39.5 - binlndex) * 8.0 * step + ivMean; case 4: return (23.5 - binlndex) * 16.0 * step + ivMean; case 5: return (13.5 - binlndex) * 32.0 * step + ivMean; case 6: return (7.5 - binlndex) * 64.0 * step + ivMean;
} return DBL_MAX;
}
// assumes mean=0, stdDev=0.25, hence 95.8% of all values are in [-0.5,0.5] double getNormalizedValue( unsigned char binlndex ) const
{ double step( (binlndex > 127)? 0.00390625: -0.00390625 ); if (binlndex > 127) binlndex = 255 - binlndex; unsigned range( binlndex > 31 ? (binlndex>63? 0: 1) : (binlndex>7?
(binlndex>15? 2: 3): (binlndex>l? (binlndex>3?4:5): (binIndex>0?6:7))) ); switch (ränge) { case 0: return (127.5 - binlndex) * step; case 1: return (95.5 - binlndex) * 2.0 * step; case 2: return (63.5 - binlndex) * 4.0 *step; case 3: return (39.5 - binlndex) * 8.0 * step; case 4: return (23.5 - binlndex) * 16.0 * step; case 5: return (13.5 - binlndex) * 32.0 * step; case 6: return (7.5 - binlndex) * 64.0 * step; } return DBL_MAX; }
private:
double ivMean; double ivSigma;
>;
class DataDescription
{ public:
const char getSeparator() const { return ivSeparator; }
size_t getNbOfBytesPerRecord() const { return getNbOfNumericFields() + (getNbOfCategoricalFieldsO+l >> 1); }
size_t getNbOfRecords() const { return ivNbRecords; } size_t getNbOfFields() const { return ivNbFIds; } size_t getNbOfNumericFieldsO const { return ivNbContNumFIds+ivNbDiscrNumFIds; } size_t getNbOfCategoricalFields() const { return ivNbBinaryFIds+ivNblMominalFIds;} size_t getNbOfContinuousFields() const { return ivNbContNumFIds; } size_t getNbOfDiscrNumericFields() const { return ivNbDiscrNumFIds; } size_t getNbOfBinaryFields() const { return ivNbBinaryFIds; } size_t getNbOfNominalFieldsO const { return ivNbNominalFIds; }
size_t getFieldIndex( size_t index ) const { return pivFldIndex[index]; }
const string& getFieldName( size_t index ) const { return pivFldNames[index]; }
FieldType getFieldType( size_t index ) const { return pivFldTypes[index]; }
const GaussianCompress& getNumericStats( size_t fldlndex ) const
{ return pivNumStats[fldIndex]; }
unsigned char getContNumericIndex( size_t fldlndex, double value ) const { return pivNumStats[fldIndex].getBinIndex( value ); }
double getContNumericValueC size_t fldlndex, unsigned char valuelndex ) const { return pivNumStats[fldIndex].getValue( valuelndex ); }
double getNormalizedContNumericValue(size_t fldlndex, unsigned char vlndex) const { return pivNumStats[fldIndex].getNormalizedValue( valuelndex ); }
unsigned char getDiscrNumericIndex( size_t fldlndex, double value ) const
{ map<double,unsigned char>: :const_iterator it = pivDiscrNumIndexes[fldIndex].find( value ); return (it==pivDiscrNumIndexes[fldIndex].end())? 255: it->second; }
double getDiscrNumericValue( size_t fldlndex, unsigned char valuelndex ) const
{ return valuelndex < pivDiscrNumValues[fldIndex].size() ? pivDiscrNumValues[fldIndex][valueIndex] : DBL_MAX; }
double getNormalizedDiscrNumericValue(size_t fldlndex, unsigned char vlndex)const { const DCMeanAndStdDev& stats = pivNumStatsf ivNbContNumFIds + fldlndex ]; return valuelndex >= pivDiscrNumValues[fldIndex].size() ? DBL_MAX : (pivDiscrNumValues[fldIndex][valueIndex] -stats. getMean()) * 0.25 * stats.getInvStdDev(); }
const string& getFirstBinaryValue( size_t fldlndex ) const
{ return pivBinaryValues[fldIndex]; }
unsigned char getNominalIndex( size_t fldlndex, const string& value ) const
{ map<string,unsigned char>::const_iterator it = pivNominalIndexes[fldIndex].find( value ); return (it==pivNominalIndexes[fldIndex].end())? 255: it->second; }
const string& getNominalValue( size_t fldlndex, unsigned char valuelndex ) const { return pivNominalValues[fldIndex][valueIndex]; }
size_t getNbOfValidNominalValues( size_t fldlndex ) const { return pivNominalValues[fldIndex].size(); }
private:
const char ivSeparator;
size_t ivNbContNumFIds; size_t ivNbDiscrNumFIds; size_t ivNbBinaryFIds; size_t ivNbNominalFIds; size_t ivNbSetValuedFIds;
size_t ivNbFIds; size_t ivNbRecords;
size_t* pivFIdlndex; sttϊng* pivFIdNames;
FieldType* pivFIdTypes;
GaussianCompress* pivNumStats; map<double,unsigned char>* pivDiscrNumlndexes; valarray<double>* pivDiscrNumValues; string* pivBinaryValues; map<string,unsigned char>* pivNominallndexes; valarray<string>* pivNominalValues;
};
class DataRecord
{ public:
// DataPage is allowed to use the protected method readRecordFromDataPage friend class DataPage;
// retrieve the normalized numeric value (value-mean)/sigma of numeric field // 'fldlndex' double getNormalizedNumericValue( size_t fldlndex ) const
{ return pivNumValues[fldIndex]; }
// retrieve the value index of non-numeric field 'fldlndex' unsigned char getCategoricalIndex( size_t fldlndex ) const { return pivCatValues[fldIndex]; }
protected:
// protected method, to be called by DataPage to expand one data record from // the data page into this expanded and externally readable representation. void readRecordFromDataPage( const DataDescription& descr, const unsigned char* const pData );
private:
size_t ivNbNumFIds; size_t ivNbCatFIds; double* pivNumValues; unsigned char* pivCatValues;
};
void Data Record:: read RecordFrom Data Page( const DataDescription& descr, const unsigned char* const pData )
■C
// determine the number of numeric, binary and nominal fields size_t nbContNumFIds = descr. getNbOfContinuousFields(); size_t nbDiscrNumFlds= ivNbNumFIds - nbContNumFIds; size_t nbBinaryFIds = descr.getNbOfBinaryFields(); size_t nbNominalFIds = ivNbCatFIds - nbBinaryFIds; const unsigned char* pValue = pData;
// read and expand the field values for the numeric fields
// Note: in the compressed format, each value takes 1 byte for( size_t i=0; i<nbContNumFlds; i++, pValue++ ) { pivNumValuesfi] = descr. getNormalizedContNumericValue( i, *pValue );
} for( size_t i=0; i<nbDiscrNumFlds; i++, pValue++ ) { pivNumValues[i+nbContNumFlds]
= descr.getNormalizedDiscrNumericValue( i, *pValue ); }
// read and expand the field values for the categorical fields
// Note: in the compressed format, each value takes 1/2 byte = 4 bit. for( size_t i=0; kivNbCatFIds; i++ ) { unsigned char value = ((i&l) ? (*pValue >> 4) : (*pValue & 15)); pivCatValuesrj] = ((value == 15) ? 255 : value); if (i&l) pValue++;
} if (ivNbCatFIds & 1) pValue++;
class Data Page
■C public:
// add the data of one data record to the end of the datapage. bool appendDataRecord( const string& dataRecord );
// sets the data retrieval pointer to the first data record of the data page. bool initRetrievalMechanismO const { return ((pivStorelter = pivStore) != NULL && *pivStore != 0); }
// uncompress and retrieve the next data record from the data page, then // move the internal pointer in the data page to the following data record. bool retrieveNextDataRecord( DataRecord& dataRecord ) const
{ if (pivStorelter >= pivStorelterEnd) return false; dataRecord. readRecordFromDataPage( ivDataDescr, pivStorelter ); pivStorelter += ivRecordLen; return true; }
protected:
// storage pointer. Storage format of is 1 byte per numeric field, 4 bit per // binary or nominal field, unsigned char* pivStore;
// reference to the data description object which defines field names, field
// types, field values, and the storage length of each data record const DataDescription& ivDataDescr;
// length of one stored data record (in bytes) size_t ivRecordLen;
// pointer to a position in pivStore. During data writing: begin of empty
// space; during data reading: begin of next record to be read, mutable unsigned char* pivStorelter;
// end of the data unsigned char* pivStorelterEnd;
};
bool DataPage::appendDataRecord( const string& data Record )
{ // determine the number of numeric ,binary and nominal fields size_t nbFIds = ivDataDescr.getNbOfFields(); size_t nbContFIds = ivDataDescr.getNbOfContinuousFields(); size_t nbNumFIds = ivDataDescr.getNbOfNumericFields(); size_t nbNumAndBinaryFIds = nbNumFIds + ivDataDescr.getNbOfBinaryFields(); size_t posil = 0, posi2 = 0, posiDQuote = 0;
// loop over all fields which we expect to find in the data record for( size_t i=0; KnbFIds; i+-ι- ) { size_t index = ivDataDescr.getFieldIndex( i ); FieldType type = ivDataDescr.getFieldType( index );
// if the field Separator sign appears between double quotes, ignore it. posiDQuote = dataRecord.find( "", posil ); posi2 = dataRecord.find( ivDataDescr.getSeparator(), posil ); if (posiDQuote < posi2) { posi2 = dataRecord.find( ivDataDescr.getSeparator(), dataRecord.find( "", posi2+l ) );
} if (posi2 > dataRecord.length()) posi2 = dataRecord.length(); string word( dataRecord.substr( posil, posi2-posil ) ); posil = posi2 + 1;
// case 1: current field is expected to be numeric if (type == CONΗNUOUS | | type == DISCR_NUMERIC) { if (word.emptyO) pivStorelterpndex] = 255; // this means: n/a else { double value = atof( word.c_str() );
if (type == DISCR_NUMERIC) pivStorelterfjndex]
= ivDataDescr.getDiscrNumericIndex( index-nbContFIds, value ); eise pivStoreIter[index]
= ivDataDescr.getNumericStats(index).getBinIndex(value); } }
// case 2: current field is expected to be binary or nominal eise if (type == BINARY | | type == NOMINAL) { unsigned char value; size_t binlndex = index - nbNumFIds; jf (type == BINARY) value = (ivDataDescr.getFirstBinaryValue( binlndex ) == word)? 0: 1; eise value = ivDataDescr.getNominalIndex( index-nbNumAndBinaryFlds, word ); if (binlndex & 1) pivStoreIter[nbNumFlds+(binIndex>>l)] += (value << 4); eise pivStoreIter[nbNumFlds+(binIndex>>l)] = value; }
} // end of loop over all fields
pivStorelter += ivRecordLen; pivStorelterEnd = pivStorelter; ivNbRecords++; }
Diese Computerprogrammobjekte sind zur Ausführung in einem elektronischen Datenverarbeitungssystem mit wenigstens einem Analyse-Server und wenigstens einem Vor-Ort-Client- Rechner vorgesehen. Der Analyse-Server hat ein oder mehrere Computerprogrammobjekte um ein selbst adaptierendes Neuronen-Netz zu implementieren, das auf eine Datenbank mit einer Vielzahl Datensätzen mit vielen Merkmalen zu trainieren ist. Der Vor-Ort-Client-Rechner hat ein oder mehrere Computerprogrammobjekte, um ihm zugeführte Daten einer Datenvor- verarbeitung und/oder einer Datenkompression zu unterziehen, und um die Daten von dem
Vor-Ort-Client-Rechner an den Analyse-Server zu senden. Ein oder mehrere Computerprogrammobjekte des Analyse-Servers trainieren mit den empfangenen, vorverarbeiteten / komprimierten Daten das selbst adaptierende Neuronen-Netz, indem die Daten dem sich selbst adaptierenden Neuronen-Netz wiederholt präsentiert werden. Ein oder mehrere Com- puterprogrammobjekte des Analyse-Servers führen anschließend eine Analyse durch um ein selbst adaptierendes Neuronen-Netz-Modell oder ein anderes Data-Mining-Analyseresultat zu erstellen. Ein oder mehrere Computerprogrammobjekte des Analyse-Servers bewirken ein Versenden des selbst adaptierenden Neuronen-Netz-Modells oder sonstigen Data-Mining- Analyseresultats von dem Analyse-Server an den Vor-Ort-Client-Rechner. Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners unterziehen die Daten des selbst adaptierenden Neuronen-Netz-Modells oder sonstigen Data-Mining-Analyseresultats einer Dekomprimierung.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die Art der Daten kompression an die Art oder den Aufbau der Daten anpassen.
Ein oder mehrere Computerprogrammobjekte des Analyse-Servers können das selbst adaptierende Neuronen-Netz so oft mit den empfangenen anonymisierten Daten trainieren, bis sich ein auskonvergierter Netzzustand ergibt, der die Daten angemessen repräsentiert.
Ein oder mehrere Computerprogrammobjekte des Analyse-Servers können die Daten dem selbst adaptierenden Neuronen-Netz etwa 100 bis etwa 200 Mal präsentieren.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die ihm zugeführten Daten im Umfang von bis zu etwa 10 Gigabyte bis mehreren Terabyte der Da- tenvorverarbeitung und der Datenkompression unterziehen.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die ihm zugeführten Daten bei der Datenvorverarbeitung einmal lesen, und darin enthaltene Origi- nalmerkmale auf rein nummerische normalisierte Merkmale transformieren.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können bei der Datenkompression die normalisierten nummerischen Merkmalsausprägungen der ihm zugeführten Daten komprimieren, so dass zwischen zwei Bit und etwa 8 - 10 bit als Speicherplatz pro Merkmalsausprägung benötigt wird.
Ein oder mehrere Computerprogrammobjekte des Analyse-Servers können mindestens ein Teilobjekt der komprimierten Daten jeweils im Arbeitsspeicher zur Verarbeitung halten, während andere Teilobjekte der komprimierten Daten in Form binärer Datenobjekte auf dem Massenspeicher des Analyse-Servers gehalten werden, von wo sie durch blockweise Lese- Operationen in den Arbeitsspeicher zur Verarbeitung gelesen werden.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können in Abhängigkeit von einem für die jeweilige Analyseaufgabe akzeptablen Kompressionsfehler ein zu verwendendes Datenkompressionsverfahren festlegen, wobei das verwendendes Kompres- sionsverfahren und die zu erzielende Kompressionrate abhängig von den unterschiedlichen Merkmalstypen (boolesch, nummerisch, nominal (textuell)) festgelegt werden.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können den mittleren Vorhersagefehler für nummerische Merkmale zwischen etwa 0.01 und etwa 0.1 legen.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können eine Diskretisierung der normalisierten, nummerischen Merkmalswerte in eine Anzahl diskreter Intervalle so durchführen, dass ein mittlerer Diskretisierungsfehler (|Wert - DiskretWert|) etwa 0.001 beträgt.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können den dis- kretisierten nummerischen Wert auf 2π - 2 Intervallindizes, sowie Zustände ,Wert nicht vorhanden' und ,ungültiger Wert' abbilden und auf n bit Speicherplatz speichern, wobei 1 < n < 64.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die Intervalleinteilung Wertverteilungs-abhängig, nicht-äquidistant festlegen, wobei vorzugsweise die Intervall-Breiten der diskreten Teilintervalle in Bereichen hoher Wertedichten als besonders gering festgelegt werden.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können bei nummerischen Daten-Werteverteilungen, die der Gauß- oder Normalverteilung mit einem Mittelwert (m) und einer Standardabweichung (s) folgen,
• etwa 64 Intervalle der Breite s/64 in den Bereichen [m-s, m[ und [m, m+s]; • etwa 32 Intervalle der Breite s/32 in den Bereichen [m-2s, m-s[ und [m+s, m+2s[;
• etwa 16 Intervalle der Breite s/16 in den Bereichen [m-3s, m-2s[ und [m+2s, m+3s[;
• etwa 8 Intervalle der Breite s/8 in den Bereichen [m-4s, m-3s[ und [m+3s, m+4s[;
• etwa 4 Intervalle der Breite s/4 in den Bereichen [m-5s, m-4s[ und [m+4s, m+5s[;
• etwa 2 Intervalle der Breite s/2 in den Bereichen [m-6s, m-5s[ und [m+5s, m+6s[; und
• etwa 1 Intervall unendlicher Breite für ]-∞, m-6s[ und [m+6s, ∞[. festlegen.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die dis- kreten Intervalle als Funktion von Mittelwert (m) und Standardabweichung (s) symmetrisch um den Mittelwert m verteilen, wobei vorzugsweise
- das Intervall [m-s/64, m[ die Intervallposition 127, und
- das Intervall [m, m+s/64[ die Position 128 hat, und wobei vorzugsweise
- der nummerische Wert, der jedem Intervall zugeordnet wird, der Intervallmittelpunkt ist, und die Intervallpositionen 0 bzw. 255 für ungültige bzw. fehlende Werte reserviert sind.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können nummerische Merkmale zunächst auf normalisierte Merkmale mit Mittelwert m = 0.5 und einer Standardabweichung von s = 0.25 abbilden.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können zur Ermittlung des Mittelwertes (m) und der Standardabweichung (s) des zu diskretisierenden Merkmals einen Bruchteil von etwa 1 Promille bis etwa 10% der Datensätze zu lesen um daraus für jedes nummerische Merkmal in den Daten einen vorläufigen Mittelwert (m(vorl)) und eine vorläufige Streubreite (s(vorl) ) zu berechnen.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können alle Datensätze zu lesen und für alle nummerischen Merkmale eine vorläufige Diskretisierung basierend auf dem vorläufigen Mittelwert (m(vorl)) und der vorläufigen Streubreite (s(vorl)) durchführen.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können 65532 äquidistante Intervalle der Breite s(vorl)/ 256 zentriert um den vorläufigen Mittelwert (m(vorl)), sowie zwei offene Endintervalle ]-∞, m(vorl)- ∞& -s(vorl)[ und [m(vorl)+ ™ -s^, ∞[
und zwei Intervallindizes, welche ,Wert nicht vorhanden' sowie ungültiger numerischer Wert' festlegen, und für alle Intervalle die Häufigkeiten protokollieren, mit denen ein Wert in die jeweiligen Intervalle fällt.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die mitprotokollierten die Häufigkeiten der Intervall-Besetzungen analysieren und daraus die Werteverteilungsform und die dazu passende endgültige Diskretisierung ableiten.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können bei zumindest annähernder Gleichverteilung zwei offene Endintervalle und dazwischen 2n - 4 äquidistante Intervalle bilden, bei denen als Obergrenze des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, dass im unteren Endintervall insgesamt etwa l/2n aller gültigen Werte liegen und als Breite der 2n - 4 äquidistanten Intervalle das kleinste Vielfache der vorläufigen Intervallbreite festgelegt ist, welches die Besetzung des verbleibenden oberen Endintervalls auf nicht mehr als 1/2" aller gültigen Werte anwachsen lässt, wobei gilt: 1 < n < 64.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können bei zu- mindest annähernder Exponentialverteilung (Dichtefunktion d(x) = λ ■ e"**) zwei offene
Endintervalle und dazwischen 2π - 4 Intervalle mit abnehmender Breite so festlegen, dass als Obergrenze (gi) des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, so dass im unteren Endintervall insgesamt etwa 1/2" - 2 aller gültigen Werte liegen und die Intervallgrenze gβn(il bestimmt wird, oberhalb der insgesamt etwa l/2π - 2 aller gültigen Werte liegen, wobei λ aus gi und gend bestirnt wird zu λ := In (2n - 2) / (gend - gi)/ und die Wunschbreite (b) des ersten Zwischenintervalls als b := ln((2n - 3) / (2n - 2)) / λ bestimmt wird, wobei gilt: 1 < n < 64.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können als nächs- te Intervallgrenze (g2) eine bestehende vorläufige Intervallgrenze so festlegen, dass der
Betrag der Differenz der Obergrenze (g^ des unteren Endintervalls minus nächster Intervallgrenze (g2) minus Wunschbreite (b) (|g2-gi-b|) minimal wird, die Wunschbreite (b) des ersten Zwischenintervalls mit dem Faktor eλb multipliziert wird und die nächsten Intervalle entsprechend berechnet werden.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die am
nächsten beim wahren Mittelwert (m) liegende vorläufige Intervallgrenze als Mittelpunkt (m) festlegen, die Standardabweichung (s) so festlegen, dass sie der wahren Standardabweichung möglichst nahe kommt und dass s/64 ein Vielfaches der bestehenden Intervallbreite ist, wobei die bestehenden vorläufigen Intervalle zu größeren neuen Intervallen zusammen gefasst werden, die eine abnehmende Breitenverteilung von s/64, s/32, s/16, ... haben.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können boolesche Merkmale als verschiedene Merkmalsausprägungen speichern (,erster valider Wert', ,zweiter valider Wert', ,Wert nicht vorhanden', ,ungültiger Werf).
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können nominale Merkmale für die Verwendung in der SOM-Karten-Analyse in mehrere boolesche bzw. nummerische 0/1-Merkmale aufspalten.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können nominale Merkmale als Position des Merkmals in der Liste aller validen Werte dieses Merkmals speichern und zwei Indexwerte geführt werden, welche ,kein Wert vorhanden' und ,Wert kommt in der Liste gültiger Werte nicht vor' repräsentieren.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können bis zu etwa 100, vorzugsweise bis zu etwa 60, unterschiedliche Nominalwerte einzeln oder als Gruppen einzelner Nominalwerte indizieren.
Etwa 10 bis etwa 20 oder 30, vorzugsweise etwa 15 häufigsten Werte können durch ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners zur Auswertung als Einzelwerte ausgewählt werden und alle anderen Werte unter einem Index ,andere' zu einer einzigen Wertgruppe zusammengefasst werden.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können folgende Schritte ausführen:
- Lesen aller Original-Datensätze in den Arbeitsspeicher des Vor-Ort-Client-Rechner (12) und für jedes nominale Merkmal in den Original-Daten wird ein zum ersten Mal vorkommender Wert in einer Datei ,Wörterbuch' abgespeichert, in der jedem vorkommenden Wert eine Index-Nummer zugeordnet und die jeweilige Vorkommenshäufigkeit erfasst wird; - sobald eine benutzerdefinierte Schranke, z.B. etwa 30, 1000, oder 65534, unterschiedliche
Werte in dem Wörterbuch eingetragen sind,
- Beenden des Einfügens neuer Werte, und
- Eintragen aller danach vorkommenden Werte, die nicht im Wörterbuch auftreten, unter der vorletzten letzten Indexposition, welche »anderer Wert' wiedergibt, während die letzte Index- position ,kein Wert vorhanden' wiedergibt.
- Ersetzen der Nominalwerte in dem Wörterbuch durch die Indexnummer mit einer 8 Bit oder 16 Bit Ganzzahl.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können folgenden Schritt auszuführen:
- Sortieren des Wörterbuchs nach absteigender Vorkommenshäufigkeit der Einträge.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können eine auf die tatsächlichen Wertehäufigkeiten jedes nominalen Merkmals angepasste, Komprimierung vornehmen, welche 4 Bit oder ein Byte Speicherplatz pro nominalem Merkmal verwendet.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können folgende Schritte auszuführen:
- Erfassen der 14 bzw. 253 häufigsten Werte als separate Werte; - Zuweisen der Index-Nummer 0 bis 13, bzw. 0 bis 253 an diese Werte im Wörterbuch, vorzugsweise entsprechend ihrer Häufigkeit;
- Zuweisen der Index-Nummer 14 bzw. 254 an allen anderen Werte im Wörterbuch, einschließlich dem bisherigen Index ,anderer Wert';
- Zuweisen der Index-Nummer 15 bzw. 255 an den bisherigen Index ,Wert nicht vorhanden'; und
- Speichern jeder der Index-Nummern auf 4 Bit bzw. 1 Byte Speicherplatz.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können eine vorläufige Komprimierung mit mehreren Rechnerkernen auf partitionierten Daten parallel ausführen, globale Statistiken bzw. Wertehäufigkeiten zwischen einzelnen Threads kommunizieren und die endgültige Komprimierung parallelisiert ausführen.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können eine Anonymisierung der Daten dadurch ausführen, dass die Datenkomprimierung auf dem Vor- Ort-Client-Rechner ausgeführt wird, die komprimierten Daten mit den Intervall-Indizes für nummerische Daten und Wert-Indizes für binäre und nominale Daten an den Datenanalyse-
Server (10) übermittelt werden und die ,Dekomprimierungs-Informationen, für nummerische Daten Mittelwerte, Standardabweichungen, Verteilungsform, Minimum, Maximum und für binäre und nominale Daten die Werte-"Wörterbücher", welche einen Rückschluss vom Werteindex zum tatsächlichen Wert ermöglichen, auf dem Vor-Ort-Client-Rechner (12) gespeichert werden.
Ein oder mehrere Computerprogrammobjekte des Analyse-Servers können Analysen, Auswertungen, SOM-Modelle auf Basis der Intervall- und Werteindizes der komprimierten Daten erstellen und diese Ergebnisse zurück an den Vor-Ort-Client-Rechner (12) schicken.
Ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners können die Ergebnisse mit den Dekomprimierungsinformationen verknüpfen, wodurch die Ergebnisse mit den ursprünglichen Informationen zur Verfügung stehen.
Ein erstes Computerprogrammprodukt kann ein oder mehrere Computerprogrammobjekte zur Ausführung eines oder mehrerer der vorgenannten Verfahrensschritte auf einem Vor-Ort- Client-Rechner enthalten.
Ein zweites Computerprogrammprodukt kann ein oder mehrere Computerprogrammobjekte zur Ausführung eines oder mehrerer der vorgenannten Verfahrensschritte auf einem Analyse-Server enthalten.
Claims
1. Elektronisches Datenverarbeitungssystem zur Analyse von Daten, mit wenigstens einem Analyse-Server (10) und - wenigstens einem Vor-Ort-Client-Rechner (12), wobei der Analyse-Server (10) dazu eingerichtet und programmiert ist, ein selbst adaptierendes Neuronen-Netz zu implementieren, das auf eine große Datenbank mit einer Vielzahl Datensätzen mit vielen Merkmalen zu trainieren ist, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, ihm zuge- führte Daten einer Datenvorverarbeitung und/oder einer Datenkompression zu unterziehen, bevor die Daten von dem Vor-Ort-Client-Rechner (12) über ein elektronisches Netzwerk (14) an den Analyse-Server (10) gesendet werden, wobei - eine von dem Datentyp abhängige Kompression der Daten ausgeführt wird, die eine Anonymisierung der Daten dadurch bewirkt, dass die Daten in einen vertraulichen und einen nicht-vertraulichen Teil transformiert werden, der nicht-vertrauliche Teil der Daten an den Analyse-Server (10) übermittelt wird und der vertrauliche Teil der Daten auf dem Vor-Ort- Client separat gespeichert wird, und wobei - der Analyse-Server (10) dazu eingerichtet und programmiert ist, mit den empfangenen, vorverarbeiteten/komprimierten Daten das selbst adaptierende Neuronen-Netz zu trainieren, indem die Daten dem sich selbst adaptierenden Neuronen-Netz wiederholt präsentiert werden und anschließend eine Analyse durchgeführt wird um ein selbst adaptierendes Neuronen-Netz-Modell oder ein anderes Data-Mining-Analyseresultat zu erstellen, und wobei - der Analyse-Server (10) dazu eingerichtet und programmiert ist, ein Versenden des selbst adaptierenden Neuronen-Netz-Modells oder sonstigen Data-Mining-Analyseresultats von dem Analyse-Server (10) an den Vor-Ort-Client-Rechner (12) zu bewirken, und der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, die Daten des selbst adaptierenden Neuronen-Netz-Modells oder sonstigen Data-Mining-Analyse- resultats einer Dekomprimierung zu unterziehen, indem nach dem Eintreffen des anonymi- sierten Analyseresultats vom Analyse-Server (10) dieses anonymisierte Analyseresultat mit dem vertraulichen Teil der Daten zu einem de-anonymisierten Klartext- Analyseresultat zusammengeführt wird.
2. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, die Art der Datenkompression an die Art oder den Aufbau der Daten anzupassen indem Intervall-Indizes für nummerische Daten und Wert-Indizes für binäre und nominale Daten an den Datenanalyse-Server übermittelt werden, während die Dekomprimierungs-Informationen, nämlich für nummerische Daten Mittelwerte, Standardabweichungen, Verteilungsform, Minimum, Maximum, und für binäre und nominale Daten Werte-"Wörterbücher", welche einen Rückschluss vom Werteindex zum tatsächlichen Wert ermöglichen, auf dem Vor-Ort-Client-Rechner gespeichert werden.
3. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, die ihm zugeführten Daten im Umfang von bis zu etwa 10 Gigabyte bis mehreren Terabyte der Datenvorverarbeitung und der Datenkompression zu unterziehen.
4. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, die ihm zugeführten Daten bei der Datenvorverarbeitung einmal zu lesen, und darin enthaltene Originalmerkmale auf rein nummerische normalisierte Merkmale zu transformieren.
5. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, bei der Daten kompression die normalisierten nummerischen Merkmalsausprägungen der ihm zugeführten Daten zu komprimieren, so dass zwischen zwei Bit und etwa 8 - 10 bit als Speicherplatz pro Merkmalsausprägung benötigt wird.
6. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, in Abhängigkeit von einem für die jeweilige Analyseaufgabe akzeptablen Kompressionsfehler ein zu verwendendes Datenkompressionsverfahren festzulegen, wobei das verwendendes Kompressionsverfahren und die zu erzielende Kompression rate abhängig von den unterschiedlichen Merkmalstypen (boolesch, nummerisch, nominal (textuell)) festzulegen ist.
7. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) so eingerichtet und programmiert ist, dass der mittlere Vorhersagefehler für nummerische Merkmale zwischen etwa 0.01 und etwa 0.1 liegt.
8. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, eine Diskretisierung der normalisierten, nummerischen Merkmalswerte in eine Anzahl diskreter Intervalle so durchzuführen, dass ein mittlerer Diskretisierungsfehler (|Wert - DiskretWert|) etwa 0.001 beträgt.
9. Elektronisches Datenverarbeitungssystem nach Anspruch 1, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, den diskretisierten nummerischen Wert auf 2n - 2 Intervallindizes, sowie Zustände ,Wert nicht vorhanden' und ,ungültiger Wert' abzubilden und auf n bit Speicherplatz zu speichern, wobei 1 < n < 64.
10. Elektronisches Datenverarbeitungssystem nach Anspruch 9, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, dass Intervalleinteilung Wertvertei- lungs-abhängig, nicht-äquidistant ist, wobei vorzugsweise die Intervall-Breiten der diskreten Teilintervalle in Bereichen hoher Wertedichten als besonders gering festgelegt werden.
11. Elektronisches Datenverarbeitungssystem nach Anspruch 9 oder 10, bei dem der Vor- Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, dass bei nummerischen Daten-Werteverteilungen, die der Gauß- oder Normalverteilung mit einem Mittelwert (m) und einer Standardabweichung (s) folgen, • etwa 64 Intervalle der Breite s/64 in den Bereichen [m-s, m[ und [m, m+s];
• etwa 32 Intervalle der Breite s/32 in den Bereichen [m-2s, m-s[ und [m+s, m+2s[;
• etwa 16 Intervalle der Breite s/16 in den Bereichen [m-3s, m-2s[ und [m+2s, m+3s[;
• etwa 8 Intervalle der Breite s/8 in den Bereichen [m-4s, m-3s[ und [m+3s, m+4s[;
• etwa 4 Intervalle der Breite s/4 in den Bereichen [m-5s, m-4s[ und [m+4s, m+5s[; • etwa 2 Intervalle der Breite s/2 in den Bereichen [m-6s, m-5s[ und [m+5s, m+6s[; und
• etwa 1 Intervall unendlicher Breite für ]-∞, m-6s[ und [m+6s, ∞[. festgelegt sind.
12. Elektronisches Datenverarbeitungssystem nach einem der Ansprüche 9 bis 11, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, dass die diskreten Intervalle als Funktion von Mittelwert (m) und Standardabweichung (s) symmetrisch um den Mittelwert m verteilt sind, wobei vorzugsweise - das Intervall [m-s/64, m[ die Intervallposition 127, und - das Intervall [m, m+s/64[ die Position 128 hat, und wobei vorzugsweise - der nummerische Wert, der jedem Intervall zugeordnet wird, der Intervallmittelpunkt ist, und die Intervallpositionen 0 bzw. 255 für ungültige bzw. fehlende Werte reserviert sind.
13. Elektronisches Datenverarbeitungssystem nach einem der Ansprüche 9 bis 12, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, dass nummerische
Merkmale zunächst auf normalisierte Merkmale mit Mittelwert m = 0.5 und einer Standardabweichung von s = 0.25 abgebildet werden.
14. Elektronisches Datenverarbeitungssystem nach einem der Ansprüche 9 bis 13, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, zur Ermittlung des
Mittelwertes (m) und der Standardabweichung (s) des zu diskretisierenden Merkmals einen Bruchteil von etwa 1 Promille bis etwa 10% der Datensätze zu lesen um daraus für jedes nummerische Merkmal in den Daten einen vorläufigen Mittelwert (m(vorl)) und eine vorläufige Streubreite (s(vorl) ) zu berechnen.
15. Elektronisches Datenverarbeitungssystem nach einem der Ansprüche 9 bis 14, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, alle Datensätze zu lesen und für alle nummerischen Merkmale eine vorläufige Diskretisierung basierend auf dem vorläufigen Mittelwert (m(vorl)) und der vorläufigen Streubreite (s(vorl)) durchzuführen.
16. Elektronisches Datenverarbeitungssystem nach einem der Ansprüche 9 bis 15, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist,
65532 äquidistante Intervalle der Breite s(vorl)/ 256 zentriert um den vorläufigen Mittelwert (m(vorl)), sowie zwei offene Endintervalle ]-∞, miw®-x∞. -s<wrt\ und [m(vorl)+ ™ -s(vorl), oo[ und zwei Intervallindizes, welche ,Wert nicht vorhanden' sowie ,ungültiger numerischer Wert' wiedergeben, und für alle Intervalle die Häufigkeiten zu protokollieren, mit denen ein Wert in die jeweiligen Intervalle fällt.
17. Elektronisches Datenverarbeitungssystem nach Anspruch 16, bei dem der Vor-Ort-Client- Rechner (12) dazu eingerichtet und programmiert ist, die mitprotokollierten die Häufigkeiten der Intervall-Besetzungen zu analysieren und daraus die Werteverteilungsform und die dazu passende endgültige Diskretisierung abzuleiten.
18. Elektronisches Datenverarbeitungssystem nach einem der Ansprüche 9 bis 17, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, bei zumindest annähernder Gleichverteilung zwei offene Endintervalle und dazwischen 2n - 4 äquidistante Intervalle zu bilden, bei denen als Obergrenze des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, dass im unteren Endintervall insgesamt etwa l/2n aller gültigen Werte liegen und als Breite der 2n - 4 äquidistanten Intervalle das kleinste Vielfache der vorläufigen Intervallbreite festgelegt ist, welches die Besetzung des verbleibenden oberen Endintervalls auf nicht mehr als 1/2" aller gültigen Werte anwachsen lässt, wobei gilt: 1 < n < 64.
19. Elektronisches Datenverarbeitungssystem nach einem der Ansprüche 9 bis 17, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, bei zumindest annähernder Exponentialverteilung (Dichtefunktion d(x) = λ ■ e"**) zwei offene Endintervalle und dazwischen 2π - 4 Intervalle mit abnehmender Breite so festzulegen, dass als Obergren- ze (gi) des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, so dass im unteren Endintervall insgesamt etwa l/2n - 2 aller gültigen Werte liegen und die Intervallgrenze genά, bestimmt wird, oberhalb der insgesamt etwa l/2n - 2 aller gültigen Werte liegen, wobei λ aus gi und gend bestirnt wird zu λ := In (2n - 2) / (gend - gθ, und die Wunschbreite (b) des ersten Zwischenintervalls als b := ln((2n - 3) / (2n - 2)) / λ bestimmt wird, wobei gilt: 1 < n < 64.
20. Elektronisches Datenverarbeitungssystem nach dem vorhergehenden Anspruch, bei dem der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, als nächste Intervallgrenze (g2) eine bestehende vorläufige Intervallgrenze so festzulegen, dass der Betrag der Differenz der Obergrenze (gυ des unteren Endintervalls minus nächster Intervallgrenze (g2) minus Wunschbreite (b) (|g2-gi-b|) minimal wird, die Wunschbreite (b) des ersten Zwischenintervalls mit dem Faktor eλb zu multiplizieren und die nächsten Intervalle entsprechend zu berechnen.
21. Elektronisches Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, die am nächsten beim wahren Mittelwert (m) liegende vorläufige Intervallgrenze als Mittelpunkt (m) festzulegen, die Standardabweichung (s) so festzulegen, dass sie der wahren Standardabweichung möglichst nahe kommt und dass s/64 ein Vielfaches der bestehenden Intervall- breite ist, wobei die bestehenden vorläufigen Intervalle zu größeren neuen Intervallen zu- sammen gefasst werden, die eine abnehmende Breitenverteilung von s/64, s/32, s/16, ... haben.
22. Elektronisches Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, boolesche
Merkmale als verschiedene Merkmalsausprägungen zu speichern (,erster valider Wert', ^weiter valider Wert', ,Wert nicht vorhanden', ,ungültiger Werf).
23. Elektronisches Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, nominale
Merkmale für die Verwendung in der SOM-Karten-Analyse in mehrere boolesche bzw. nummerische 0/1-Merkmale aufzuspalten.
24. Elektronisches Datenverarbeitungssystem nach dem vorhergehenden Anspruch, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, nominale Merkmale als Position des Merkmals in der Liste aller validen Werte dieses Merkmals gespeichert wird und zwei Indexwerte geführt werden, welche ,kein Wert vorhanden' und ,Wert kommt in der Liste gültiger Werte nicht vor' repräsentieren.
25. Elektronisches Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, bis zu etwa 100, vorzugsweise bis zu etwa 60, unterschiedliche Nominalwerte einzeln oder als Gruppen einzelner Nominalwerte zu indizieren.
26. Elektronisches Datenverarbeitungssystem nach dem vorhergehenden Anspruch, wobei die etwa 10 bis etwa 20 oder 30, vorzugsweise etwa 15 häufigsten Werte zur Auswertung als Einzelwerte ausgewählt werden und alle anderen Werte unter einem Index ,andere' zu einer einzigen Wertgruppe zusammengefasst werden.
27. Elektronisches Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, folgende Schritte auszuführen:
- Lesen aller Original-Datensätze in den Arbeitsspeicher des Vor-Ort-Client-Rechner (12) und für jedes nominale Merkmal in den Original-Daten abspeichern eines zum ersten Mal vor- kommenden Wertes in einer Datei ,Wörterbuch', in der jedem vorkommenden Wert eine In- dex-Nummer zugeordnet und die jeweilige Vorkommenshäufigkeit erfasst wird;
- sobald eine benutzerdefinierte Schranke, z.B. etwa 30, 1000, oder 65534, unterschiedliche Werte in dem Wörterbuch eingetragen sind,
- Beenden des Einfügens neuer Werte, und - Eintragen aller danach vorkommenden Werte, die nicht im Wörterbuch auftreten, unter der vorletzten letzten Indexposition, welche ,anderer Wert' wiedergibt, während die letzte Indexposition ,kein Wert vorhanden' wiedergibt.
- Ersetzen der Nominalwerte in dem Wörterbuch durch die Indexnummer mit einer 8 Bit oder 16 Bit Ganzzahl.
28. Elektronisches Datenverarbeitungssystem nach dem vorhergehenden Anspruch, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, folgenden Schritt auszuführen:
- Sortieren des Wörterbuchs nach absteigender Vorkommenshäufigkeit der Einträge.
29. Elektronisches Datenverarbeitungssystem nach dem vorhergehenden Anspruch, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, eine auf die tatsächlichen Wertehäufigkeiten jedes nominalen Merkmals angepasste, Komprimierung vorzunehmen, welche 4 Bit oder ein Byte Speicherplatz pro nominalem Merkmal verwendet.
30. Elektronisches Datenverarbeitungssystem nach dem vorhergehenden Anspruch, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, folgende Schritte auszuführen:
- Erfassen der 14 bzw. 253 häufigsten Werte als separate Werte; - Zuweisen der Index-Nummer 0 bis 13, bzw. 0 bis 253 an diese Werte im Wörterbuch, vorzugsweise entsprechend ihrer Häufigkeit;
- Zuweisen der Index-Nummer 14 bzw. 254 an allen anderen Werte im Wörterbuch, einschließlich dem bisherigen Index ,anderer Wert';
- Zuweisen der Index-Nummer 15 bzw. 255 an den bisherigen Index ,Wert nicht vorhanden'; und
- Speichern jeder der Index-Nummern auf 4 Bit bzw. 1 Byte Speicherplatz.
31. Elektronisches Datenverarbeitungssystem nach dem vorhergehenden Anspruch, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, eine vorläufige Komprimierung mit mehreren Rechnerkernen auf partitionierten Daten parallel auszuführen, globale Statistiken bzw. Wertehäufigkeiten zwischen einzelnen Threads zu kommunizieren und die endgültige Komprimierung parallelisiert auszuführen.
32. Elektronisches Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, wobei der Vor-Ort-Client-Rechner (12) dazu eingerichtet und programmiert ist, die Anonymi- sierung der Daten dadurch auszuführen, dass die Datenkomprimierung auf dem Vor-Ort- Client-Rechner ausgeführt wird, die komprimierten Daten mit den Intervall-Indizes für nummerische Daten und Wert-Indizes für binäre und nominale Daten an den Datenanalyse-Server übermittelt werden während die Dekomprimierungs-Informationen, für nummerische Daten Mittelwerte, Standardabweichungen, Verteilungsform, Minimum, Maximum und für binäre und nominale Daten die Werte-"Wörterbücher", welche einen Rückschluss vom Werteindex zum tatsächlichen Wert ermöglichen, auf dem Vor-Ort-Client-Rechner gespeichert werden, und wobei der Analyse-Server Analysen, Auswertungen, SOM-Modelle auf Basis der Intervall- und Werteindizes der komprimierten Daten erstellt und diese Ergebnisse zurück an den Vor-Ort-Client-Rechner schickt, wobei dieser dazu eingerichtet und programmiert ist, die Ergebnisse mit den Dekomprimierungsinformationen zu verknüpfen, wodurch die Ergebnisse mit den ursprünglichen Informationen zur Verfügung stehen.
33. Verfahren zur Analyse von Daten in einem elektronischen Datenverarbeitungssystem, mit wenigstens einem Analyse-Server (10) und wenigstens einem Vor-Ort-Client-Rechner (12), wobei der Analyse-Server (10) ein oder mehrere Computerprogrammobjekte aufweist um ein selbst adaptierendes Neuronen-Netz zu implementieren, das auf eine Datenbank mit einer Vielzahl Datensätzen mit vielen Merkmalen zu trainieren ist, wobei der Vor-Ort-Client- Rechner (12) ein oder mehrere Computerprogrammobjekte aufweist, um ihm zugeführte Daten einer Datenvorverarbeitung und/oder einer Datenkompression zu unterziehen, um die Daten von dem Vor-Ort-Client-Rechner (12) an den Analyse-Server (10) zu senden, wobei eine von dem Datentyp abhängige Kompression der Daten ausgeführt wird, die eine Anony- misierung der Daten dadurch bewirkt, dass die Daten in einen vertraulichen und einen nichtvertraulichen Teil transformiert werden, der nicht-vertrauliche Teil der Daten an den Analyse-Server (10) übermittelt wird und der vertrauliche Teil der Daten auf dem Vor-Ort-Client separat gespeichert wird, und wobei ein oder mehrere Computerprogrammobjekte des Ana- lyse-Servers (10) mit den empfangenen, vorverarbeiteten/komprimierten Daten das selbst - adaptierende Neuronen-Netz trainieren, indem die Daten dem sich selbst adaptierenden Neuronen-Netz wiederholt präsentiert werden und ein oder mehrere Computerprogrammob- jekte des Analyse-Servers (10) anschließend eine Analyse durchführen um ein selbst adaptierendes Neuronen-Netz-Modell oder ein anderes Data-Mining-Analyseresultat zu erstellen, und wobei ein oder mehrere Computerprogrammobjekte des Analyse-Servers (10) ein Versenden des selbst adaptierenden Neuronen-Netz-Modells oder sonstigen Data-Mining- Analyseresultats von dem Analyse-Server (10) an den Vor-Ort-Client-Rechner (12) bewirken, und ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die Daten des selbst adaptierenden Neuronen-Netz-Modells oder sonstigen Data-Mining-Analyse- resultats einer Dekomprimierung unterziehen indem nach dem Eintreffen des anonymisierten Analyseresultats vom Analyse-Server (10) dieses anonymisierte Analyseresultat mit dem ver- traulichen Teil der Daten zu einem de-anonymisierten Klartext- Analyseresultat zusammengeführt wird.
34. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die Art der Datenkompression an die Art oder den Aufbau der Daten anpassen indem Intervall-Indizes für nummerische Daten und Wert-Indizes für binäre und nominale Daten an den Datenanalyse-Server übermittelt werden, während Dekompri- mierungs-Informationen, nämlich für nummerische Daten Mittelwerte, Standardabweichungen, Verteilungsform, Minimum, Maximum, und für binäre und nominale Daten Werte- "Wörterbücher", welche einen Rückschluss vom Werteindex zum tatsächlichen Wert ermögli- chen, auf dem Vor-Ort-Client-Rechner gespeichert werden.
35. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Analyse-Servers (10) das selbst adaptierende Neuronen-Netz so oft mit den empfangenen anonymisierten Daten trainieren, bis sich ein auskonvergierter Netzzustand ergibt, der die Daten angemessen repräsentiert.
36. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Analyse-Servers (10) die Daten dem selbst adaptierenden Neuronen-Netz etwa 100 bis etwa 200 Mal präsentieren.
37. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die ihm zugeführten Daten im Umfang von bis zu etwa 10 Gigabyte bis mehreren Terabyte der Datenvorverarbeitung und der Datenkompression unterziehen.
38. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die ihm zugeführten Daten bei der Datenvorverarbeitung einmal lesen, und darin enthaltene Originalmerkmale auf rein nummerische normalisierte Merkmale transformieren.
39. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) bei der Datenkompression die normalisierten nummerischen Merkmalsausprägungen der ihm zugeführten Daten komprimieren, so dass zwischen zwei Bit und etwa 8 - 10 bit als Speicherplatz pro Merkmalsausprägung benötigt wird.
40. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) in Abhängigkeit von einem für die jeweilige Analyseaufgabe akzeptablen Kompressionsfehler ein zu verwendendes Datenkompressionsverfahren festlegen, wobei das verwendendes Kompressionsverfahren und die zu erzielende Kompressionra- te abhängig von den unterschiedlichen Merkmalstypen (boolesch, nummerisch, nominal (textuell)) festgelegt werden.
41. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) den mittleren Vorhersagefehler für nummerische Merkmale zwischen etwa 0.01 und etwa 0.1 legen.
42. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) eine Diskretisierung der normalisierten, nummerischen Merkmalswerte in eine Anzahl diskreter Intervalle so durchführen, dass ein mittlerer Diskretisie- rungsfehler (|Wert - DiskretWert|) etwa 0.001 beträgt.
43. Verfahren nach Anspruch 42, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) den diskretisierten nummerischen Wert auf 2π - 2 Intervallindizes, sowie Zustände ,Wert nicht vorhanden' und ,ungültiger Wert' abbilden und auf n bit Speicherplatz speichern, wobei 1 < n < 64.
44. Verfahren nach Anspruch 42 oder 43, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die Intervalleinteilung Wertverteilungs-abhängig, nicht-äquidistant festlegen, wobei vorzugsweise die Intervall-Breiten der diskreten Teilinter- valle in Bereichen hoher Wertedichten als besonders gering festgelegt werden.
45. Verfahren nach Anspruch 42, 43, oder 44, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) bei nummerischen Daten-Werteverteilungen, die der Gauß- oder Normalverteilung mit einem Mittelwert (m) und einer Standardabweichung (s) folgen, • etwa 64 Intervalle der Breite s/64 in den Bereichen [m-s, m[ und [m, m+s];
• etwa 32 Intervalle der Breite s/32 in den Bereichen [m-2s, m-s[ und [m+s, m+2s[;
• etwa 16 Intervalle der Breite s/16 in den Bereichen [m-3s, m-2s[ und [m+2s, m+3s[;
• etwa 8 Intervalle der Breite s/8 in den Bereichen [m-4s, m-3s[ und [m+3s, m+4s[;
• etwa 4 Intervalle der Breite s/4 in den Bereichen [m-5s, m-4s[ und [m+4s, m+5s[; • etwa 2 Intervalle der Breite s/2 in den Bereichen [m-6s, m-5s[ und [m+5s, m+6s[; und
• etwa 1 Intervall unendlicher Breite für ]-oo, m-6s[ und [m+6s, oo[. festlegen.
46. Verfahren nach einem der Ansprüche 40 bis 45, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die diskreten Intervalle als Funktion von Mittelwert (m) und Standardabweichung (s) symmetrisch um den Mittelwert m verteilen, wobei vorzugsweise
- das Intervall [m-s/64, m[ die Intervallposition 127, und - das Intervall [m, m+s/64[ die Position 128 hat, und wobei vorzugsweise
- der nummerische Wert, der jedem Intervall zugeordnet wird, der Intervallmittelpunkt ist, und die Intervall Positionen 0 bzw. 255 für ungültige bzw. fehlende Werte reserviert sind.
47. Verfahren nach Anspruch 33, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) nummerische Merkmale zunächst auf normalisierte Merkmale mit Mittelwert m = 0.5 und einer Standardabweichung von s = 0.25 abbilden.
48. Verfahren nach einem der Ansprüche 40 bis 47, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) zur Ermittlung des Mittelwertes (m) und der Standardabweichung (s) des zu diskretisierenden Merkmals einen Bruchteil von etwa 1 Promille bis etwa 10% der Datensätze zu lesen um daraus für jedes nummerische Merkmal in den Daten einen vorläufigen Mittelwert (m(vorl)) und eine vorläufige Streubreite (s(vorl) ) zu berechnen.
49. Verfahren nach einem der Ansprüche 40 bis 48, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) alle Datensätze zu lesen und für alle nummerischen Merkmale eine vorläufige Diskretisierung basierend auf dem vorläufigen Mittelwert (m(vorl)) und der vorläufigen Streubreite (s(vorl)) durchführen.
50. Verfahren nach einem der Ansprüche 40 bis 49, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12)
65532 äquidistante Intervalle der Breite s(vorl)/ 256 zentriert um den vorläufigen Mittelwert (m(vorl)), sowie zwei offene Endintervalle ]-∞, m(vorl)- ™ -s(vorl)[ und [m(vorl)+ ^f -s(vorl), ∞[ und zwei Intervallindizes, welche ,Wert nicht vorhanden' sowie »ungültiger numerischer Wert' festlegen, und für alle Intervalle die Häufigkeiten protokollieren, mit denen ein Wert in die jeweiligen Intervalle fällt.
51. Verfahren nach Anspruch 50, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die mitprotokollierten die Häufigkeiten der Intervall- Besetzungen analysieren und daraus die Werteverteilungsform und die dazu passende endgültige Diskretisierung ableiten.
52. Verfahren nach einem der Ansprüche 40 bis 51, bei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) bei zumindest annähernder Gleichverteilung zwei offene Endintervalle und dazwischen 2π - 4 äquidistante Intervalle bilden, bei denen als Obergrenze des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, dass im unteren Endintervall insgesamt etwa l/2n aller gültigen Werte liegen und als Breite der 2n - 4 äquidistanten Intervalle das kleinste Vielfache der vorläufigen Intervallbreite festgelegt ist, welches die Besetzung des verbleibenden oberen Endintervalls auf nicht mehr als 1/2" aller gültigen Werte anwachsen lässt, wobei gilt: 1 < n < 64.
53. Verfahren nach einem der Ansprüche 40 bis 52, bei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) bei zumindest annähernder Exponentialver- teilung (Dichtefunktion d(x) = λ ■ e"^) zwei offene Endintervalle und dazwischen 2n - 4 Intervalle mit abnehmender Breite so festlegen, dass als Obergrenze (gi} des unteren Endintervalls eine der vorläufigen Intervallgrenzen so festgelegt ist, so dass im unteren Endinter- vall insgesamt etwa l/2n - 2 aller gültigen Werte liegen und die Intervallgrenze genύl bestimmt wird, oberhalb der insgesamt etwa 1/2" - 2 aller gültigen Werte liegen, wobei λ aus gi und gend bestirnt wird zu λ := In (2n - 2) / (gend - gθ# und die Wunschbreite (b) des ersten Zwischenintervalls als b := ln((2n - 3) / (2π - 2)) / λ bestimmt wird, wobei gilt: 1 < n < 64.
54. Verfahren nach dem vorhergehenden Anspruch, bei dem ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) als nächste Intervallgrenze (g2) eine bestehende vorläufige Intervallgrenze so festlegen, dass der Betrag der Differenz der Obergrenze (g^ des unteren Endintervalls minus nächster Intervallgrenze (g2) minus Wunschbreite (b) (|g2-gi-b|) minimal wird, die Wunschbreite (b) des ersten Zwischenintervalls mit dem Faktor eλb multipliziert wird und die nächsten Intervalle entsprechend berechnet werden.
55. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die am nächsten beim wahren Mittelwert (m) liegende vorläufige Intervallgrenze als Mittelpunkt (m) festlegen, die Standardabweichung (s) so festlegen, dass sie der wahren Standardabweichung möglichst nahe kommt und dass s/64 ein Vielfaches der bestehenden Intervallbreite ist, wobei die bestehenden vorläufigen Intervalle zu größeren neuen Intervallen zusammen gefasst werden, die eine abnehmende Breitenverteilung von s/64, s/32, s/16, ... haben.
56. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) boolesche Merkmale als verschiedene Merkmalsausprägungen speichern (,erster valider Wert', ,zweiter valider Wert', ,Wert nicht vorhanden', , ungültiger Werf).
57. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) nominale Merkmale für die Verwendung in der SOM-Karten-Analyse in mehrere boolesche bzw. nummerische 0/1- Merkmale aufspalten.
58. Verfahren nach dem vorhergehenden Anspruch, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) nominale Merkmale als Position des Merkmals in der Liste aller validen Werte dieses Merkmals speichern und zwei Indexwerte geführt werden, welche ,kein Wert vorhanden' und ,Wert kommt in der Liste gültiger Werte nicht vor' repräsentieren.
59. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) bis zu etwa 100, vorzugsweise bis zu etwa 60, unterschiedliche Nominalwerte einzeln oder als Gruppen einzelner Nominalwerte indiziert.
60. Verfahren nach dem vorhergehenden Anspruch, wobei die etwa 10 bis etwa 20 oder 30, vorzugsweise etwa 15 häufigsten Werte zur Auswertung als Einzelwerte ausgewählt werden und alle anderen Werte unter einem Index ,andere' zu einer einzigen Wertgruppe zusam- mengefasst werden.
61. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) folgende Schritte ausführen:
- Lesen aller Original-Datensätze in den Arbeitsspeicher des Vor-Ort-Client-Rechner (12) und für jedes nominale Merkmal in den Original-Daten Abspeichern eines zum ersten Mal vor- kommenden Wertes in einer Datei ,Wörterbuch', in der jedem vorkommenden Wert eine Index-Nummer zugeordnet und die jeweilige Vorkommenshäufigkeit erfasst wird;
- sobald eine benutzerdefinierte Schranke, z.B. etwa 30, 1000, oder 65534, unterschiedliche Werte in dem Wörterbuch eingetragen sind,
- Beenden des Einfügens neuer Werte, und - Eintragen aller danach vorkommenden Werte, die nicht im Wörterbuch auftreten, unter der vorletzten letzten Indexposition, welche ,anderer Wert' wiedergibt, während die letzte Indexposition ,kein Wert vorhanden' wiedergibt.
- Ersetzen der Nominalwerte in dem Wörterbuch durch die Indexnummer mit einer 8 Bit oder 16 Bit Ganzzahl.
62. Verfahren nach dem vorhergehenden Anspruch, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) folgenden Schritt auszuführen:
- Sortieren des Wörterbuchs nach absteigender Vorkommenshäufigkeit der Einträge.
63. Verfahren nach dem vorhergehenden Anspruch, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) eine auf die tatsächlichen Wertehäufigkeiten jedes nominalen Merkmals angepasste, Komprimierung vornehmen, welche 4 Bit oder ein Byte Speicherplatz pro nominalem Merkmal verwendet.
64. Verfahren nach dem vorhergehenden Anspruch, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) folgende Schritte auszuführen:
- Erfassen der 14 bzw. 253 häufigsten Werte als separate Werte;
- Zuweisen der Index-Nummer 0 bis 13, bzw. 0 bis 253 an diese Werte im Wörterbuch, vor- zugsweise entsprechend ihrer Häufigkeit;
- Zuweisen der Index-Nummer 14 bzw. 254 an allen anderen Werte im Wörterbuch, ein- schießlich dem bisherigen Index ,anderer Wert';
- Zuweisen der Index-Nummer 15 bzw. 255 an den bisherigen Index ,Wert nicht vorhanden'; und - Speichern jeder der Index-Nummern auf 4 Bit bzw. 1 Byte Speicherplatz.
65. Verfahren nach dem vorhergehenden Anspruch, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) eine vorläufige Komprimierung mit mehreren Rechnerkernen auf partitionierten Daten parallel auszuführen, globale Statistiken bzw. Wertehäufigkeiten zwischen einzelnen Threads zu kommunizieren und die endgültige Komprimierung parallelisiert auszuführen.
66. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die Anonymisierung der Daten dadurch auszuführen, die Datenkomprimierung auf dem Vor-Ort-Client-Rechner ausgeführt wird, die komprimierten Daten mit den Intervall-Indizes für nummerische Daten und Wert-Indizes für binäre und nominale Daten an den Datenanalyse-Server (10) zu übermitteln und die ,Dekomprimierungs-Informationen, für nummerische Daten Mittelwerte, Standardabweichungen, Verteilungsform, Minimum, Maximum und für binäre und nominale Daten die Werte-"Wörterbücher", welche einen Rückschluss vom Werteindex zum tatsächlichen Wert ermöglichen, auf dem Vor-Ort-Client-Rechner (12) zu speichern.
67. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Analyse-Servers (10) Analysen, Auswertungen, SOM-Mo- delle auf Basis der Intervall- und Werteindizes der komprimierten Daten erstellen und diese Ergebnisse zurück an den Vor-Ort-Client-Rechner (12) schicken.
68. Verfahren nach einem der vorhergehenden Verfahrensansprüche, wobei ein oder mehrere Computerprogrammobjekte des Vor-Ort-Client-Rechners (12) die Ergebnisse mit den De- komprimierungsinformationen verknüpfen, wodurch die Ergebnisse mit den ursprünglichen Informationen zur Verfügung stehen.
69. Computerprogrammprodukt, enthaltend ein oder mehrere Computerprogrammobjekte zur Ausführung eines oder mehrerer der vorgenannten Verfahrensschritte auf einem Vor-Ort- Client-Rechner (12).
70. Computerprogrammprodukt, enthaltend ein oder mehrere Computerprogrammobjekte zur Ausführung eines oder mehrerer der vorgenannten Verfahrensschritte auf einem Analyse-Server (10).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102008027605A DE102008027605B4 (de) | 2008-06-10 | 2008-06-10 | System und Verfahren zur rechnerbasierten Analyse großer Datenmengen |
DE102008027605.7 | 2008-06-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2009149926A2 true WO2009149926A2 (de) | 2009-12-17 |
WO2009149926A3 WO2009149926A3 (de) | 2010-04-29 |
Family
ID=41274535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2009/004196 WO2009149926A2 (de) | 2008-06-10 | 2009-06-10 | System und verfahren zur rechnerbasierten analyse grosser datenmengen |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE102008027605B4 (de) |
WO (1) | WO2009149926A2 (de) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010057642A1 (de) * | 2008-11-19 | 2010-05-27 | Ansgar Dorneich | System und verfahren zur rechnerbasierten analyse grosser datenmengen |
CN102174994A (zh) * | 2011-03-11 | 2011-09-07 | 天津大学 | 城市供水管网事故爆管在线定位系统 |
US9122702B2 (en) | 2012-10-16 | 2015-09-01 | Nokia Technologies Oy | Method and apparatus for providing location trajectory compression based on map structure |
CN105184367A (zh) * | 2014-06-09 | 2015-12-23 | 讯飞智元信息科技有限公司 | 深度神经网络的模型参数训练方法及系统 |
CN105447498A (zh) * | 2014-09-22 | 2016-03-30 | 三星电子株式会社 | 配置有神经网络的客户端设备、系统和服务器系统 |
CN106548073A (zh) * | 2016-11-01 | 2017-03-29 | 北京大学 | 基于卷积神经网络的恶意apk的筛查方法 |
CN108764454A (zh) * | 2018-04-28 | 2018-11-06 | 中国科学院计算技术研究所 | 基于小波变换压缩和/或解压缩的神经网络处理方法 |
CN110864225A (zh) * | 2018-08-28 | 2020-03-06 | 中华电信股份有限公司 | 用于输配水网的监控系统及方法 |
US11032251B2 (en) | 2018-06-29 | 2021-06-08 | International Business Machines Corporation | AI-powered cyber data concealment and targeted mission execution |
CN115150439A (zh) * | 2022-09-02 | 2022-10-04 | 北京电科智芯科技有限公司 | 感知数据的解析方法、系统及存储介质、电子设备 |
CN116432903A (zh) * | 2023-04-01 | 2023-07-14 | 国网新疆电力有限公司电力科学研究院 | 一种通信仿真数据管理系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102777770A (zh) * | 2012-08-07 | 2012-11-14 | 河北农业大学 | 一种供水管网泄漏故障诊断的流量监测点优化布置方法 |
CN104156766A (zh) * | 2014-07-28 | 2014-11-19 | 山东山大世纪科技有限公司 | 针对高压开关动作时间智能记忆与自学习系统的应用 |
DE102020201599A1 (de) | 2020-02-10 | 2021-08-12 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Einrichtung zum Bestimmen einer Performanceeigenschaft eines Produkts |
DE102020202869A1 (de) | 2020-03-06 | 2021-09-09 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorverarbeitungsverfahren zur Bereitstellung homogener Datenblöcke |
US12118816B2 (en) | 2021-11-03 | 2024-10-15 | Abbyy Development Inc. | Continuous learning for document processing and analysis |
US12118813B2 (en) | 2021-11-03 | 2024-10-15 | Abbyy Development Inc. | Continuous learning for document processing and analysis |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080554A1 (en) * | 2004-10-09 | 2006-04-13 | Microsoft Corporation | Strategies for sanitizing data items |
US20070233711A1 (en) * | 2006-04-04 | 2007-10-04 | International Business Machines Corporation | Method and apparatus for privacy preserving data mining by restricting attribute choice |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19637651A1 (de) | 1996-09-16 | 1998-03-19 | Abb Patent Gmbh | Verfahren zur Prozeßvisualisierung |
DE19649633A1 (de) | 1996-12-02 | 1998-06-04 | Abb Patent Gmbh | Verfahren zur Analyse und Darstellung von transienten Prozeßvorgängen |
US20070118399A1 (en) * | 2005-11-22 | 2007-05-24 | Avinash Gopal B | System and method for integrated learning and understanding of healthcare informatics |
-
2008
- 2008-06-10 DE DE102008027605A patent/DE102008027605B4/de active Active
-
2009
- 2009-06-10 WO PCT/EP2009/004196 patent/WO2009149926A2/de active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080554A1 (en) * | 2004-10-09 | 2006-04-13 | Microsoft Corporation | Strategies for sanitizing data items |
US20070233711A1 (en) * | 2006-04-04 | 2007-10-04 | International Business Machines Corporation | Method and apparatus for privacy preserving data mining by restricting attribute choice |
Non-Patent Citations (6)
Title |
---|
Bin Hu, Gabriele Koller: "Effiziente Algorithmen VU 2.0 Textkompression (Vorlesungsfolien)" Technische Universität Wien, Arbeitsbereich für Algorithmen und Datenstrukturen 20. November 2007 (2007-11-20), Seiten 1-7, XP002569402 Gefunden im Internet: URL:http://www.ads.tuwien.ac.at/teaching/ws07/EffAlg/Textkompression-2x3.pdf> [gefunden am 2010-02-18] * |
HEIKO PETERSEN: "Industrielle Anwendung selbstorganisierender Merkmalskarten" 10. März 2004 (2004-03-10), XP007910885 Gefunden im Internet: URL:http://webber.physik.uni-freiburg.de/~hon/Fachausschuss/VDE-GMA_100304.pdf> [gefunden am 2009-12-11] * |
KOHONEN T: "THE SELF-ORGANIZING MAP" PROCEEDINGS OF THE IEEE, IEEE. NEW YORK, US, Bd. 78, Nr. 9, 1. September 1990 (1990-09-01), Seiten 1464-1480, XP000165407 ISSN: 0018-9219 * |
SAS Institute Inc.: "Getting Started with SAS Enterprise Miner 5.2" 28. April 2006 (2006-04-28), XP007911817 SAS Publishing ISBN: 978-1-59994-002-1 Gefunden im Internet: URL:http://support.sas.com/documentation/onlinedoc/miner/getstarted.pdf> [gefunden am 2010-02-18] * |
SHUGUO HAN AND WEE KEONG: "Privacy-Preserving Self-Organizing Map" LECTURE NOTES IN COMPUTER SCIENCE 24. August 2007 (2007-08-24), Seiten 428-437, XP002569403 Springer Berlin / Heidelberg ISSN: 1611-3349 DOI: 10.1007/978-3-540-74553-2_40 ISBN: 978-3-540-74552-5 Gefunden im Internet: URL:http://www.ads.tuwien.ac.at/teaching/ws07/EffAlg/Textkompression-2x3.pdf> [gefunden am 2010-02-18] * |
STEVEN P REISS: "Practical data-swapping: the first steps" ACM TRANSACTIONS ON DATABASE SYSTEMS, ACM, NEW YORK, NY, US, Bd. 9, Nr. 1, 1. März 1984 (1984-03-01), Seiten 20-37, XP002313203 ISSN: 0362-5915 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010057642A1 (de) * | 2008-11-19 | 2010-05-27 | Ansgar Dorneich | System und verfahren zur rechnerbasierten analyse grosser datenmengen |
CN102174994A (zh) * | 2011-03-11 | 2011-09-07 | 天津大学 | 城市供水管网事故爆管在线定位系统 |
US9122702B2 (en) | 2012-10-16 | 2015-09-01 | Nokia Technologies Oy | Method and apparatus for providing location trajectory compression based on map structure |
CN105184367A (zh) * | 2014-06-09 | 2015-12-23 | 讯飞智元信息科技有限公司 | 深度神经网络的模型参数训练方法及系统 |
CN105184367B (zh) * | 2014-06-09 | 2018-08-14 | 讯飞智元信息科技有限公司 | 深度神经网络的模型参数训练方法及系统 |
US11593586B2 (en) | 2014-09-22 | 2023-02-28 | Samsung Electronics Co., Ltd. | Object recognition with reduced neural network weight precision |
CN105447498A (zh) * | 2014-09-22 | 2016-03-30 | 三星电子株式会社 | 配置有神经网络的客户端设备、系统和服务器系统 |
US11875268B2 (en) | 2014-09-22 | 2024-01-16 | Samsung Electronics Co., Ltd. | Object recognition with reduced neural network weight precision |
CN106548073A (zh) * | 2016-11-01 | 2017-03-29 | 北京大学 | 基于卷积神经网络的恶意apk的筛查方法 |
CN108764454A (zh) * | 2018-04-28 | 2018-11-06 | 中国科学院计算技术研究所 | 基于小波变换压缩和/或解压缩的神经网络处理方法 |
CN108764454B (zh) * | 2018-04-28 | 2022-02-25 | 中国科学院计算技术研究所 | 基于小波变换压缩和/或解压缩的神经网络处理方法 |
US11032251B2 (en) | 2018-06-29 | 2021-06-08 | International Business Machines Corporation | AI-powered cyber data concealment and targeted mission execution |
CN110864225A (zh) * | 2018-08-28 | 2020-03-06 | 中华电信股份有限公司 | 用于输配水网的监控系统及方法 |
CN115150439B (zh) * | 2022-09-02 | 2023-01-24 | 北京电科智芯科技有限公司 | 感知数据的解析方法、系统及存储介质、电子设备 |
CN115150439A (zh) * | 2022-09-02 | 2022-10-04 | 北京电科智芯科技有限公司 | 感知数据的解析方法、系统及存储介质、电子设备 |
CN116432903A (zh) * | 2023-04-01 | 2023-07-14 | 国网新疆电力有限公司电力科学研究院 | 一种通信仿真数据管理系统 |
Also Published As
Publication number | Publication date |
---|---|
DE102008027605B4 (de) | 2010-04-08 |
DE102008027605A1 (de) | 2010-01-14 |
WO2009149926A3 (de) | 2010-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102008027605B4 (de) | System und Verfahren zur rechnerbasierten Analyse großer Datenmengen | |
DE69705832T2 (de) | Verfahren zum definieren und anwenden von regeln für nachrichtenverteilung für transaktionsverarbeitung in einer verteilten anwendung | |
DE60121231T2 (de) | Datenverarbeitungsverfahren | |
DE69229521T2 (de) | Datenbankauffindungssystem | |
DE112020002600T5 (de) | Entdecken einer semantischen bedeutung von datenfeldern anhand von profildaten der datenfelder | |
DE112018005459T5 (de) | Datenanonymisierung | |
DE102005051617B4 (de) | Automatisches, computerbasiertes Ähnlichkeitsberechnungssystem zur Quantifizierung der Ähnlichkeit von Textausdrücken | |
DE102014204827A1 (de) | Auflösen ähnlicher Entitäten aus einer Transaktionsdatenbank | |
EP3520014B1 (de) | Verfahren und system zum anonymisieren von datenbeständen | |
DE10134229A1 (de) | Verfahren und System zum Ermitteln von Abweichungen in Datentabellen | |
DE112010000947T5 (de) | Verfahren zur völlig modifizierbaren Framework-Datenverteilung im Data-Warehouse unter Berücksichtigung der vorläufigen etymologischen Separation der genannten Daten | |
DE60032258T2 (de) | Bestimmen ob eine variable numerisch oder nicht numerisch ist | |
DE102019107591A1 (de) | Anzeigesystem, programm und speichermedium | |
EP3889806B1 (de) | Bitsequenzbasiertes datenklassifikationssystem | |
DE102019108857A1 (de) | Automatisiertes maschinelles Lernen auf Basis gespeicherten Daten | |
CH712988B1 (de) | Verfahren zum Durchsuchen von Daten zur Verhinderung von Datenverlust. | |
DE112021001743T5 (de) | Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten | |
DE102023200361A1 (de) | Multivariate Ausreißer-Erkennung zum Datenschutz | |
EP2601594A1 (de) | Verfahren und vorrichtung zur automatischen verarbeitung von daten in einem zellen-format | |
Fisun et al. | Generation of frequent item sets in multidimensional data by means of templates for mining inter-dimensional association rules | |
DE102008058016A1 (de) | System und Verfahren zur rechnerbasierten Analyse großer Datenmengen | |
EP1336922B1 (de) | Verfahren und Vorrichtung zum automatischen Erstellen eines Datawarehouse | |
Koenen | Digital perspectives in communication and media history: Cognitive potentials and research scenarios for historical press research | |
EP1629401A2 (de) | Verfahren und anordnung sowie computerprogramm mit programmcode-mitteln und computerprogramm-produkt zur analyse von gem ss e iner datenbankstruktur strukturierten nutzdaten | |
EP4390808A1 (de) | Verfahren und system zur handhabung von produktspezifischen informationen für ein produktsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09761489 Country of ref document: EP Kind code of ref document: A2 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 05/04/2011) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09761489 Country of ref document: EP Kind code of ref document: A2 |