Training data generation program, training data generation method, and information processing device.

By generating synthetic data using neighboring training data sets with specific probabilities, the method addresses overfitting and improves predictive accuracy and fairness in machine learning models.

JP7877975B2Active Publication Date: 2026-06-23FUJITSU LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FUJITSU LTD
Filing Date
2022-09-12
Publication Date
2026-06-23

AI Technical Summary

Technical Problem

Conventional oversampling techniques for training data generation in machine learning models can impair data diversity and degrade generalization performance, leading to overfitting and poor predictive performance due to biased data distribution.

Method used

A method that identifies neighboring training data sets based on specific criteria and calculates probabilities for selecting data points from different clusters to generate synthetic data, balancing cluster sizes while maintaining data diversity and reducing overfitting.

Benefits of technology

Reduces the likelihood of overfitting and improves the trade-off between predictive accuracy and fairness by enhancing data diversity and generalization performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007877975000013
    Figure 0007877975000013
  • Figure 0007877975000014
    Figure 0007877975000014
  • Figure 0007877975000015
    Figure 0007877975000015
Patent Text Reader

Abstract

To provide a training data generation program, a training data generation method, and an information processing apparatus for improving a trade-off between prediction accuracy and fairness.SOLUTION: A program causes a computer to execute: processing for identifying a plurality of pieces of first training data in which a label is a first value and a first attribute is a second value, a plurality of pieces of second training data in which the label is the first value and the first attribute is a third value, and a plurality of pieces of third training data in which the label is a fourth value and the first attribute is the second value; processing for selecting the first training data from one of the plurality of pieces of second training data and the plurality of pieces of third training data based on a certain probability; and processing for generating the third training data in which the label is the first value and the first attribute is the second value based on the second training data of the plurality of pieces of first training data and the first training data.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a training data generation program, a training data generation method, and an information processing device. [Background technology]

[0002] Machine learning (ML) models are commonly used in many decision-making processes, such as determining the pass / fail status of university entrance exams and creditworthiness decisions by banks. The typical purpose of a machine learning model is to learn the relationship between features in training data and their corresponding classes, and then use the trained model to predict the class of test data (whose class is undetermined) based on its features. Training data is also called observed data, as it is data that has actually been observed. Test data is also called unobserved data. Classes, for example, could be the pass / fail status of a university entrance exam or the approval / denial of a credit decision. In this case, learning can be thought of as the process of approximating the features in each training data and classifying them into categories. Each classified class is sometimes called a label for each data point.

[0003] Incidentally, the available training data often exhibits bias towards certain classes or groups. A group refers to a collection of data points based on attributes such as gender or race. It is known that when a machine learning model is trained using biased training data, the model may not adequately fit classes or groups with small amounts of data. As a result, predictions made by a machine learning model trained using biased training data may be skewed towards certain classes or groups, leading not only to decreased prediction accuracy but also to the risk of unfairness between groups.

[0004] Among such problems, the bias of training data towards specific classes has been widely studied, and it is known as a problem in which a machine learning model cannot learn the minority class, which has less training data, well for the majority class, resulting in a deterioration in accuracy. On the other hand, sufficient research has not been done on the bias of training data towards specific groups. Even if there is no imbalance between classes, if there is an imbalance between groups, it is difficult for a machine learning model to appropriately learn the minority group. That is, it can learn accurately for the majority group, but it is difficult to learn accurately for the minority group. Therefore, the accuracy of the machine learning model becomes biased between groups, and fairness deteriorates.

[0005] In recent years, not only the accuracy but also the fairness of machine learning in its social implementation has been increasingly emphasized. Therefore, not only the imbalance between classes of training data, which is a factor deteriorating the accuracy of a machine learning model, but also the imbalance between groups, which is a factor of fairness, is a major concern. For this reason, technologies that correct the imbalance between groups and improve the trade-off between prediction accuracy and fairness are required.

[0006] Regarding problems such as the deterioration of prediction accuracy due to the bias of such training data and the occurrence of unfairness between groups, there are technologies to address them by equalizing the number of data. Among them, oversampling technologies aimed at data augmentation are widely used. For example, regarding the bias of training data towards specific classes, research on data oversampling technologies that attempt to improve accuracy by generating synthetic data for the minority class is active. In particular, in recent years, fair oversampling technologies that attempt to improve both accuracy and fairness have been emphasized.

[0007] One oversampling technique proposed is the Fair Synthetic Minority Oversampling Technique (FSMOTE). Here, a set of training data corresponding to each combination of class and group is called a cluster. FSMOTE is a method that makes the size of the clusters, i.e., the number of training data points in each cluster, equal for all classes and all groups. In FSMOTE, synthetic data is generated using SMOTE for each cluster to equalize the cluster sizes. Specifically, new training data is added by interpolating pairs of training data within each cluster until the cluster sizes are balanced. [Prior art documents] [Non-patent literature]

[0008] [Non-Patent Document 1] Joymalya Chakraborty, Suvodeep Majumder, Tim Menzies “Bias in Machine Learning Software: Why? How? What to do?” The 29th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC / FSE), Athens, Greece, August 23-28, 2021 [Overview of the project] [Problems that the invention aims to solve]

[0009] However, conventional oversampling techniques generate synthetic data using the training data contained in each cluster, ensuring that the number of data points divided into each class and group is equal. Because data is generated from a single cluster in this way, conventional oversampling techniques can impair data diversity and degrade the generalization performance of machine learning models.

[0010] For example, even when using FSMOTE, oversampling is performed by interpolation within the same cluster, which may generate training data that causes overfitting in a particular class. Overfitting is a state where the model fits the training data but does not fit other data, including the test data. In this case, the machine learning model may suffer from poor predictive performance due to overfitting to the training data. Therefore, it is difficult to improve the trade-off between predictive accuracy and fairness with conventional oversampling techniques.

[0011] The disclosed technology was made in view of the above and aims to provide a training data generation program, a training data generation method, and an information processing device that reduce the possibility of causing overfitting. [Means for solving the problem]

[0012] In one embodiment of the training data generation program, training data generation method, and information processing device disclosed in this application, among a plurality of training data, a first plurality of training data where the label is a first value and the first attribute is a second value, a second plurality of training data where the label is a first value and the first attribute is a third value, and a third plurality of training data where the label is a fourth value and the first attribute is a second value are identified. From multiple training data sets, identify several neighboring training data sets from the first set of training data sets that satisfy a specific criterion in distance from the second set of training data sets, and determine a specific probability based on the number of training data sets among the neighboring training data sets whose label is the first value. Based on a specific probability, the computer is instructed to select a first training data from either a second set of training data or a third set of training data, and then generate a third training data based on the second training data and the first training data, where the label is a first value and the first attribute is a second value. [Effects of the Invention]

[0013] In one respect, the present invention can reduce the possibility of causing overfitting. [Brief explanation of the drawing]

