INTELLIGENT SCORING OF MISSING DATA RECORDS

One or more computer processors group a plurality of predictors contained in training data into a plurality of predictor groups. The one or more computer processors create a plurality of sample sets, wherein each sample set in the plurality of sample sets contains one or more predictors selected from a respective predictor group in the plurality of predictor groups. The one or more computer processors create a cluster model for each created sample set in the plurality of created sample sets. The one or more computer processors generate a score for a record with one or more missing values utilizing at least one created cluster model of the created cluster models and at least one created sample set of the created sample sets.

BACKGROUND

The present invention relates generally to the field of machine learning, and more particularly to scoring records with missing values.

In statistics, classification (e.g., scoring) is the problem of identifying to which of a set of categories belongs (predictors) a new observation or predicting the value of the new observation based on a training set of data containing values (e.g., observations, instances, etc.).

SUMMARY

Embodiments of the present invention disclose a computer-implemented method, a computer program product, and a system. The computer-implemented method includes one or more computer processers grouping a plurality of predictors contained in training data into a plurality of predictor groups. The one or more computer processors create a plurality of sample sets, wherein each sample set in the plurality of sample sets contains one or more predictors selected from a respective predictor group in the plurality of predictor groups. The one or more computer processors create a cluster model for each created sample set in the plurality of created sample sets. The one or more computer processors generate a score for a record with one or more missing values utilizing at least one created cluster model of the created cluster models and at least one created sample set of the created sample sets.

DETAILED DESCRIPTION

Big data is being applied to more and more scenarios, where data analysis, model building, and score prediction are common and frequently utilized processes. In many common occasions training data is not clear of errors and may contain a plurality of missing values. Traditionally, systems discard records (e.g., training samples) with missing values but in situations where training data is limited, systems cannot afford to lose additional records. Furthermore, some systems may attempt to rectify missing values during model building rather than during the scoring phase. Current score processes have the following drawbacks: systems eliminate scored records that have one or more missing values; systems utilize basic statistical values (e.g. mean, mode, etc.) in order to approximate and replace one or more missing values; and systems lose information in discarded data.

Embodiments of the present invention propose an intelligent method to score the record with missing value. Embodiments of the present invention retain scored records with one or more missing values. Embodiments of the present invention utilize retained scored records with one or more missing values to make a subsequent prediction. Embodiments of the present invention, randomly, select a subset of predictor fields contained in training data without any missing values (e.g., complete records) and build a model (e.g., cluster) to represent the score result. Embodiments of the present invention identify one or more sample sets to approximate missing values associated with one or more records. Embodiments of the present invention define one method to ensure that all the varieties of records with missing values are be effectively retained and utilized in a subsequent prediction. Embodiments of the present invention identify a plurality of top sample sets (e.g., correlation based sample subsets) and models that relate to one or more records with missing values. Embodiments of the present invention recognize that retaining records with missing values increases subsequent model accuracy while reducing computationally intensive data preprocessing such as the reduction of costly data validation and subsequent remediation attempts. Embodiments of the present invention recognize that retaining and utilizing (e.g., scoring) records with missing values allows models with limited training data to have high relative accuracy by increasing training set size though the inclusion of records that would otherwise have been removed. Implementation of embodiments of the invention may take a variety of forms, and exemplary implementation details are discussed subsequently with reference to the Figures.

FIG. 1is a functional block diagram illustrating a computational environment, generally designated100, in accordance with one embodiment of the present invention. The term “computational” as used in this specification describes a computer system that includes multiple, physically, distinct devices that operate together as a single computer system.FIG. 1provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims.

Computational environment100includes server computer120connected over network102. Network102can be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN), such as the Internet, or a combination of the three, and can include wired, wireless, or fiber optic connections. Network102can include one or more wired and/or wireless networks that are capable of receiving and transmitting data, voice, and/or video signals, including multimedia signals that include voice, data, and video information. In general, network102can be any combination of connections and protocols that will support communications between server computer120, and other computing devices (not shown) within computational environment100. In various embodiments, network102operates locally via wired, wireless, or optical connections and can be any combination of connections and protocols (e.g., personal area network (PAN), near field communication (NFC), laser, infrared, ultrasonic, etc.).

Server computer120can be a standalone computing device, a management server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, sending, and processing data. In other embodiments, server computer120can represent a server computing system utilizing multiple computers as a server system, such as in a cloud computing environment. In another embodiment, server computer120can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with other computing devices (not shown) within computational environment100via network102. In another embodiment, server computer120represents a computing system utilizing clustered computers and components (e.g., database server computers, application server computers, etc.) that act as a single pool of seamless resources when accessed within computational environment100. In the depicted embodiment, server computer120includes corpus122and program150. In other embodiments, server computer120may contain other applications, databases, programs, etc. which have not been depicted in computational environment100. Server computer120may include internal and external hardware components, as depicted and described in further detail with respect toFIG. 9.

Corpus122is a repository for data used by program150. In the depicted embodiment, corpus122resides on server computer120. In another embodiment, corpus122may reside elsewhere within computational environment100provided program150has access to corpus122. A database is an organized collection of data. Corpus122can be implemented with any type of storage device capable of storing data and configuration files that can be accessed and utilized by program150, such as a database server, a hard disk drive, or a flash memory. In an embodiment, corpus122stores data used by program150, such as historical sample sets and associated cluster models. In an embodiment, corpus122contains training data (i.e., training sets) that contains a plurality of records (i.e., training samples) that either have a complete (e.g., no missing values) set of associated values at each predicator (e.g., position) or have a set of associated values containing missing values (e.g., null values).

Program150is a program for scoring one or more records with one or more missing values utilizing a plurality of related sample sets and associated cluster models. In various embodiments, program150may implement the following steps: group a plurality of predictors contained in training data into a plurality of predictor groups; create a plurality of sample sets, wherein each sample set in the plurality of sample sets contains one or more predictors selected from a respective predictor group in the plurality of predictor groups; create a cluster model for each created sample set in the plurality of created sample sets; and generate a score for a record with one or more missing values utilizing at least one created cluster model of the created cluster models and at least one created sample set of the created sample sets. In the depicted embodiment, program150is a standalone software program. In another embodiment, the functionality of program150, or any combination programs thereof, may be integrated into a single software program. In some embodiments, program150may be located on separate computing devices (not depicted) but can still communicate over network102. In various embodiments, client versions of program150resides on any other computing device (not depicted) within computational environment100. Program150is depicted and described in further detail with respect toFIG. 2.

The present invention may contain various accessible data sources, such as corpus122, that may include personal storage devices, data, content, or information the user wishes not to be processed. Processing refers to any, automated or unautomated, operation or set of operations such as collection, recording, organization, structuring, storage, adaptation, alteration, retrieval, consultation, use, disclosure by transmission, dissemination, or otherwise making available, combination, restriction, erasure, or destruction performed on personal data. Program150provides informed consent, with notice of the collection of personal data, allowing the user to opt in or opt out of processing personal data. Consent can take several forms. Opt-in consent can impose on the user to take an affirmative action before the personal data is processed. Alternatively, opt-out consent can impose on the user to take an affirmative action to prevent the processing of personal data before the data is processed. Program150enables the authorized and secure processing of user information, such as tracking information, as well as personal data, such as personally identifying information or sensitive personal information. Program150provides information regarding the personal data and the nature (e.g., type, scope, purpose, duration, etc.) of the processing. Program150provides the user with copies of stored personal data. Program150allows the correction or completion of incorrect or incomplete personal data. Program150allows the immediate deletion of personal data.

FIG. 2is a flowchart depicting operational steps of program150for scoring one or more records with one or more missing values utilizing a plurality of related sample sets and associated cluster models, in accordance with an embodiment of the present invention.

In an embodiment, program150initiates responsive to a user inputted record with missing information or a system detected incomplete record. In various embodiments, program150monitors one or more corpora (e.g., corpus122) for records with missing data or incomplete information. In an embodiment, program150initiates responsive to a scoring request.

Program150groups all predictors in training data (step202). In an embodiment, program150iterates through all predictors contained in the training data and assigns each predicator to a predictor group. In this embodiment, program150creates each predictor group by extracting one or more correlations between predictors utilizing statistical analysis such as Pearson, Spearman and/or chi squared. In an embodiment, program150determines the number of predictor groups by utilizing the square root of the number of distinct predictors in the training data. For example, in the situation where program150identifies that there are 16 predictors in the training data, program150creates four predictor groups. In this embodiment, program150requires that a record with missing data has at least complete values on the determined number of predictor groups. In another embodiment, program150receives a user specified number of predictor groups. In an embodiment, program150creates a plurality of predictor groups and, initially, randomly assigns a predictor to each predictor group until each predictor group has at least one assigned predictor. In a further embodiment, responsive to program150, initially, determining the number of groups, program150groups each remaining predictor into a respective group by utilizing the correlation (i.e., Cor( )) between each remaining predictor and each predictor already assigned in each group. For example, if group1 contains predictor P3 and group2 contains predictor P6, then program150utilizes one or more correlation techniques, as detailed above, to assign (e.g., Cor(P7, P3), Cor(P7, P6)) predictor P7 to group1 or group2 based on respective correlations. In an embodiment, program150requires that the number of predictors with records associated with missing data is less than the square root of the total number of predictors.FIG. 3demonstrates the grouping process detailed above.