[0014] [Figure 1] Figure 1 is a block diagram of an information processing device according to an embodiment. [Figure 2] Figure 2 shows an overview of the machine learning processing performed by the information processing device according to the embodiment. [Figure 3] Figure 3 illustrates the selection of interclass interpolation or intergroup interpolation by the pair selection unit. [Figure 4] Figure 4 shows an example of the interpolation processing of training data by the control unit according to Embodiment 1. [Figure 5] Figure 5 is a flowchart of the machine learning processing performed by the information processing device according to the embodiment. [Figure 6] Figure 6 is a flowchart of the paired cluster selection process according to Example 1. [Figure 7] Figure 7 is a flowchart of the data selection process in a pair of clusters. [Figure 8] Figure 8 shows the improvement in the trade-off between prediction accuracy and fairness using the machine learning model according to the embodiment. [Figure 9] Figure 9 is a flowchart of the paired cluster selection process according to Example 2. [Figure 10] Figure 10 is a hardware configuration diagram of the information processing device. [Modes for carrying out the invention]

[0015] The following describes in detail, with reference to the drawings, embodiments of the training data generation program, training data generation method, and information processing device disclosed in this application. However, the following embodiments do not limit the training data generation program, training data generation method, and information processing device disclosed in this application. [Examples]

[0016] Figure 1 is a block diagram of an information processing device according to this embodiment. The information processing device 1 according to this embodiment is connected to a terminal device 2 operated by a user who utilizes the machine learning model 11.

[0017] Figure 2 is a diagram illustrating the overview of the machine learning processing performed by the information processing device according to the embodiment. Referring to Figure 2, the overview of the machine learning processing performed by the information processing device 1 according to the embodiment will be explained.

[0018] The information processing device 1 acquires data 20 to be used for machine learning from the terminal device 2. Next, the information processing device 1 divides the data 20 into input training data 120 and test data 121. Then, the information processing device 1 clusters the input training data 120 and performs oversampling by interpolation based on the relative positions of the input training data 120 belonging to each cluster so that the size of each cluster is equal (step S01). Here, the size of a cluster is, for example, the number of data points included in the cluster.

[0019] Then, the information processing device 1 trains a machine learning model 11 with reduced overfitting using training data 122, which is obtained by adding synthetic data generated by oversampling to the input training data 120. Subsequently, the information processing device 1 evaluates the trained machine learning model 11 based on the output obtained using the test data 121 (step S02).

[0020] Next, with reference to Figure 1, the details of the functions of the information processing device 1 will be described. As shown in Figure 1, the information processing device 1 includes a control unit 10, a machine learning model 11, and an input / output control unit 12.

[0021] The machine learning model 11 is a model that receives information about objects belonging to a given group as input and outputs the class to which the input objects are classified. The class to which an object is classified is also called the label for that object. In other words, the machine learning model 11 can be said to predict the label of the input object. Furthermore, a group is one of the characteristics that an object possesses and is also called an attribute.

[0022] The input / output control unit 12 relays communication with the terminal device 2. The input / output control unit 12 receives input data 20 from the terminal device 2 to be used for training and evaluating the machine learning model 11. The input / output control unit 12 then divides the acquired data 20 into a data group of input training data 120 and a data group of test data 121. The input / output control unit 12 then has the information processing device 1 hold the data group of input training data 120. The input / output control unit 12 also outputs the data group of test data 121 to the prediction unit 108.

[0023] After the control unit 10 has completed the generation of synthesized data and training of the machine learning model 11, and the evaluation of the trained machine learning model 11, the input / output control unit 12 receives the evaluation results as input from the control unit 10. The input / output control unit 12 then transmits the evaluation results to the terminal device 2.

[0024] The control unit 10 performs data splitting, oversampling in step S1 of Figure 2, training of the machine learning model 11 using the input training data 120 and the synthesized data, and evaluation of the machine learning model 11 in step S2 of Figure 2. The details of the control unit 10 are described below. The control unit 10 includes a cluster generation unit 101, a determination unit 102, a cluster selection unit 103, a pair selection unit 104, a training execution unit 105, a second sample selection unit 106, a first sample selection unit 107, a prediction unit 108, a synthesized data generation unit 109, and a weight calculation unit 110.

[0025] The cluster generation unit 101 acquires the input training data 120 held by the information processing apparatus 1. Here, each input training data 120 has teacher data representing the class (label) to which it belongs. In the following, the input training data 120 is represented as D = {X i , Y i , S i}. n i=1 Here, X indicates the features of each input training data 120. Also, Y represents the class of each input training data 120. Further, S is the group to which each input training data 120 belongs. The group can also be considered as one of the features. Here, the class Y ∈ {-1, +1} and the group S ∈ {a, b}. For example, in the case of university admission, the class Y = -1 represents failure and the class Y = +1 represents success. Also, when the attribute is gender, the group a represents male and the group b represents female.

[0026] The cluster generation unit 101 generates a cluster C y,s as a set of data belonging to class y and group s among the input training data 120 which is data D. That is, the cluster generation unit 101 clusters the input training data 120 as C y,s = {i | Y i = y, S i = s} to generate a cluster. In the following description, the set of data D belonging to class y may be simply represented as C y = {i | Y i = y}. For example, the set of data D for which the belonging class Y is -1 is represented as C -1 , and the set of data D for which the belonging class Y is -1 and the group S is a is represented as C -1,a .

[0027] Then, the cluster generation unit 101 outputs the information of the input training data 120 belonging to each cluster to the determination unit 102 together with the information of the generated cluster.

[0028] The determination unit 102 receives from the cluster generation unit 101 information about the clusters generated by the cluster generation unit 101, along with information about the input training data 120 belonging to each cluster. Next, the determination unit 102 identifies the cluster with the largest size, that is, the cluster with the largest number of input training data 120 belonging to it.

[0029] The determination unit 102 pre-stores an imbalance threshold for determining whether or not there is a size imbalance between clusters. Then, the determination unit 102 determines cluster C y,x Size |C y,x Represented as |, the following formulas (1) and (2) are used to calculate M, the size of the largest cluster, and m, the size of the smallest cluster.

[0030]

number

number

[0031] Next, the determination unit 102 calculates the ratio of m to M by dividing m by M. Then, the determination unit 102 determines whether the calculated ratio is greater than or equal to the imbalance threshold. That is, if the imbalance threshold is represented as B, the determination unit 102 determines whether m / M ≥ B. If the calculated ratio is greater than or equal to the imbalance threshold (m / M ≥ B), the determination unit 102 determines that the balance of cluster sizes is maintained, that is, there is no class bias or group bias in the input training data 120. Then, the determination unit 102 outputs the input training data 120 as training data to the training execution unit 105.

[0032] On the other hand, if the obtained ratio is less than the imbalance threshold (m / M < B), the determination unit 102 determines that there is an imbalance in size between clusters, that is, there is a bias in classes or a bias in either or both of the groups in the input training data 120. Then, the determination unit 102 outputs the information of each cluster and the input training data 120 belonging to each cluster to the cluster selection unit 103. Also, the determination unit 102 outputs the information of the cluster with the largest size and the information of the size of that cluster to the cluster selection unit 103.

[0033] After that, the determination unit 102 receives, from the cluster selection unit 103, a notification of correcting the size imbalance between clusters together with the information of the synthesized data interpolated in each cluster. Then, the determination unit 102 adds all the synthesized data interpolated to the data group of the input training data 120 as training data 122 and outputs it to the training execution unit 105.

[0034] The cluster selection unit 103 receives the information of each cluster and the input of the input training data 120 belonging to each cluster from the determination unit 102. Also, the cluster selection unit 103 receives the information of the cluster with the largest size and the information of the size of that cluster from the determination unit 102. Also, the cluster selection unit 103 has the same imbalance threshold as that held by the determination unit 102.

[0035] Next, the cluster selection unit 103 selects one cluster from the clusters other than the cluster with the largest size. Then, the cluster selection unit 103 determines whether the ratio of the size of the selected cluster to the size of the cluster with the largest size is greater than or equal to the imbalance threshold. If the ratio of the size of the selected cluster to the size of the cluster with the largest size is greater than or equal to the imbalance threshold, the cluster selection unit 103 determines that interpolation of training data in the selected cluster is unnecessary.

[0036] In response to this, if the ratio of the size of the selected cluster to the size of the largest cluster is less than the imbalance threshold, the cluster selection unit 103 decides to interpolate the training data in the selected cluster. Then, the cluster selection unit 103 selects the next cluster and makes the same determination. The cluster selection unit 103 then decides whether or not to interpolate the training data for all clusters except the largest cluster.

[0037] Subsequently, the cluster selection unit 103 outputs information about each cluster and the input training data 120 belonging to each cluster to the pair selection unit 104. The cluster selection unit 103 also selects one cluster from the clusters that have been determined to undergo interpolation of the training data as the cluster to be interpolated. Then, the cluster selection unit 103 outputs information about the selected cluster to be interpolated to the pair selection unit 104.

[0038] Subsequently, the cluster selection unit 103 receives notification from the composite data generation unit 109 that the interpolation process for the cluster to be interpolated is complete. The cluster selection unit 103 then selects one cluster from among the unselected clusters of the clusters that have been decided to be interpolated in the training data, and outputs the information of the cluster to be interpolated to the pair selection unit 104. Once the interpolation process is complete for all clusters of the clusters that have been decided to be interpolated in the training data, the cluster selection unit 103 outputs a notification of correction of the size imbalance between clusters to the determination unit 102, along with the information of the composite data interpolated in each cluster.

[0039] The pair selection unit 104 receives information about each cluster and input training data 120 belonging to each cluster from the cluster selection unit 103. The pair selection unit 104 also receives information about the clusters to be interpolated from the cluster selection unit 103. The pair selection unit 104 then performs a selection process to select the clusters that will form pairs for generating the composite data described below.

[0040] The pair selection unit 104 determines whether to use a cluster of the same group but different in class from the cluster to be interpolated, or a cluster of the same class but different in group, as the paired clusters. Specifically, the pair selection unit 104 calculates the average neighborhood density for points belonging to the cluster to be interpolated, as defined by the following formula (3).

[0041]

number

[0042] Furthermore, the pair selection unit 104 calculates the average neighborhood density defined by the following formula (4) for points of the same group but different classes, excluding points belonging to the cluster to be interpolated.

[0043]

number

[0044] Δ in equations (3) and (4) t (Y) is cluster C y,s This represents the number of data points of the same class in the K neighborhoods of a point t belonging to the same category. And Δ t (Y) / K is the neighborhood density at point t.

[0045] In other words, neighborhood density is information that expresses the difficulty of classifying data in classification. If the neighborhood density of point t is high, it means that there are many points of different classes around point t. In the case of a cluster with many points t with high neighborhood density, it is difficult to determine which class to classify the points belonging to that cluster into. Conversely, if the neighborhood density of point t is low, it means that there are many points of the same class around point t. In the case of a cluster with many points t with low neighborhood density, it is easy to determine which class to classify the points belonging to that cluster into.

[0046] K neighbors is an example of a "specific criterion." Also, the K neighbors of data D, which corresponds to point t, are an example of "neighboring training data whose distance from the training data satisfies a specific criterion."

[0047] ρ is represented by formula (3) + This corresponds to the mean neighborhood density, which is the average of the neighborhood densities, which is the proportion of the number of data points of the same class within the K neighborhoods of each point t. That is, ρ + If it is large, C y,s In data D, for many data points D, the data points D in its vicinity are likely to belong to the same class, suggesting that the neighborhood is dominated by the same class. Here, the K neighborhoods of point t are the K points closest to point t. K can be, for example, 2 or 5 points.

[0048] Furthermore, ρ shown in formula (4) - Cluster C y,s This is the average of the proportion of data points of different classes within the K neighborhoods of a point t of the same group but different classes, excluding the point t itself. That is, ρ - If it is large, cluster C y,s For many data points D belonging to different classes within the same group, other than those mentioned above, the data points D in their vicinity are likely to belong to the same group, suggesting that the neighborhood is dominated by the same group.

[0049] Therefore, the pair selection unit 104 is ρ + and ρ - Using this, the parameter p for performing correction according to the neighborhood density is calculated by the following equation (5).

[0050]

number

[0051] The pair selection unit 104 then determines, using parameter p as a probability and following a Bernoulli distribution, whether the current interpolation trial meets the conditions (True) or does not meet the conditions (other than True). If the trial meets the conditions, the pair selection unit 104 decides to select the cluster to be used as the pair for interpolating the training data in the cluster to be interpolated from clusters of the same group but different classes. Conversely, if the trial does not meet the conditions, the pair selection unit 104 decides to select the cluster to be used as the pair for interpolating the training data in the cluster to be interpolated from clusters of the same group but different classes.

[0052] In this embodiment, interpolation is used to interpolate the training data. Therefore, hereafter, interpolation of training data using clusters of different classes but the same group will be referred to as interclass interpolation. Interpolation of training data using clusters of the same class but different groups will be referred to as intergroup interpolation. That is, the pair selection unit 104 decides whether to perform interclass interpolation or intergroup interpolation using a parameter p that represents the probability of performing interclass interpolation according to the neighborhood density. Hereafter, the parameter p may be referred to as the "interclass interpolation probability".

[0053] In this way, the pair selection unit 104 uses inter-class interpolation probabilities to consider which cluster has a lower neighborhood density among clusters of the same group but different classes. Since a cluster with a lower neighborhood density can be rephrased as a cluster that is more difficult to classify, the pair selection unit 104 increases the number of inter-class interpolations performed to effectively increase the neighborhood density of the cluster with the lower neighborhood density. Conversely, for clusters with a higher neighborhood density, the pair selection unit 104 increases the number of inter-group interpolations performed.

[0054] Figure 3 is a diagram illustrating the selection of interclass interpolation or intergroup interpolation by the pair selection unit. In Figure 3, an open circle represents a point where class Y is +1 and group S is b. A filled circle represents a point where class Y is +1 and group S is a. An open cross represents a point where class Y is -1 and group S is b. A filled cross represents a point where class Y is -1 and group S is a.

[0055] Here, we consider the case where K=3 is the K-neighborhood of point i. We will also explain using the interpolation of training data for the cluster to which the white circle belongs as an example. For example, for point 201, of the 3 points in its K-neighborhood, 2 belong to the same class and 1 belongs to a different class. Therefore, the pair selection unit 104 calculates the neighborhood density of point 201 as 2 / 3.