Program150creates a sample set utilizing the grouped predictors (step204). In an embodiment, program150, randomly, selects (e.g., samples) a predictor, one or more associated records, and values, without repeat, from the plurality of predictor groups until the number of selected (i.e., assigned to a sample set) predictors meets or exceeds a sample set threshold. In an embodiment, program150sets the sample set threshold subject to user input. In another embodiment, program150sets the sample threshold as double the number of predictors (e.g., 16 predictors*2=32 samples). Program150selects one or more samples to relate to a record containing missing data, values, or information. In various embodiments, program150selects a predictor in each predictor group to utilize as a combined sample to represent the record with missing data. As further depicted in the sorted table inFIG. 9, program150selects and creates a set of samples containing (P3, P5, P11, P13). In an embodiment, program150adds associated records to said sample set only if said records in the training data fulfill the requirement that associated values in locations (i.e., predictors) (3, 5, 11, 13) are not missing. For example, a record in the training data contains the following value set: [4.12, 3.532, 1.21, 2.42, 4.53, 2.1, 3.2, 5.6, 213, 41, 8.91, 34, null, null, null, 2.234] and therefore is not added to the sample set due to a missing value in position (e.g., predictor) 13. In an embodiment, program150creates a formed vector representing the record with missing data.

Program150builds one or more cluster models utilizing the created sample set (step206). In an embodiment, program150extracts each record in the created sample sets and generates a single vector representing said record. In an embodiment, program150creates a cluster model utilizing the records contained in the created sample set. For example, program150clusters each record in the sample set in a two-step cluster. In an embodiment, program150calculates a cluster center vector and utilizes said vector as an approximated score result. In this embodiment, program150utilizes the approximated score result to approximate one or more missing values in one or more records, in subsequent scoring. In various embodiments, program150creates a plurality of sample sets and, here, program150builds a cluster model for each sample set in the plurality of sample sets.

Program150generates score for record with missing values utilizing trained cluster models and created sample sets (step208). In various embodiments, program150reduces the record with missing data into three categories: suitable, inexact suitable, and not suitable based on the one or more relationships between a record with missing data and each sample set and associated clusters. As used herein, a suitable record is defined as a record that has one or more sample sets that directly map each predictor that is not missing values with the record with one or more missing values. In an embodiment, program150determines the record (i.e., record with missing values) is suitable if one or more created sample sets match directly to the record. For example, a sample set contains values at the following predicators (P3, P5, P11, P4) and there exists a record containing values in positions (3, 4, 5, 11) but with missing data in every other position. In this example, the record contains the following values [null, null, 1.21, 2.42, 4.53, null, null, null, null, null, 8.91, null, null, null, null, null]. Here, program150utilizes one or more center vectors calculated from the created clusters in step206to subsequently approximate the missing values associated with the record. For example, if a calculated center vector of a cluster contains the following values [3.12, 2.31, 4.56, 23.56, 345, 6.70, 8.66, 34, 29.08, 88, 97, 12, 13, 16.7, 43.88, 12.05], then program150adds said sample set to a set of top sample sets (i.e., sample sets that contained missing values along with matching predictors). In an embodiment, every determined suitable sample set and associated cluster model is added to a set of top sample sets.

As used herein, inexact suitable record is defined as a record having a plurality of sample sets that each contribute to a predictor mapping but not a single sample set in the plurality of sample sets completely maps to the record with one or more missing values. In an embodiment, program150determines that the record is an inexact suitable record. Here, program150determines that the record contains missing values that are not completely encompassed by a sample set but rather is encompassed by multiple sample sets. For example, a record has values missing on positions (3, 4, 5, 11), however, no single sample set contains values for all missing values. In this example, there exists a plurality of sample sets, e.g., (P3, P5, P11, P16) and (P9, P5, P11, P4), that when combined contains values for all the missing values in the record. For example, the record contains: [null, null, 1.21, 2.42, 4.53, null, null, null, null, null, 8.91, null, null, null, null, null]. Continuing from the previous example, sample set (P3, P5, P11, P16) contains values of 1.21, 4.53, and 8.91 for positions 3, 5, 11 and sample set (P9, P5, P11, P4) contains values of 2.42, 4.53, and 8.91 for positions 4, 5, 11. In an embodiment, responsive to an inexact suitable determination, program150calculates a distance (i.e., correlation value) between the record with a plurality of samples to determine a set of top samples. Here, program150iterates through each sample set, if program150identifies more than one related predictor (e.g., P11 and P12), program150then calculates a weighted correlation value. For example, (Cor(P11, P11)+Cor(P12, P11))/2 and (Cor(P11, P14)+Cor(P12, P14))/2. In an embodiment, program150calculates said distance by normalizing all correlation values and identifying the largest correlation value. For example, Cor(P6, P3)=0.88 and Cor(P6, P9)=0.79, thus the most related (e.g., distance) predictors in group1 is Cor(P6, P3) and group1 is added to a set of top samples. In this embodiment, larger calculated distances signify more related predicators. As used herein, unsuitable record is defined as a record that has no matching or mapped predictors between the record and each sample set in the plurality of sample sets. In another embodiment, program150determines that record is an unsuitable record signifying that the record contains one or more missing values that do not exist in any of the sample sets. For example, a record contains [null, null, 1.21, 2.42, 4.53, null, null, null, null, null, 8.91, null, null, null, null, null] but unfortunately none of these values are available in the samples selected in step204. In an embodiment, program150, responsively, removes the record from the training data.

Responsive to program150determining a record category (e.g., suitable, inexact suitable, and insatiable) and identifying one or more top sample sets, program150calculates a form vector representing each top sample set. In an embodiment, for suitable records, the formed vector is added directly to the top sample set. In an embodiment, program150maps samples with missing data to one or more sample sets that collectively encompass the missing data. In an embodiment, responsive to a created top sample set, program150utilizes ensemble scoring to generate a score defined by the distance between the formed vector to each cluster center associated with each trained cluster associated with each sample set in the top sample set. In an embodiment, program150utilizes the correlation distance between the formed vector and each associated cluster center in the top sample set as a continuous value and assigns said value as a score to the record with missing data. In another embodiment, program150utilizes the distances between the formed vector and each associated cluster center as a weight in a categorical scoring (e.g., voting) process.

FIG. 4depicts exemplary table400, in accordance with an embodiment of the present invention. Exemplary table400contains 4 predictor groups with a predictor selected from each group (i.e., sample set): (P3, P5, P11, P13).

FIG. 5depicts exemplary table500, in accordance with an embodiment of the present invention. Exemplary table500contains 4 predictor groups with an example suitable determination where the selected sample set containing predictors (P3, P4, P5, P11) maps directly to a record with a missing data where said record has data on predictors (P3, P4, P5, P11). In this Figure, program150adds the sample set containing predictors (P3, P4, P5, P11) directly to a set of top samples sets and associated clusters.

FIG. 6depicts exemplary table600, in accordance with an embodiment of the present invention. Exemplary table600contains 4 predictor groups with an example inexact suitable determination where the selected sample sets (P3, P5, P11, P16) and (P9, P5, P11, P4) incongruently (e.g., collectively) map to a record with a missing data where said record has data on predictors (P3, P4, P5, P11).

FIG. 7depicts exemplary table700, in accordance with an embodiment of the present invention. Exemplary table700contains 4 predictor groups with an example not suitable determination where the selected sample sets (P3, P5, P11, P16) and (P9, P5, P11, P4) does not map to a record with a missing data where said record has data on predictors (P6, P8, P11, P12).

FIG. 8depicts exemplary diagram800, in accordance with an embodiment of the present invention. Exemplary diagram800demonstrates a model containing three clusters each associated with a sample set in a determined set of top sample sets selected from the plurality of grouped sample sets, as depicted inFIGS. 5-7. Exemplary diagram800demonstrates program150utilizing a plurality of calculated distances from a formed vector representing a record with missing data to a plurality of center vectors associated with a plurality of clusters associated with top sample sets.

Server computer120each include communications fabric904, which provides communications between cache903, memory902, persistent storage905, communications unit907, and input/output (I/O) interface(s)906. Communications fabric904can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications, and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric904can be implemented with one or more buses or a crossbar switch.

Memory902and persistent storage905are computer readable storage media. In this embodiment, memory902includes random access memory (RAM). In general, memory902can include any suitable volatile or non-volatile computer readable storage media. Cache903is a fast memory that enhances the performance of computer processor(s)901by holding recently accessed data, and data near accessed data, from memory902.

Program150may be stored in persistent storage905and in memory902for execution by one or more of the respective computer processor(s)901via cache903. In an embodiment, persistent storage905includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage905can include a solid-state hard drive, a semiconductor storage device, a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, or any other computer readable storage media that is capable of storing program instructions or digital information.

The media used by persistent storage905may also be removable. For example, a removable hard drive may be used for persistent storage905. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer readable storage medium that is also part of persistent storage905. Software and data412can be stored in persistent storage905for access and/or execution by one or more of the respective processors901via cache903.

Communications unit907, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit907includes one or more network interface cards. Communications unit907may provide communications through the use of either or both physical and wireless communications links. Program150may be downloaded to persistent storage905through communications unit907.

I/O interface(s)906allows for input and output of data with other devices that may be connected to server computer120. For example, I/O interface(s)906may provide a connection to external device(s)908, such as a keyboard, a keypad, a touch screen, and/or some other suitable input device. External devices908can also include portable computer readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g., program150, can be stored on such portable computer readable storage media and can be loaded onto persistent storage905via I/O interface(s)906. I/O interface(s)906also connect to a display909.