[0056] In this way, by calculating the neighborhood density of each point and determining its average neighborhood density, the pair selection unit 104 calculates the average neighborhood density of the cluster to which the white circles belong as 1 / 4(3 / 3+3 / 3+2 / 3+2 / 3)=10 / 12. Similarly, the pair selection unit 104 calculates the average neighborhood density of the white crosses, which are points of the same group but different classes in the cluster to which the white circles belong, as 1 / 5(3 / 3+3 / 3+3 / 3+3 / 3+1 / 3)=13 / 15. Therefore, when oversampling the white circles, the pair selection unit 104 decides to perform interclass interpolation according to a Bernoulli distribution with an interclass interpolation probability of p=10 / 12 / (10 / 12+13 / 15)=0.49.

[0057] Here, the data belonging to the cluster to be interpolated is an example of "the first set of training data where the label is the first value and the first attribute is the second value." The data of the paired cluster when interclass interpolation is performed is "the second set of training data where the label is the first value and the first attribute is the third value." The data of the paired cluster when interclass interpolation is performed is "the third set of training data where the label is the fourth value and the first attribute is the second value." The interclass interpolation probability is an example of "a specific probability."

[0058] In other words, the pair selection unit 104 identifies a plurality of neighboring training data from among the plurality of training data whose distance from the second training data satisfies a specific criterion, and determines a specific probability based on the number of training data from the plurality of neighboring training data whose label is the first value. More specifically, the pair selection unit 104 identifies a plurality of first neighboring training data from among the plurality of training data whose distance from the first plurality of training data satisfies a specific criterion, and determines a specific probability based on the number of training data from the plurality of first neighboring training data whose label is the first value, and a plurality of second neighboring training data from among the plurality of training data whose distance from the second plurality of training data satisfies a specific criterion, and determines a specific probability based on the number of training data from the plurality of second neighboring training data whose label is the first value. In this case, the plurality of second neighboring training data includes the plurality of neighboring training data mentioned above.

[0059] Subsequently, the pair selection unit 104 notifies the first sample selection unit 107 of the information of the clusters to be interpolated. The pair selection unit 104 also notifies the second sample selection unit 106 of whether to perform inter-class interpolation or inter-group interpolation on the clusters to be interpolated.

[0060] Subsequently, the pair selection unit 104 obtains from the synthetic data generation unit 109 the synthetic data used to interpolate the training data of the clusters to be interpolated, which was generated by the synthetic data generation unit 109. Then, the pair selection unit 104 adds the newly added synthetic data to the data of the clusters to be interpolated and repeats the process of selecting the clusters to form pairs.

[0061] In this embodiment, the pair selection unit 104 calculates the interclass interpolation probability using the neighborhood density of the cluster to be interpolated and the neighborhood density of points of the same group but different classes relative to the cluster to be interpolated. However, an interclass interpolation probability that is a predetermined set value may also be used.

[0062] The first sample selection unit 107 receives information about the cluster to be interpolated from the pair selection unit 104. The first sample selection unit 107 then selects cluster C, which is the cluster to be interpolated. y,s Data D = (X i ,Y i ,S i Select one of the data points D=(X i ,Y i ,S i This point is called point i. The first sample selection unit 107 then outputs the information of the selected point i to the composite data generation unit 109. The data D selected by this first sample selection unit 107 corresponds to the "second training data".

[0063] The second sample selection unit 106 receives information from the pair selection unit 104 regarding whether to perform interclass interpolation or intergroup interpolation on the cluster to be interpolated. If interclass interpolation is performed, the second sample selection unit 106 determines that the data D=(X) belonging to the cluster to be interpolated and the cluster belonging to the same group but different classes are the same. j ,Y j ,S j Select one of the following.

[0064] In this case, the second sample selection unit 106 improves the accuracy of classifying points that are considered difficult to classify, i.e., points where there are few other points belonging to the same class nearby, by calculating the probability Q for each point j using the following formula (6). Y Select point j accordingly.

[0065]

number

[0066] Here, Δ j(Y) is the number of data points of the same class in the K neighborhoods of point j. The second term on the right-hand side of equation (5) represents the ratio of the number of points of the same class in the K neighborhoods of point j to the total number of points of the same class in the K neighborhoods of all points in the cluster that selects point j, that is, the ratio of the number of points of the same class of point j to the total. In other words, Q Y The higher the value, the closer the sample is to the boundary between classes, and the second sample selection unit 106 determines the value of Q. Y By selecting point j accordingly, the probability of selecting point j located near the inter-class boundary is increased. Below, Q Y This is sometimes referred to as the "probability for interclass interpolation point selection."

[0067] Furthermore, when performing intergroup interpolation, the second sample selection unit 106 selects the data D belonging to the cluster of the cluster to be interpolated, which is a set of data D belonging to the same class but different groups as the cluster to be interpolated, and then selects the data D = (X j ,Y j ,S j Select one of the data points D=(X j ,Y j ,S j ) is called point j.

[0068] In this case, the second sample selection unit 106 improves the accuracy of classifying points that are considered difficult to classify, i.e., points where there are few other points belonging to the same class nearby, by calculating the probability Q for each point j using the following formula (7). S Select point j accordingly. Q S The higher the value, the closer the sample is to the boundary between classes, and the second sample selection unit 106 determines the value of Q. S By selecting point j accordingly, the probability of selecting point j located near the inter-class boundary is increased. Below, Q S This is sometimes called the "probability for intergroup interpolation point selection."

[0069]

number

[0070] However, if there are two or more candidate groups for a pair, the second sample selection unit 106 may perform reciprocal sampling from each group to prevent the sample from being biased towards a particular group. In that case, the second sample selection unit 106 selects point j according to the intergroup interpolation point selection probability calculated, for example, by the following formula (8).

[0071]

number

[0072] Here, γ is a hyperparameter. The second sample selection unit 106 performs uniform sampling when γ=0. If γ>0, the second sample selection unit 106 obtains point j from the minority group among the candidate pair groups. If γ<0, the second sample selection unit 106 obtains point j from the majority group.

[0073] In other words, the second sample selection unit 106 selects data to be used for interpolation according to a decision on whether or not to perform interclass interpolation based on interclass interpolation probabilities. This process is an example of a process that "selects first training data from either a second set of training data or a third set of training data based on a specific probability." That is, the data D selected by the second sample selection unit 106 corresponds to the "first training data."

[0074] The weight calculation unit 110 calculates the weights to be used for interpolation. Here, when interpolating between point i and point j, if composite data is generated randomly using a uniform distribution over the entire range between point i and point j, unnatural composite data will be generated. Therefore, in order to generate natural composite data, the weight calculation unit 110 determines the weights for generating composite data by considering the distance of neighboring points to point i.

[0075] Specifically, the weight calculation unit 110 calculates the neighborhood distance function d of point i, which is represented by the following formula (9). i The values ​​used to determine the weights are calculated using this method.

[0076]

number

[0077] The last term on the right-hand side of equation (9) represents the average distance between point i and its K neighbors. i (Y) / K is the neighborhood density. The weight calculation unit 110 then randomly determines numerical values ​​according to a uniform distribution between the calculated value and 0, and uses these as weights for interpolation.

[0078] In this way, the weight calculation unit 110 enables interpolation that takes into account the distance between point i and its neighbors by using the average distance between point i and a predetermined number of neighbors. Furthermore, the weight calculation unit 110 avoids overlap between classes by using the neighborhood density. Subsequently, the weight calculation unit 110 outputs the weights to be used in the determined interpolation to the composite data generation unit 109.

[0079] In this embodiment, the weight calculation unit 110 calculates the weights used for interpolation based on the distance of the points belonging to the cluster to be interpolated from the K neighbors. However, it is not limited to this, and weights that are predetermined set values ​​may also be used.

[0080] The composite data generation unit 109 obtains information about point i from the first sample selection unit 107. The composite data generation unit 109 also obtains information about point j from the second sample selection unit 106. Furthermore, the composite data generation unit 109 obtains information about the weights to be used in interpolation from the weight calculation unit 110.

[0081] Then, the composite data generation unit 109 selects the interpolation points between point i and point j according to the weights obtained and generates composite data. That is, the composite data generation unit 109 generates the data D'=(X i ',Y i ',S i This generates '). Here, if we let w be the weight used for interpolation, then X i '=X i S&W(X j -X i ) is also Yi '=Y i S i '=S i That is the case.

[0082] The synthetic data generation unit 109 counts the total number of synthetic data generated for the cluster to be interpolated. It then calculates the total number of data by adding the total number of generated synthetic data to the number of input training data 120 for the cluster to be interpolated. Here, the synthetic data generation unit 109 also has the same imbalance threshold as the determination unit 102.

[0083] Next, the composite data generation unit 109 determines whether the ratio of the total number of calculated data to the size of the largest cluster is greater than or equal to the imbalance threshold. If the ratio of the total number of calculated data to the size of the largest cluster is less than the imbalance threshold, the composite data generation unit 109 outputs the information of the generated composite data to the pair selection unit 104. On the other hand, if the ratio of the total number of calculated data to the size M of the largest cluster is greater than or equal to the imbalance threshold, the composite data generation unit 109 notifies the cluster selection unit 103 that the interpolation process for the cluster to be interpolated is complete.

[0084] Figure 4 shows an example of the interpolation processing of training data by the control unit according to Embodiment 1. Next, an example of the interpolation processing of training data by the control unit 10 according to Embodiment 1 will be described with reference to Figure 4. In both graphs 220 and 221 in Figure 4, the vertical axis represents classes and the horizontal axis represents groups.

[0085] Graph 220 in Figure 4 shows the input training data 120 before interpolation processing of the training data. Graph 221 shows the training data 122 after interpolation processing of the training data. In both graphs 220 and 221, the vertical axis represents classes and the horizontal axis represents groups.

[0086] In Figure 4, cluster 211, where class Y is +1 and group S is b, is the cluster to be interpolated. Cluster 213 is the cluster of the same class but different group as cluster 211.

[0087] The pair selection unit 104 calculates the inter-class interpolation probability from the neighborhood density of the input training data 120 belonging to cluster 211 and the neighborhood density of the input training data 120 belonging to cluster 212. Then, the pair selection unit 104 selects the pair of clusters to perform interpolation on according to the calculated inter-class interpolation probability. As shown in graph 220, the neighborhood density of cluster 211 is lower than that of cluster 212, so the pair selection unit 104 performs the interpolation by increasing the number of times inter-class interpolation is performed on cluster 211.

[0088] As a result, the synthetic data generation unit 109 generates more synthetic data between cluster 211 and cluster 212. By increasing the amount of synthetic data in this way, cluster 211 becomes cluster 214 of graph 221, allowing for appropriate data interpolation with a natural trend while avoiding overfitting, and improving the trade-off between accuracy and fairness.

[0089] Returning to Figure 1, the explanation continues. If there is a size imbalance between clusters, the training execution unit 105 obtains training data 122 from the determination unit 102, which is the input training data 120 plus the synthesized data. If there is a size balance between clusters, the training execution unit 105 obtains the input training data 120 as training data 122 from the determination unit 102.

[0090] The training execution unit 105 then inputs the acquired training data 122 into the machine learning model 11. The training execution unit 105 then compares the output data from the machine learning model 11 with each class of the training data 122, updates the hyperparameters based on the comparison results, and executes training of the machine learning model 11.

[0091] The prediction unit 108 receives the test data 121 as input from the input / output control unit 12. Next, the prediction unit 108 inputs the test data 121 into the trained machine learning model 11. Then, the prediction unit 108 compares the training data of the test data 121 with the output data from the machine learning model 11 to evaluate the prediction accuracy of the trained machine learning model 11. Finally, the prediction unit 108 transmits the evaluation result to the terminal device 2 via the input / output control unit 12.

[0092] Furthermore, the prediction unit 108 receives input of data to be predicted whose class is unknown from the terminal device 2. The prediction unit 108 then inputs the data to be predicted into the trained machine learning model 11 and obtains an output which is the prediction result. Subsequently, the prediction unit 108 transmits the prediction result for the data to be predicted to the terminal device 2 via the input / output control unit 12.

[0093] Figure 5 is a flowchart of the machine learning process performed by the information processing device according to the embodiment. Next, the flow of the machine learning process performed by the information processing device 1 according to the embodiment will be explained with reference to Figure 5.

[0094] The input / output control unit 12 receives data 20 as input from the terminal device 2. The input / output control unit 12 then divides the data 20 into input training data 120 and test data 121 (step S1).

[0095] The cluster generation unit 101 clusters the input training data 120 based on classes and groups, dividing it into clusters for each combination of classes and groups (step S2).

[0096] The determination unit 102 identifies the size of the largest cluster and the size of the smallest cluster among the clusters generated by the cluster generation unit 101, i.e., the maximum and minimum sizes of the clusters (step S3).

[0097] Next, the determination unit 102 calculates the ratio of the minimum size to the maximum size of the cluster and determines whether it is less than a predetermined imbalance threshold. That is, if the minimum size is m, the maximum size is M, and the imbalance threshold is B, the determination unit 102 determines whether m / M < B (step S4). If the ratio of the minimum size to the maximum size of the cluster is greater than or equal to the predetermined imbalance threshold (step S4: NO), the determination unit 102 determines that the balance of the sizes between the clusters is maintained and proceeds to step S13.

[0098] On the other hand, if the ratio of the minimum size to the maximum size of the cluster is less than the predetermined imbalance threshold (step S4: YES), the determination unit 102 determines that there is an imbalance in the sizes between the clusters and outputs the information of each cluster to the cluster selection unit 103. The cluster selection unit 103 calculates the size of each cluster, calculates the ratio to the maximum size of the cluster, and extracts the cluster whose calculated ratio is less than the imbalance threshold as a candidate cluster for interpolation target. Then, the cluster selection unit 103 selects one cluster to be interpolated from the unselected clusters among the candidate clusters for interpolation target (step S5).

[0099] The pair selection unit 104 performs a cluster selection process for generating a pair for interpolation to generate synthetic data for the cluster to be interpolated selected by the cluster selection unit 103, and selects a cluster to be paired (step S6).

[0100] The first sample selection unit 107 selects one piece of data belonging to the cluster to be interpolated (step S7). Here, the data of the cluster to be interpolated selected by the first sample selection unit 107 is called point i.

[0101] The second sample selection unit 106 performs a data selection process on the paired cluster and selects one piece of data belonging to the paired cluster (step S8). Here, the data of the paired cluster selected by the second sample selection unit 106 is called point j.

[0102] Next, the weight calculation unit 110 calculates the average distance and neighborhood density of each point in the cluster to be interpolated to its K neighbors, and then calculates the neighborhood distance function d i The values ​​used to determine the weights are calculated by substituting them into the formula. Then, the weight calculation unit 110 calculates the weights to be used for interpolation by randomly determining numerical values ​​according to a uniform distribution between the calculated values ​​and 0 (step S9).

[0103] The composite data generation unit 109 uses the weights calculated by the weight calculation unit 110 to perform interpolation between point i and point j and generate composite data (step S10).

[0104] Subsequently, the composite data generation unit 109 determines whether the ratio of the size of the cluster to be interpolated with the generated composite data added to the maximum size of the cluster is greater than or equal to the imbalance threshold. That is, the size of the cluster to be interpolated with the generated composite data added to |C y,s If |then the composite data generation unit 109 will |C y,s Determine whether | / M ≥ B (step S11). If the ratio of the size of the cluster to be interpolated to the maximum size of the cluster is less than the imbalance threshold (step S11: negative), the machine learning process returns to step S6.

[0105] In response to this, if the ratio of the size of the cluster to be interpolated to the maximum size of the cluster is greater than or equal to the imbalance threshold (step S11: affirmative), the synthetic data generation unit 109 notifies the cluster selection unit 103 that the interpolation process for the training data 122 of the cluster to be interpolated is complete. The cluster selection unit 103 then determines whether the interpolation process has been completed for all of the candidate clusters to be interpolated (step S12). If there are still clusters among the candidate clusters to be interpolated that have not yet been interpolated (step S12: negative), the machine learning process returns to step S5.

[0106] In response to this, if the interpolation process is completed for all candidate clusters to be interpolated (step S12: affirmative), the cluster selection unit 103 outputs the synthesized data generated for each candidate cluster to be interpolated to the determination unit 102. The determination unit 102 then determines that the sizes between clusters are unbalanced and receives the synthesized data as input, and adds the synthesized data to the input training data 120 to generate training data 122. If the determination unit 102 determines that the sizes between clusters are balanced, it generates training data 122 using the input training data 120 as training data 122 (step S13).

[0107] The training execution unit 105 uses the training data 122 acquired from the determination unit 102 to train the machine learning model 11 (step S14).

[0108] After training is complete, the prediction unit 108 evaluates the prediction accuracy of the trained machine learning model 11 using the test data 121. Then, the prediction unit 108 transmits the evaluation results to the terminal device 2 to notify the user (step S15).

[0109] Figure 6 is a flowchart of the paired cluster selection process according to Example 1. The process shown in the flowchart of Figure 6 is an example of the process executed in step S6 in Figure 5. Next, the flow of the paired cluster selection process according to Example 1 will be explained with reference to Figure 6.

[0110] The pair selection unit 104 calculates the neighborhood density of each point in the cluster to be interpolated and calculates the average neighborhood density of the cluster to be interpolated using formula (3) (step S101).

[0111] The pair selection unit 104 calculates the neighborhood density of each point in the same group other than the cluster to be interpolated, and uses formula (4) to calculate the average neighborhood density of the same group other than the cluster to be interpolated (step S102).

[0112] Then, the pair selection unit 104 calculates the inter-class interpolation probability from formula (5) using the average neighborhood density of the cluster to be interpolated and the average neighborhood density of the same group other than the cluster to be interpolated (step S103).

[0113] Subsequently, the pair selection unit 104 decides whether to perform interclass interpolation or intergroup interpolation according to the interclass interpolation probability, and selects the clusters to be paired according to the decision (step S104).

[0114] Figure 7 is a flowchart of the data selection process in a pair of clusters. The process shown in the flowchart of Figure 7 is an example of the process performed in step S8 in Figure 5. Next, the flow of the data selection process in a pair of clusters will be explained with reference to Figure 7.

[0115] The first sample selection unit 107 determines whether or not interclass interpolation has been decided by the pair selection unit 104 (step S201).

[0116] If interclass interpolation is performed (step S201: affirmative), the second sample selection unit 106 finds the number of data points of the same class in the K neighborhoods of each point in the paired clusters and calculates the probability for selecting an interclass interpolation point for each point using formula (6) (step S202).

[0117] Subsequently, the second sample selection unit 106 selects one data point belonging to a pair of clusters according to the interclass interpolation point selection probability for each point (step S203). The point selected by this second sample selection unit 106 is point j.

[0118] In contrast, when intergroup interpolation is performed (step S201: negation), the second sample selection unit 106 determines the number of data points of the same class in the K neighborhoods of each point in the clusters of the same group other than the cluster to be interpolated. Then, the second sample selection unit 106 calculates the probability for selecting intergroup interpolation points for each point using formulas (7) and (8) (step S204).

[0119] Subsequently, the second sample selection unit 106 selects one data point belonging to a paired cluster according to the intergroup interpolation point selection probability for each point (step S205). The point selected by this second sample selection unit 106 is point j.

[0120] As described above, the information processing device according to this embodiment uses the neighborhood density, which represents the proportion of data of different classes in the vicinity, to determine whether to perform inter-class interpolation or inter-group interpolation, and to determine the clusters to be paired when performing interpolation. Specifically, the information processing device increases the probability of performing inter-class interpolation as the neighborhood density decreases. Furthermore, the information processing device increases the probability of selecting data near the inter-class boundary when selecting points for interpolation from the paired clusters. In addition, the information processing device determines weights for interpolation by considering the distance of neighboring points to the point selected from the cluster to be interpolated. The information processing device then performs interpolation between the point selected from the cluster to be interpolated and the tent selected from the paired cluster according to the weights to generate composite data. The information processing device then repeats this generation of composite data to perform oversampling and resolve the size imbalance between clusters.

[0121] By using neighborhood density to decide whether or not to perform interclass interpolation, it is possible to prioritize interpolation to improve prediction accuracy for clusters that are difficult to classify, and to prioritize interpolation to improve fairness for clusters that are easy to classify. Furthermore, by increasing the probability of selecting data near the interclass boundary in paired clusters, it is possible to further improve prediction accuracy. In addition, by performing interpolation using weights that take into account the distance of the points of the cluster to be interpolated from neighboring points, it becomes possible to perform interpolation that takes into account the distance scale with neighbors, and it is possible to generate natural composite data according to the data distribution. Therefore, it is possible to achieve appropriate oversampling according to the data distribution, improve the trade-off between prediction accuracy and fairness, and achieve improved prediction accuracy and ensure fairness.

[0122] Furthermore, oversampling, which considers extrapolation to the training data pairs, can be considered as a way to address issues such as overfitting. However, data generation based on extrapolation is difficult for the following reasons. Firstly, extrapolation is performed under the assumption that the trends of the training data continue along the extension of the pair, but this process is generally not true, and there is a risk of generating synthetic data based on unnatural trends. Moreover, synthetic data based on unnatural trends is unlikely to be data that effectively contributes to the machine learning model. Thus, it is difficult to appropriately consider the unobserved range through extrapolation. Therefore, it is difficult to improve the trade-off between prediction accuracy and fairness using extrapolation.

[0123] Figure 8 shows the improvement in the trade-off between prediction accuracy and fairness using the machine learning model according to the embodiment. In Figure 8, the vertical axis represents prediction accuracy, and the horizontal axis represents fairness. Arrow 300 in Figure 8 represents a good trade-off between prediction accuracy and fairness. The closer to arrow 300, the more appropriately the trade-off between prediction accuracy and fairness is achieved.

[0124] When conventional oversampling is performed without determining interclass interpolation based on neighborhood density, acquiring data from the vicinity of the interclass boundary in paired clusters, or performing weight-based interpolation, prediction accuracy is high, but fairness is difficult to ensure. For example, when using a machine learning model 11 trained with conventional oversampling, the evaluation result of its prediction is located at a position far from arrow 300, as shown by point 301.

[0125] In contrast, when using the information processing device according to this embodiment, the evaluation result of the prediction is located at point 302. That is, point 302 shows that fairness can be improved compared to conventional machine learning processing using oversampling. Furthermore, point 302 is closer to arrow 300 than point 301, indicating that the trade-off has improved. [Examples]

[0126] Next, we will describe Example 2. The information processing device 1 according to this example is also represented by the block diagram in Figure 1. The information processing device 1 according to this example differs from that of Example 1 in its strategy for determining whether to perform inter-class interpolation or inter-group interpolation. In the following description, we will omit explanations of the operation of each part that is the same as in Example 1.

[0127] The pair selection unit 104 in this embodiment performs a process to select a pair of clusters for generating the composite data described below, for the cluster to be interpolated. Similar to Embodiment 1, the pair selection unit 104 determines whether to use a cluster of the same group but different in class from the cluster to be interpolated, or a cluster of different groups but the same class as the cluster to be interpolated. Specifically, the pair selection unit 104 calculates the number of interclass boundary points for points belonging to the cluster to be interpolated, as defined by the following formula (10).

[0128]

number

[0129] Δ t (Y) is cluster C y,s This represents the number of data points of the same class in the K neighborhoods of a point t belonging to the same class. And, II[0<Δ t (Y)≦K / 2] is cluster C y,s This represents a point in the K neighborhood of a point t belonging to a class that lies on the interclass boundary. That is, ρ y,s Cluster C y,s This represents the number of interclass boundary points in the K neighborhood of point t belonging to the class. The number of these interclass boundary points is an example of "identifying a plurality of first neighborhood training data from the plurality of training data whose distance from the first plurality of training data satisfies a specific criterion, and the number of training data whose label is the first value and which is included in the first neighborhood training data, that exist at the boundary with data whose label is the fourth value."

[0130] Similarly, the pair selection unit 104 calculates the number of interclass boundary points for points in the same group but different classes, excluding points included in the cluster to be interpolated. This number of interclass boundary points is an example of "identifying a plurality of second neighboring training data from the plurality of training data whose distance from the third plurality of training data satisfies the specific criteria, and the number of points existing at the boundary between the training data whose label is the fourth value and the data whose label is the first value among the training data whose label is the fourth value among the training data included in the second neighboring training data."

[0131] Furthermore, the pair selection unit 104 similarly calculates the number of interclass boundary points for different groups. That is, the pair selection unit 104 calculates the number of interclass boundary points for points belonging to clusters of the same class but different groups relative to the cluster to be interpolated. This number of interclass boundary points is an example of "identifying a plurality of third neighboring training data from the plurality of training data whose distance from the second plurality of training data satisfies the specific criteria, and the number of points existing at the boundary between the training data whose label is the first value and the data whose label is the fourth value among the training data whose label is the first value among the training data whose label is the fourth value." Hereinafter, clusters of the same class but different groups relative to the cluster to be interpolated will be referred to as comparison clusters.

[0132] Furthermore, the pair selection unit 104 calculates the number of interclass boundary points for points in the same group but different classes relative to the cluster to be compared. This number of interclass boundary points is an example of "identifying a plurality of fourth neighboring training data from among the plurality of training data whose distance from a fourth plurality of data whose fourth value and first attribute is the third value satisfies the specific criteria, and the number of training data whose label is the fourth value among the training data whose label is the first value."

[0133] Next, the pair selection unit 104 calculates the neighboring difference using formula (11).

[0134]

number

[0135] The first term of equation (11) is the ratio of the number of interclass boundary points of the cluster to be interpolated to the number of interclass boundary points of the same group but different classes in the cluster to be interpolated. The second term of equation (11) is the ratio of the number of interclass boundary points of clusters of different groups but the same class in the cluster to be compared to the cluster to be compared to the number of interclass boundary points of the same group but different classes in the cluster to be compared.

[0136] Here, the strategy for selecting a pair of clusters implemented by the pair selection unit 104 in this embodiment is basically the same as the strategy for selecting a pair of clusters in Embodiment 1. That is, for clusters with a lower neighborhood density than the pair selection unit 104, interclass interpolation is performed to effectively increase the neighborhood density, and for clusters with a higher neighborhood density, intergroup interpolation is performed. However, the pair selection unit 104 in this embodiment adopts a strategy that considers the neighborhood density of all clusters. That is, for clusters of different classes in the same group, the pair selection unit 104 considers which has a lower neighborhood density based on the ratio of neighborhood densities. Next, the pair selection unit 104 calculates that ratio for clusters in other groups as well. Finally, the pair selection unit 104 calculates the neighborhood disparity by calculating the difference between these ratios.

[0137] The neighborhood difference is a value that indicates whether the proportion of neighborhood density of a cluster being interpolated within that group is relatively low or high compared to the proportion of neighborhood density of clusters of the same class in other groups. In other words, a high neighborhood difference indicates that the proportion of neighborhood density is relatively low compared to other groups, and conversely, a low neighborhood difference indicates that the proportion of neighborhood density is relatively high compared to other groups. The pair selection unit 104 adjusts the probability of interclass interpolation to reduce this neighborhood difference.

[0138] Therefore, the pair selection unit 104 uses the neighborhood difference to calculate a parameter p representing the interclass interpolation probability using the following formula (12).

[0139]

number

[0140] The numerator of equation (12) is the proportion of the sample size used to correct the neighborhood disparity between groups, which is derived from the neighborhood disparity. Equation (12) is the value obtained by dividing the proportion of the sample size used to correct the neighborhood disparity between groups, which is derived from the neighborhood disparity, by the number of clusters to be oversampled.

[0141] The pair selection unit 104 then determines, using parameter p as a probability and following a Bernoulli distribution, whether the current interpolation trial meets the conditions (True) or does not meet the conditions (other than True). If the trial meets the conditions, the pair selection unit 104 decides to perform interclass interpolation. Conversely, if the trial does not meet the conditions, the pair selection unit 104 decides to perform intergroup interpolation. As a result, the pair selection unit 104 performs interclass interpolation more often for clusters with lower neighborhood density and intergroup interpolation more often for clusters with higher neighborhood density within each group.

[0142] Figure 9 is a flowchart of the paired cluster selection process according to Embodiment 2. The process shown in the flowchart of Figure 9 is an example of the process executed in step S6 in Figure 5. Next, the flow of the paired cluster selection process according to this embodiment will be explained with reference to Figure 9.

[0143] The pair selection unit 104 calculates the number of interclass boundary points of the clusters to be interpolated using formula (10) (step S301).

[0144] Similarly, the pair selection unit 104 calculates the number of interclass boundary points for points of the same group but different classes in the cluster to be interpolated (step S302).

[0145] Similarly, the pair selection unit 104 calculates the number of interclass boundary points of the comparison cluster, which is a cluster of the same class but a different group, with respect to the cluster to be interpolated (step S303).

[0146] Similarly, the pair selection unit 104 calculates the number of interclass boundary points for points in the same group but different classes for the cluster to be compared (step S304).

[0147] Next, the pair selection unit 104 calculates the neighboring difference using formula (11) (step S305).

[0148] Then, the pair selection unit 104 calculates the interclass interpolation probability from formula (12) using the neighbor difference (step S306).

[0149] Subsequently, the pair selection unit 104 decides whether to perform interclass interpolation or intergroup interpolation according to the interclass interpolation probability, and selects the clusters to be paired according to the decision (step S307).

[0150] As described above, the information processing device according to this embodiment does not limit itself to clusters of a specific group, but considers the neighborhood density of all clusters to determine whether or not to perform interclass interpolation. This allows the information processing device to generate synthetic data while considering the data distribution state of the clusters to be interpolated for the entire training data, thereby improving the trade-off between prediction accuracy and fairness.

[0151] (Hardware configuration) Figure 10 is a hardware configuration diagram of an information processing device. The information processing device 1 shown in Figure 1 includes, for example, a CPU (Central Processing Unit) 91, memory 92, a hard disk 93, and a network interface 94, as shown in Figure 10. The CPU 91 is connected to the memory 92, hard disk 93, and network interface 94 via a bus.

[0152] The network interface 94 is an interface for communication between the information processing device 1 and external devices. For example, the network interface 94 relays communication between the CPU 91 and the terminal device 2.

[0153] The hard disk 93 is an auxiliary storage device. The hard disk 93 can store the input training data 120 and the machine learning model 11, as illustrated in Figure 1. The hard disk 93 also stores various programs, including programs that implement the functions of the control unit 10 and the input / output control unit 12, as illustrated in Figure 1.

[0154] Memory 92 is the main memory. Memory 92 can be, for example, DRAM (Dynamic Random Access Memory).

[0155] The CPU 91 reads various programs from the hard disk 93, loads them into memory 92, and executes them. This allows the CPU 91 to implement the functions of the control unit 10 and the input / output control unit 12, as illustrated in Figure 1. [Explanation of symbols]

[0156] 1. Information Processing Device 2 Terminal devices 10 Control Unit 11 Machine Learning Models 12 Input / Output Control Unit 101 Cluster Generation Unit 102 Judgment section 103 Cluster Selection Section 104 Pair Selection Section 105 Training Execution Unit 106 Second Sample Selection Section 107 First Sample Selection Section 108 Prediction Section 109 Synthetic Data Generation Unit 110 Weight Calculation Unit 120 input training data 121 Test Data 122 training data

Claims

1. From among multiple training data sets, identify a first set of training data where the label is a first value and the first attribute is a second value, a second set of training data where the label is a first value and the first attribute is a third value, and a third set of training data where the label is a fourth value and the first attribute is a second value. From the plurality of training data, identify a plurality of neighboring training data whose distance from the second training data among the first plurality of training data satisfies a specific criterion, and determine a specific probability based on the number of training data among the plurality of neighboring training data whose label is the first value. Based on the aforementioned specific probability, the first training data is selected from either the second set of training data or the third set of training data. Based on the second training data of the first plurality of training data and the first training data, a third training data is generated in which the label is the first value and the first attribute is the second value. A training data generation program characterized by having a computer perform the processing.

2. The training data generation program according to claim 1, characterized in that it causes the computer to perform a process of determining the specific probability based on the number of training data from the plurality of training data whose distance from the first plurality of training data satisfies the specific criterion, the number of training data from the plurality of first neighboring training data whose label is the first value, and the number of second neighboring training data from the plurality of training data whose distance from the second plurality of training data satisfies the specific criterion, and the number of training data from the plurality of second neighboring training data whose label is the first value.

3. From the plurality of training data, identify a plurality of first neighboring training data whose distance from the first plurality of training data satisfies a specific criterion, and determine the number of training data whose label is the first value and which is located at the boundary between the training data whose label is the fourth value and which is included in the first neighboring training data, From the plurality of training data, identify a plurality of second neighboring training data whose distance from the third plurality of training data satisfies the specific criterion, and determine the number of training data whose label is the fourth value and which is located at the boundary between the training data whose label is the first value and the training data whose label is the fourth value, From the plurality of training data, identify a plurality of third neighboring training data whose distance from the second plurality of training data satisfies the specific criterion, and determine the number of training data whose label is the first value and which is located at the boundary between the third neighboring training data and the data whose label is the fourth value, From the plurality of training data, identify a plurality of fourth neighboring training data whose distance from a plurality of fourth data where the fourth value and the first attribute is the third value satisfies the specific criteria, and based on the number of training data whose label is the fourth value and which exists at the boundary between the training data whose label is the first value and the training data whose label is the first value, The training data generation program according to claim 1, characterized in that it causes the computer to perform the process of determining the aforementioned specific probability.

4. From the plurality of training data, identify a plurality of neighboring training data that satisfy a specific criterion in distance from the first training data, and determine a weight based on the distance of each of the neighboring training data to each of the first plurality of training data. The training data generation program according to claim 1, characterized in that the generation of the third training data is performed using the first training data, the second training data, and the weights.

5. Information processing device, From among multiple training data sets, identify a first set of training data where the label is a first value and the first attribute is a second value, a second set of training data where the label is a first value and the first attribute is a third value, and a third set of training data where the label is a fourth value and the first attribute is a second value. From the plurality of training data, identify a plurality of neighboring training data whose distance from the second training data among the first plurality of training data satisfies a specific criterion, and determine a specific probability based on the number of training data among the plurality of neighboring training data whose label is the first value. Based on the aforementioned specific probability, the first training data is selected from either the second set of training data or the third set of training data. Based on the second training data of the first plurality of training data and the first training data, a third training data is generated in which the label is the first value and the first attribute is the second value. A method for generating training data, characterized by performing a process.

6. From among multiple training data sets, identify a first set of training data where the label is a first value and the first attribute is a second value, a second set of training data where the label is a first value and the first attribute is a third value, and a third set of training data where the label is a fourth value and the first attribute is a second value. From the plurality of training data, identify a plurality of neighboring training data whose distance from the second training data among the first plurality of training data satisfies a specific criterion, and determine a specific probability based on the number of training data among the plurality of neighboring training data whose label is the first value. Based on the aforementioned specific probability, the first training data is selected from either the second set of training data or the third set of training data. A control unit that performs a process to generate a third training data set, in which the label is the first value and the first attribute is the second value, based on the second training data set and the first training data set of the first plurality of training data sets. An information processing device characterized by having the following features.