WO2016132588A1 - データ分析装置、データ分析方法、およびデータ分析プログラム - Google Patents

データ分析装置、データ分析方法、およびデータ分析プログラム Download PDF

Info

Publication number
WO2016132588A1
WO2016132588A1 PCT/JP2015/077796 JP2015077796W WO2016132588A1 WO 2016132588 A1 WO2016132588 A1 WO 2016132588A1 JP 2015077796 W JP2015077796 W JP 2015077796W WO 2016132588 A1 WO2016132588 A1 WO 2016132588A1
Authority
WO
WIPO (PCT)
Prior art keywords
hash
learning
data
input data
value
Prior art date
Application number
PCT/JP2015/077796
Other languages
English (en)
French (fr)
Inventor
琢磨 柴原
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US15/550,508 priority Critical patent/US11138515B2/en
Publication of WO2016132588A1 publication Critical patent/WO2016132588A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/70ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients

Definitions

  • the present invention relates to a data analysis apparatus, a data analysis method, and a data analysis program for analyzing data.
  • each interest set is acquired for each of a plurality of users, M minimum hash values of each interest set are determined for each of the users, and each of the plurality of users is assigned to each user.
  • assigning to each of the M clusters established for, the recommendation or the like is performed.
  • Patent Document 1 uses K n-bit hash functions, and a vector string having binary scalar values representing purchase information of a certain user as elements (for example, the element value “0” is not purchased, “ When “1” is purchased.
  • Patent Document 1 M hash values of an interest set are determined using a hash function.
  • M hash values of an interest set are determined using a hash function.
  • the number of dimensions of a feature vector is enormous, there is a problem that it takes time for calculation processing.
  • Non-Patent Document 1 since the number of dimensions is reduced by truncating the feature vector to the lower-order b-bit, the calculation processing time is shortened compared to Patent Document 1, but by the b-bit truncation There is a problem that the analysis accuracy is lowered.
  • Patent Document 1 considers feature vectorization when the value of the item to be analyzed has a multivalue or a real value.
  • the object of the present invention is to enable high-speed and highly accurate data analysis.
  • a data analysis device, a data analysis method, and a data analysis program which are one aspect of the invention disclosed in the present application, include a learning input data group that is a set of learning input data having values of a plurality of first data items.
  • a first acquisition process acquired from the storage device a first setting process for setting a plurality of first hash functions by generating a unique first hash table, and a learning input acquired by the first acquisition process
  • a plurality of first hashes corresponding to values of the plurality of first data items are provided to each of the plurality of first hash functions set by the first setting process for each learning input data of the data group.
  • a second calculation process for calculating a plurality of second hash values, and a result calculated by the second calculation process as a result of the specific first hash
  • a first generation process for generating a learning feature vector indicating the characteristics of the learning input data group by aggregating the second hash values corresponding to each of the values.
  • FIG. 6 is an explanatory diagram of an example of generating feature vectors according to the first embodiment. It is explanatory drawing which shows the detailed process example of the feature-value calculation process shown in FIG. It is a block diagram which shows the system configuration example of a data analysis system. It is explanatory drawing which shows an example of the data set for learning. It is explanatory drawing which shows an example of the data set for prediction. It is explanatory drawing which shows the example of a setting screen in data analysis.
  • 3 is a flowchart illustrating an example of a data analysis processing procedure by the data analysis system according to the first embodiment. It is a flowchart which shows the detailed process sequence example of the learning process (step S702) shown in FIG.
  • FIG. 10 is an explanatory diagram illustrating a detailed processing example of a feature amount calculation processing HT1 according to the second embodiment.
  • FIG. 10 is an explanatory diagram of an example of generating a feature vector according to the second embodiment.
  • 12 is a flowchart illustrating a detailed processing procedure example of a learning feature vector generation process (step S805) according to the second embodiment; It is explanatory drawing which shows the execution example of cross-validation.
  • 12 is a flowchart of a detailed processing procedure example 1 of the learning feature vector generation process (step S805) according to the third embodiment.
  • 12 is a flowchart of a detailed process procedure example 2 of the learning feature vector generation process (step S805) according to the third embodiment.
  • FIG. 1 is an explanatory diagram of an example of generating feature vectors according to the first embodiment.
  • a feature vector can be generated.
  • the learning input data group is, for example, a learning factor data group including data items such as sex, age, and prescription amount of medicine for each patient.
  • the learning output data group includes, for example, the remission prospect, white blood cell count (WBC), red blood cell count (RBC), lymphocyte count (Lymphocyte), liver function test value (for each patient who is the same as the learning factor data group). ALT) and the like.
  • WBC white blood cell count
  • RBC red blood cell count
  • Lymphocyte lymphocyte count
  • liver function test value for each patient who is the same as the learning factor data group.
  • As the learning factor data group and the learning diagnostic data group for example, information described in an electronic medical record or a receipt in a hospital is used.
  • each learning factor data group is expressed by the following formula (1). If the learning diagnostic data group is Y, each learning diagnostic data is expressed by the following formula (2). It is expressed by
  • N is identification information for identifying a patient regarding each data of the learning factor data group D and the learning diagnostic data group Y
  • a learning feature vector is generated for each patient. Let X n be the learning feature vector of the nth patient.
  • the learning feature vector Xn is generated in order to obtain a learning parameter w common to the patient for a certain diagnosis item (for example, a prospect of remission). Specifically, when each learning feature vector Xn is generated, each learning feature vector Xn , learning factor data group D, and each patient's about a certain diagnosis item (for example, the prospect of remission).
  • the learning parameter w is calculated by executing machine learning such as Support Vector Machine (SVM) using the diagnostic data string for learning. Then, by using the learning parameter w and another patient factor data group (hereinafter, predictive factor data group), another patient's diagnostic data string for a certain diagnostic item (for example, the prospect of remission) is predicted. be able to.
  • SVM Support Vector Machine
  • Hash pool family G is generated in advance.
  • Hash pool group G as shown in the following formula (3) is the set of hash pool G m.
  • Each hash pool Gm includes a plurality of hash functions.
  • hash pool G 1 For hash pool G 1, (A) a feature vector processing, by executing the (B) aggregation processing (Odd-filtering), the feature vectors X 1 is generated.
  • the feature amount calculation processing HTk uses a different hash function to obtain a feature amount corresponding to the value of each data item of the learning factor data D n from the learning factor data D n , and calculates a minimum value from the feature amount. The process to select.
  • the different hash function may be a hash function with a different hash algorithm, or may be a hash function with the same hash algorithm or a different hash table held inside. Note that the bit widths of the hash values of different hash functions are the same (a-bit). a is an integer of 1 or more. In the feature amount calculation process HTk, one minimum value is obtained for each patient.
  • (B) Aggregation processing aggregates the minimum values obtained by (A) feature amount calculation processing using a hash function.
  • aggregation is performed by modular calculation based on odd-filtering. Odd-filtering is a process of repeatedly flipping binary values (0 and 1) that are aggregate values.
  • the aggregate value is binary, but it may be three or more.
  • the bit width of the hash value is a b-bit hash function, b 2 hash values are prepared, and each corresponds to an aggregate value.
  • b is an integer of 1 or more.
  • the sub feature vector x 1 1 in which the aggregation values of the hash values hb1 to hb (b 2 ) are arranged is generated.
  • sub feature vectors x 1 2 to x 1 M are generated for the hash pools G 2 to G m .
  • feature vectors X 1 showing the characteristics of the learning factor data D 1 is produced.
  • the feature vector X 2 ⁇ X N indicating characteristics of the learning factor data D 2 ⁇ D N are generated.
  • FIG. 2 is an explanatory diagram showing a detailed processing example of the feature amount calculation processing HT1 shown in FIG.
  • the value of the data items in the learning factor data D 1 is normalized. For example, when the data item is a multi-value such as “age”, normalization is performed so that the value range is 0 or more and 1 or less using the maximum value and the minimum value of the data item.
  • the range that the prescription amount of the drug can take is normalized within the range of 0 to 1.
  • the data item for which the value before normalization is selected is numbered again using j. In FIG. 2, it is assumed that 4000,000 data items are selected as an example.
  • the a-bit hash calculation uses the hash table generated by the a-bit hash function described above, the value after normalization of the data item for which the value before normalization is selected, and the hash In the table, the hash value haj corresponding to the identification information of the data item for which the value before normalization is selected is associated.
  • Weighting is performed by multiplying (B) the normalized value associated by the a-bit hash calculation and the corresponding hash value haj.
  • the minimum value selection selects the minimum value from the value group obtained by (C) weighting.
  • the minimum value of the feature amount corresponding to the value of each data item of the learning factor data D 1 is obtained.
  • a statistical value that satisfies other statistical conditions such as a maximum value, median value, average value, or random value may be used.
  • the feature amount calculation processing HT1 in Figure 2 has been described using the learning factor data D 1, the feature quantity calculation processing HT1 is performed for learning factor data D 2 ⁇ D N. Further, although the feature amount calculation process HT1 has been described with reference to FIG. 2, the other feature amount calculation processes HT2 to HTK are similarly executed.
  • the minimum value of the feature amount corresponding to the value of each data item of the learning factor data D n is calculated by the feature amount calculation process HTk, and b ⁇ Since the minimum values are aggregated using the bit hash function, the data analysis can be speeded up.
  • the minimum value of the feature quantity of the normalized value of the data item of the learning factor data D n and weighted by a-bit hash function, by aggregating with Odd-filtering, is training feature vectors X n to be produced, each element of the training feature vector X n is 2 values of each data item of the learning factor data D n, the multi-level, a value real value were considered. Therefore, it is possible to improve the accuracy of data analysis.
  • memory saving can be achieved by setting a small value that can be taken by odd-filtering.
  • FIG. 3 is a block diagram illustrating a system configuration example of the data analysis system 3.
  • the server-client type data analysis system 3 will be described as an example, but a stand-alone type may be used.
  • (A) is a block diagram showing a hardware configuration example of the data analysis system 3
  • (B) is a block diagram showing a functional configuration example of the data analysis system 3.
  • the same reference numerals are given to the same components.
  • the data analysis system 3 has a configuration in which a client terminal 300 and a data analysis device 320 that is a server are communicably connected via a network 310.
  • the client terminal 300 includes an HDD (hard disk drive) 301 that is an auxiliary storage device, a memory 302 that is a main storage device, a processor 303, an input device 304 that is a keyboard and a mouse, and a monitor 205.
  • the data analysis device 320 includes an HDD 321 that is an auxiliary storage device, a memory 322 that is a main storage device, a processor 323, an input device 324 that is a keyboard and a mouse, and a monitor 325.
  • the main storage device, auxiliary storage device, and portable storage medium are collectively referred to as a storage device.
  • the client terminal 300 has a client database (DB) 351.
  • the client DB 351 is stored in a storage device such as the HDD 301 or the memory 302.
  • the client DB 351 stores a prediction data set 352 and a prediction result 353.
  • the prediction data set 352 will be described later with reference to FIG.
  • the prediction result 353 is data obtained from the prediction processing unit 362 via the network 310.
  • the server-client type one or more client terminals 300 exist.
  • the data analysis device 320 includes a learning processing unit 361, a prediction processing unit 362, and a server database (DB) 363.
  • the learning processing unit 361 is a functional unit that executes the processing illustrated in FIGS. 1 and 2 and outputs a learning result 365.
  • the learning result 365 includes the learning parameter w described above. A detailed processing procedure of the learning processing unit 361 will be described later with reference to FIGS.
  • the prediction processing unit 362 is a functional unit that executes the processing shown in FIGS. 1 and 2 using the learning result 365 and outputs the prediction result 353 to the client terminal 300. A detailed processing procedure of the prediction processing unit 362 will be described later with reference to FIGS. 7, 10, and 11.
  • the learning processing unit 361 and the prediction processing unit 362 realize their functions by causing the processor 323 to execute a program stored in a storage device such as the HDD 321 or the memory 322.
  • the server DB 363 stores a learning data set 364 and a learning result 365.
  • the learning data set 364 includes the learning input data group (learning factor data group D) and the learning output data group (learning diagnostic data group Y).
  • the learning result 365 is output data from the learning processing unit 361.
  • the data analysis device 320 may be composed of a plurality of units.
  • a plurality of data analysis devices 320 may exist for load distribution.
  • the data analysis device 320 may be composed of a plurality of units for each function.
  • FIG. 4 is an explanatory diagram showing an example of the learning data set 364.
  • the learning data set 364 has a learning input DB 410 and a learning output DB 420.
  • the learning input DB 410 is a database that stores a learning input data group (learning factor data group D)
  • the learning output DB 420 is a database that stores a learning output data group (learning diagnostic data group Y). is there.
  • B,..., ⁇ prescription amounts (real numbers) are stored.
  • FIG. 5 is an explanatory diagram illustrating an example of a prediction data set.
  • the value of ID500 is different from the value of ID400. That is, the patient specified by ID500 and the patient specified by ID400 are different patients.
  • the If the value of the data item is multi-value of 3 or more, 1-of-K representation (for example, only one of K elements takes “1” and the others are “0”). It is converted into an item using.
  • the values of the data items 521 to 525 are not stored because they are prediction targets.
  • the prediction result 353 from the prediction processing unit 362 of the data analysis device 320 is stored by the client terminal 300.
  • FIG. 6 is an explanatory diagram illustrating an example of a setting screen in data analysis.
  • the setting screen 600 is displayed on the monitor 305 of the client terminal 300 or the monitor 325 of the data analysis device 320, for example.
  • the setting screen 600 includes a hash pool number input field 601, a hash function number input field 602, an a-bit hash function type selection field 603, a b-bit hash function type selection field 604, and an a-bit width input field 605. And a b-bit width input field 606.
  • Hash pool number input column 601 is a column for inputting the maximum value (the total number) M of the number of hash pool G m (number of hash pool m).
  • the hash function number input column 602 is a column for inputting the maximum value (total number) K of the number of a-bit hash functions k.
  • the a-bit hash function type selection column 603 is a column for selecting a hash algorithm that is the type of the a-bit hash function. Examples include FNV, MurmurHash, MD5, SHA-2, and SHA-3, which can be selected by a user operation. In FIG. 6, MurmurHash 631 is selected.
  • Random selection 632 is an option for randomly selecting any one of the above-described a-bit hash functions. When the Random selection 632 is selected, any hash algorithm of the a-bit hash function described above is selected at random every time the hash pool number m is incremented in the process (FIG. 8) described later.
  • the b-bit hash function type selection column 604 is a column for selecting a hash algorithm that is the type of the b-bit hash function. Examples include FNV, MurmurHash, MD5, SHA-2, and SHA-3, which can be selected by a user operation. In FIG. 6, FNV641 is selected.
  • Random selection 642 is an option in which any hash algorithm of the b-bit hash function described above is selected at random. When Random selection 642 is selected, any time the hash pool number m is incremented in the process described later (FIG. 8), one of the above-described b-bit hash functions is randomly selected.
  • the a-bit width input field 605 is a field for inputting the bit width a of the hash value of the a-bit hash function.
  • the b-bit width input field 606 is a field for inputting the bit width b of the hash value of the b-bit hash function.
  • FIG. 7 is a flowchart of a data analysis processing procedure example performed by the data analysis system 3 according to the first embodiment.
  • the learning processing unit 361 performs initial setting (step S700).
  • each value is input or selected on the setting screen 600 of FIG.
  • any data item of the predicted value to be predicted is selected from the data items 421 to 425.
  • a column of values of the selected data item is referred to as teacher data.
  • the learning processing unit 361 acquires a learning input data group (learning factor data group D) from the server DB 363 (step S701). At this time, the learning processing unit 361 generates an empty learning feature vector Xn having no element as a feature vector. And the learning process part 361 performs a learning process, as shown in FIG.1 and FIG.2 (step S702). Details of the learning process (step S702) will be described with reference to FIG. A learning result 365 is output by the learning process (step S702). Then, the learning processing unit 361 stores the learning result 365 in the server DB 363 (Step S703).
  • the prediction processing unit 362 acquires a prediction input data group (prediction factor data group D ′) from the client DB 351, and acquires a learning result 365 from the server DB 363 (step S704).
  • the prediction process part 362 performs a prediction process using the data acquired by step S704 (step S705). Details of the prediction process (step S705) will be described with reference to FIG.
  • the prediction result 353 is output to the client terminal 300 by the prediction process (step S705).
  • the client terminal 300 stores the prediction result 353 in the client DB 351 (step S706).
  • the prediction result 353 is stored in the learning output DB 920 of the prediction data set 352 stored in the client DB 351.
  • the prediction result 353 is that of the prospect of remission 421 corresponding to each value n ′ of ID 500 of the predictive factor data group D ′. This is the predicted value y ′ n ′ i .
  • FIG. 8 is a flowchart showing a detailed processing procedure example of the learning processing (step S702) shown in FIG.
  • the learning processing unit 361 normalizes the learning input data group (learning factor data group D) as described in (A) normalization in FIG. 2 (step S801).
  • the learning processing unit 361 normalizes each learning item data D n for each data item by the following equation (5).
  • x n i is the value of the data item i ID 400 before normalization is n
  • x n i max is the maximum value of the values x n i columns of data items i
  • x n i min is the minimum value x n i of the column of the data item i
  • nor (x n i ) is a value obtained by normalizing x n i .
  • the learning factor data nor (D n ) after normalization of the learning factor data Dn is as follows.
  • the maximum value x n i max and the minimum value x n i min are normalization coefficients, and the learning processing unit 361 stores them as the normalization coefficient Z n i .
  • the learning processing unit 361 generates a sub feature vector x n m that is a b two- dimensional zero vector for each of the normalized factor data for learning nor (D n ).
  • the learning processing unit 361, the hash pool G m, setting the b-bit hash function h m (step S804).
  • the b-bit hash function is a hash function using a random value as a seed.
  • the learning processing unit 361 uses the algorithm selected in the b-bit hash function type selection field 604 of the setting screen 600 in FIG. Use to generate.
  • This hash table is a table in which a random value is associated with a hash value obtained by giving the random value to a b-bit hash function.
  • the hash width of the hash value is the value input in the b-bit width input field 606 in FIG.
  • the learning processing unit 361 executes learning feature vector generation processing as shown in FIGS. 1 and 2 (step S805). Details of the learning feature vector generation process (step S805) will be described with reference to FIG.
  • a learning feature vector X n m is generated for the hash pool G m .
  • the learning feature vector X n m is a feature vector indicating the feature of the learning factor data D n in the hash pool G m .
  • the learning processing unit 361 determines whether or not the hash pool number m is equal to or less than the maximum value M of the hash pool number m (step S806). If it is less than the maximum value M (step S806: Yes), since the learning processing unit 361 must generate a hash pool G m, and increments the number of hash pool m (step S807), the flow returns to step S803.
  • step S806 when it is not less than the maximum value M (step S806: No), the learning processing unit 361 calculates a learning parameter w (step S808).
  • the training feature vector generating process for using the training feature vectors X n m generated in (step S805), after the description of training feature vector generating process (step S805) Details will be described.
  • the learning processing unit 361 ends the learning process (step S702) and executes step S703.
  • FIG. 9 is a flowchart showing a detailed processing procedure example of the learning feature vector generation process (step S805) shown in FIG.
  • the learning processing unit 361 sets an a-bit hash function H k m for the hash pool G m (step S902). Similar to the b-bit hash function, the a-bit hash function is a hash function using a random value as a seed. Specifically, for example, the learning processing unit 361 uses the algorithm selected in the a-bit hash function type selection field 603 of the setting screen 600 in FIG. Use to generate.
  • This hash table is a table in which a random value is associated with a hash value obtained by giving the random value to an a-bit hash function.
  • the hash width of the hash value is the value input in the a-bit width input field 605 in FIG. This process corresponds to (B) a-bit hash calculation in FIG.
  • the learning processing unit 361 calculates a-bit hash value set T k m (step S905). Specifically, for example, the learning processing unit 361 applies the a-bit hash function H k m to the item value pair S n m, calculates the a-bit hash value set T k m. This process corresponds to the weighting (C) in FIG.
  • step S906 the learning processing unit 361, from among a-bit hash value set T k m calculated in step S906, selecting the minimum hash value u k m is the minimum value (step S906).
  • This process corresponds to (D) minimum value selection in FIG.
  • the learning processing unit 361 gives the minimum hash value u k m to the b-bit hash function h m and calculates the b-bit hash value v (step S907).
  • step S909 the learning processing unit 361, the v dimension values q OLD sub feature vector x n m, overwrites the value q NEW calculated in step S908 (step S909). That is, by setting the radix to 2 in the expression (11), the v-dimensional element repeats flipping from “0” to “1” or from “1” to “0”. Further, by setting the radix to 2, v-dimensional values are aggregated into “0” or “1”, so that memory saving can be achieved. This process corresponds to (B) in FIG.
  • the learning processing unit 361 determines whether or not the value n of the ID 400 is equal to or less than the maximum value N (step S910). If it is equal to or less than the maximum value N (step S910: Yes), since there is an unselected ID to be processed, the learning processing unit 361 increments n (step S911) and returns to step S904.
  • step S910 determines whether or not the number of a-bit hash functions k is less than or equal to the maximum value K (step S912).
  • step S912 determines whether or not the number of a-bit hash functions k is less than or equal to the maximum value K (step S912).
  • step S912 increments the number of a-bit hash functions k because there is an a-bit hash function H k m to be tried (step S913).
  • step S912 determines whether k is less than the maximum value K. If k is not less than the maximum value K (step S912: No), the learning processing unit 361, by the following equation (12), by stacking the sub-feature vector x n m to the feature vector X n, the feature vector X n is updated (step S914).
  • a learning feature vector Xn is generated for each value n of ID400, and the learning processing unit 361 ends the learning feature vector generation processing (step S805) and executes step S806.
  • step S808 the learning parameter w is calculated. Specifically, the learning parameter w is calculated by the following equation (14), where y n i is teacher data.
  • an identification function is used as the function f in the equation (14).
  • a known function using SVM or a neural network is applied.
  • a regression function is used as the function f.
  • a known SVM regression function is used.
  • the learning processing unit 361 stores the normalization coefficient Z n i , the learning parameter w, and the hash pool group G shown in Expression (7) in the server DB 363 as the learning result 365.
  • the hash pool group G includes a generated a-bit hash function H k m and a b-bit hash function h m .
  • FIG. 10 is a flowchart illustrating a detailed processing procedure example of the prediction processing (step S705) illustrated in FIG.
  • the prediction processing unit 362 normalizes the prediction input data group (prediction factor data group D ′) by the same method as in step S801 (step S1001). Specifically, for example, the prediction processing unit 362 normalizes each prediction factor data D ′ n ′ for each data item by the following equation (15).
  • x ′ n ′ i is the value of the data item i whose ID 500 is n ′ before normalization
  • x ′ n ′ i max is the value x ′ n ′ i of the column of the data item i.
  • X ′ n ′ i min is the minimum value x ′ n ′ of the column of the data item i, and nor (x ′ n ′ i ) is a value obtained by normalizing x ′ n ′ i .
  • the prediction factor data nor (D ′ n ′ ) after normalization of the prediction factor data D ′ n ′ is as follows.
  • the maximum value x ′ n ′ i max and the minimum value x ′ n ′ i min are normalization coefficients, and the prediction processing unit 362 stores them as a normalized set Z ′ n ′ i .
  • the prediction processing unit 362 generates a sub feature vector x ′ n ′ m that is a b two- dimensional zero vector for each of the normalized prediction factor data nor (D ′ n ′ ).
  • the prediction processor 362 hash the pool G m, to obtain a b-bit hash function h m from the hash pool Group G contained in the learning result 365 (step S1004).
  • the prediction processing unit 362 performs a prediction feature vector generation process as shown in FIGS. 1 and 2 (step S1005). Details of the prediction feature vector generation process (step S1005) will be described with reference to FIG.
  • a prediction feature vector X ′ n ′ m is generated for the hash pool G m .
  • the prediction feature vector X ′ n ′ m is a feature vector indicating the feature of the prediction factor data D ′ n ′ in the hash pool G m .
  • the prediction processing unit 362 determines whether or not the hash pool number m is equal to or less than the maximum value M of the hash pool number m (step S1006). If it is less than the maximum value M (step S1006: Yes), since the prediction processor 362 need to get the hash pool G m, and increments the number of hash pool m (step S1007), and the flow returns to Step S1003.
  • the prediction processing unit 362 calculates a predicted value y ′ n ′ i (step S1008). For example, when the prospect of remission 421 is selected as one of the data items i to be predicted, the prediction processing unit 362 expects the remission prospect 421 corresponding to each value n ′ of the ID 500 of the predictive factor data group D ′. The predicted value y ′ n ′ i is calculated.
  • step S1008 since the prediction feature vector X ′ n ′ m generated in the prediction feature vector generation process (step S1005) is used, the prediction feature vector generation process ( Details will be described after step S1005).
  • the prediction processing unit 362 ends the prediction process (step S705) and executes step S706.
  • FIG. 11 is a flowchart showing a detailed processing procedure example of the prediction feature vector generation process (step S1005) shown in FIG.
  • the prediction processor 362 acquires a-bit hash function H k m hash pool G m from the hash pool Group G contained in the learning result 365 (step S1102).
  • the prediction processor 362 for each of nor (x'n'i), select nor (x'n'i) before normalization value x'n'i is nonzero To do.
  • the prediction processing unit 362 generates an item value pair S ′ n ′ m by assigning i to j for the selected nor (x ′ n ′ i ).
  • the prediction processor 362 calculates a-bit hash value set T'k m (step S1105). Specifically, for example, the prediction processing unit 362 applies the a-bit hash function H k m to the item value pair S'n'm, calculates the a-bit hash value set T'k m. This process corresponds to the weighting (C) in FIG.
  • the prediction processor 362 from among a-bit hash value set T'k m calculated in step S1106, selects the minimum hash value u'k m is the minimum value (step S1106). This process corresponds to (D) minimum value selection in FIG.
  • the prediction processor 362 calculates a b-bit hash value v '(step S1107).
  • the prediction processing unit 362 overwrites and saves the v′-dimensional value q ′ OLD of the sub feature vector x ′ n ′ m with the value q ′ NEW calculated in step S1108 (step S1109). That is, by setting the radix to 2 in the equation (21), the v′-dimensional element repeats flipping from “0” to “1” or from “1” to “0”. In addition, by setting the radix to 2, v′-dimensional values are aggregated into “0” or “1”, so that memory saving can be achieved. This process corresponds to (B) in FIG.
  • the prediction processing unit 362 determines whether the value n ′ of the ID 500 is equal to or less than the maximum value N ′ (step S1110). When it is equal to or less than the maximum value N ′ (step S1110: Yes), since there is an unselected ID to be processed, the prediction processing unit 362 increments n ′ (step S1111) and returns to step S1104.
  • step S1110 determines whether the number of a-bit hash functions k is equal to or less than the maximum value K (step S1112).
  • step S1112 determines whether the prediction processing unit 362 increments the number k of a-bit hash functions because there is an a-bit hash function H k m to be tried (step S1113).
  • the prediction processing unit 362 uses the stack function described in the above equations (12) and (13) to generate the prediction feature vector X ′ n ′ .
  • the feature vector for prediction X ′ n ′ is updated by stacking the sub feature vectors x ′ n ′ m (step S1114).
  • a prediction feature vector X ′ n ′ is generated for each value n ′ of ID 500 , and the prediction processing unit 362 ends the prediction feature vector generation processing (step S1005), and executes step S1006.
  • step S ⁇ b> 1008 the predicted value y ′ n ′ i is calculated. Specifically, the predicted value y ′ n ′ i is calculated by the following equation (23) using the function f shown in the above equation (14), the learning parameter w, and the prediction feature vector X ′ n ′.
  • the first embodiment even when the number of data N and N ′ and the number of data items I and I ′ are enormous, high-speed and memory-saving high-precision data analysis can be performed. Further, even when the values of the data items I and I ′ have multivalues or real values, it is possible to perform high-precision data analysis with high speed and memory saving.
  • the second embodiment is an example in which folding calculation is executed instead of the modular calculation based on odd-filtering in the aggregation processing shown in FIG. 1B of the first embodiment.
  • the folding calculation is a process of cumulatively adding the value x n i of the data item i to the value of the feature vector, whereby the data analysis system 3 can directly analyze the multi-value or real value data item i. Can do.
  • the configuration example places more emphasis on the accuracy of data analysis than the memory consumption of the computer.
  • differences from the first embodiment will be mainly described, and description of the same processing as that of the first embodiment will be omitted.
  • FIG. 12 is an explanatory diagram of a detailed processing example of the feature amount calculation processing HT1 according to the second embodiment.
  • (C) weighting is executed after (B) a-bit hash calculation.
  • (C) weighting is executed.
  • (D) Minimum value selection is performed.
  • the feature amount calculation process HT1 normalizes the minimum value selected by the minimum value selection of (E) and (D).
  • (E) Normalization is performed by the same calculation method as (A) normalization.
  • the feature amount calculation processing HT1 in FIG. 12 has been described using the learning factor data D 1, the feature quantity calculation processing HT1 is performed for learning factor data D 2 ⁇ D N.
  • the feature amount calculation process HT1 has been described.
  • the other feature amount calculation processes HT2 to HTK are similarly executed.
  • FIG. 13 is an explanatory diagram of an example of generating feature vectors according to the second embodiment.
  • modular calculation by odd-filtering is performed in (B) aggregation.
  • folding calculation is performed in (B) aggregation in the second embodiment.
  • Folding calculation calculates a hash value corresponding to the normalized minimum value output from the feature amount calculation processing HTk by b-bit hash function h m. In the folding calculation, normalized minimum values having the same hash value are cumulatively added.
  • the learning factor data D 1 feature quantity calculation processing normalized minimum value obtained at HT1 using "0.4” is, b-bit hash table generated by a hash function hash values hb1 ⁇ hb ( b 2) of, corresponding to the hash value hb2. Therefore, the aggregated value corresponding to the hash value hb2 is cumulatively added with the normalized minimum value “0.4” to the initial value “0” to become “0.4”.
  • normalized minimum value obtained by the feature amount calculation processing HT2 with learning factor data D 1 "0.2” also corresponds to the hash value hb2. Therefore, the aggregated value corresponding to the hash value hb2 is “0.6” by adding the normalized minimum value “0.2” to “0.4”.
  • the sub feature vector x 1 1 in which the aggregation values of the hash values hb1 to hb (b 2 ) are arranged is generated.
  • sub feature vectors x 1 2 to x 1 M are generated for the hash pools G 2 to G m .
  • training feature vectors X 1 showing the characteristics of the learning factor data D 1 is produced.
  • training feature vectors X 2 ⁇ X N indicating characteristics of the learning factor data D 2 ⁇ D N are generated.
  • FIG. 14 is a flowchart of a detailed process procedure example of the learning feature vector generation process (step S805) according to the second embodiment. The same steps as those in the learning feature vector generation process (step S805) according to the first embodiment shown in FIG.
  • the learning processing unit 361 determines the minimum value u k m from the a-bit hash value group obtained by the a-bit hash function H k m as shown in (B) minimum value selection in FIG. identify, as indicated by normalized (E), by normalizing the minimum value u k m, calculates the normalized minimum value alpha k m (step S1406).
  • the learning processing unit 361 gives the normalized minimum value ⁇ k m to the b-bit hash function h m and calculates the b-bit hash value v (step S1407).
  • the learning processing unit 361 the v dimension values q OLD sub feature vector x n m, overwrites the value q NEW calculated in step S1408 (step S1409).
  • b-bit hash value is cumulatively added normalized minimum value alpha k m are the same, it is possible to reflect the characteristics of the learning factor data D n greater detail. Therefore, it is possible to improve the accuracy of data analysis. This process corresponds to (B) of FIG.
  • the normalized minimum value of the feature amount corresponding to the value of each data item of the learning factor data D n is calculated by the feature amount calculation process HTk using the a-bit hash function. Since the normalized minimum values are aggregated using the b-bit hash function, data analysis can be speeded up.
  • each element of the learning feature vector X n is the learning factor. 2 value of each data item of the data D n, the multi-level, a value real value were considered. Therefore, it is possible to improve the accuracy of data analysis.
  • the aggregation processing by aggregating normalized minimum at folding calculations, it is possible to more detailed representation of the characteristics of the learning factor data D n. Therefore, it is suitable when the value of the data item is a multi-value or a real value, and data analysis can be realized with higher accuracy.
  • Example 3 is an example in which the accuracy of the sub feature vector generated in Example 1 and Example 2 is increased.
  • the data analysis system 3 identifies a sub-feature vector whose analysis accuracy is low before obtaining the learning parameter w in the learning process (step S702), and the analysis accuracy is a certain level or more.
  • the learning feature vector generation process (step S805) is re-executed without stacking the sub-feature vectors with the stack function until
  • a highly accurate learning parameter w can be calculated.
  • the accuracy of the predicted value can be improved.
  • step S805 As a mechanism for re-executing the learning feature vector generation process (step S805), for example, cross-validation is executed.
  • FIG. 15 is an explanatory diagram showing an execution example of cross-validation.
  • the learning processing unit 361 executes (1) classification, (2) learning parameter calculation, (3) prediction data calculation, and (4) verification in this order.
  • the learning processing unit 361 classifies the learning factor data group D and the learning diagnostic data group Y into two groups by sampling a certain data item i with an arbitrary ID 400.
  • the first group g1 towards sampled at any ID includes a first learning factor data group D1 and first teacher data y1 n i.
  • the second group is a ID400 residual g2 includes a second learning factor data group D1 and the second training data y2 n i.
  • the learning processing unit 361, a first learning factor data group D1 and first teacher data y1 n i for example, by giving the identifier, such as SVM, calculated learning parameters w1 To do.
  • the learning parameter w1 may be calculated by applying the process shown in step S808 of FIG. 8 described above.
  • the learning processing unit 361 uses the learning parameter w1 and the second learning factor data group D2 to perform the prediction data y2 by the same process as described in step S1008 of FIG. ' N i is calculated.
  • the learning processing unit 361 executes the processes (1) to (4) a plurality of times by changing the ID sampled in (1). And the learning process part 361 calculates the average prediction precision which is the average value of the prediction precision obtained by (4) verification of each time. Instead of the average of the prediction accuracy, a statistical value that satisfies other statistical conditions such as a maximum value, a minimum value, a median value, or a randomly selected value of the prediction accuracy may be used. Below, it demonstrates as average prediction precision as an example.
  • the learning processing unit 361 does not satisfy the required accuracy of the learning parameter w1 and the prediction data y2 ′ n i calculated by (2) learning parameter calculation until the average prediction accuracy exceeds the threshold value. In this case, the learning processing unit 361, to regenerate the b-bit hash function h m and a-bit hash function H k m, it will perform a re-cross validation.
  • FIG. 16 is a flowchart of a detailed process procedure example 1 of the learning feature vector generation process (step S805) according to the third embodiment.
  • FIG. 16 is an example of a processing procedure for performing cross-validation in the learning feature vector generation process (step S805) according to the first embodiment shown in FIG.
  • the same step number is assigned to the same step as in FIG. 9, and the description thereof is omitted.
  • FIG. 17 is a flowchart of a detailed process procedure example 2 of the learning feature vector generation process (step S805) according to the third embodiment.
  • FIG. 17 is a processing procedure example in which cross-validation is executed in the learning feature vector generation processing (step S805) according to the second embodiment shown in FIG.
  • the same steps as those in FIG. 14 are denoted by the same step numbers, and the description thereof is omitted.
  • step S912 the learning processing unit 361 executes the cross validation shown in FIG. 15 (step S1614).
  • hash pool G m the average prediction accuracy obtained in cross-validation and P m, the thresholds and Thr.
  • P m ⁇ Thr step S1615: Yes
  • the process proceeds to step S804 in FIG. 8, and the learning processing unit 361 regenerates the b-bit hash function (step S804), and regenerates b ⁇ .
  • the learning feature vector generation process step S805) of FIG. 16 (in the case of the first embodiment) or FIG. 17 (in the case of the second embodiment) is re-executed.
  • the cross-validation is applied in the first embodiment. Therefore, the learning parameter w with high reliability can be obtained in the first embodiment, and the data analysis accuracy can be improved.
  • step S805 of FIG. 17 the cross-validation is applied in the second embodiment. Therefore, the learning parameter w with high reliability can be obtained in the second embodiment, and the data analysis accuracy can be improved.
  • the b-bit hash value is obtained by using the b-bit hash function from the hash value generated by the a-bit hash function weighted by the value of the data item.
  • the dimension reduction of the feature vector is realized.
  • the medicinal effect analysis is described as an example, but the present invention can also be applied to product recommendation.
  • the ID 400 of the learning input DB 410 shown in FIG. 4 indicates the customer, not the patient, the data items 411 to 415 indicate the product or service (may be the genre of the product or service), and the value is the number of purchases. Or the purchase amount (in the case of a product), the number of times of use or the amount of use (in the case of a service) is shown.
  • the data items 421 to 425 of the learning output DB 420 are types of preferences indicating customer purchase trends, customer hobbies, and the like. The same applies to the prediction input DB 510 and the learning output DB 520.
  • the ID 400 of the learning input DB 410 shown in FIG. 4 indicates a news article published in a newspaper, a magazine, or a web page
  • the data items 411 to 415 indicate words, and their values. Indicates the number of occurrences of a word.
  • the data items 421 to 425 of the learning output DB 420 are genres of news articles such as politics, society, sports, and weather. The same applies to the prediction input DB 510 and the learning output DB 520.
  • the present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the scope of the appended claims.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and the present invention is not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment may be replaced with the configuration of another embodiment.
  • each of the above-described configurations, functions, processing units, processing means, etc. may be realized in hardware by designing a part or all of them, for example, with an integrated circuit, and the processor realizes each function. It may be realized by software by interpreting and executing the program to be executed.
  • Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, a hard disk, and an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, and a DVD.
  • a storage device such as a memory, a hard disk, and an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, and a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and do not necessarily indicate all control lines and information lines necessary for mounting. In practice, it can be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Public Health (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Pathology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 プロセッサは、各学習用入力データについて、複数の第1ハッシュ関数の各々に与えることにより、複数の第1データ項目の値に対応する複数の第1ハッシュ値を第1ハッシュ関数ごとに算出し、各学習用入力データについて、複数の第1ハッシュ値の中から特定の第1ハッシュ値を第1ハッシュ関数ごとに選択し、各学習用入力データについて、特定の第1ハッシュ値の各々を第2ハッシュ関数に与えることにより、第2ハッシュ値を複数算出し、特定の第1ハッシュ値の各々に対応する第2ハッシュ値を集約することにより、学習用入力データ群の特徴を示す学習用特徴ベクトルを生成する。

Description

データ分析装置、データ分析方法、およびデータ分析プログラム 参照による取り込み
 本出願は、平成27年(2015年)2月18日に出願された日本出願である特願2015-029606の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、データを分析するデータ分析装置、データ分析方法、およびデータ分析プログラムに関する。
 従来、例えば、商品の購買情報から購入者の種類を識別して、商品を推薦(レコメンデーション)する際に、データベースに格納されている全商品について購入の有無を調べ上げる技術がある。これにより、類似した購入傾向にある購買者が分類される。その際、商品の項目数が数万から数億にのぼるため、計算機が全項目を単純に調べ上げる際に膨大な時間を要する。
 このため、特許文献1のシステムでは、複数ユーザの各々についてそれぞれの興味集合を取得し、ユーザの各々についてそれぞれの興味集合のM個の最小ハッシュ値を決定し、複数ユーザの各々をそれぞれのユーザに対して確立されたそれぞれのM個のクラスタの各々に割り当ることで、レコメンデーション等を行う。
 特許文献1のシステムが、n-bitハッシュ関数をK個用いて、あるユーザの購買情報をあらわす2値のスカラ値を要素とするベクトル列(例えば、要素の値「0」は未購入、「1」は購入。以降、特徴ベクトルと呼称する。)を生成すると、特徴ベクトルのサイズはD=2n(K/n)次元となる。特許文献1において、次のような標準的なパラメータ(ハッシュ関数の個数K=100、ビット数n=32)を与えた場合、特徴ベクトルの次元数は429,496,729,600次元にも及ぶ。
 また、非特許文献1では、特徴ベクトルを下位b-bitに打ち切ることで次元削減を図る手法が提案されている。例えば、ハッシュ関数の個数K=100かつビット数n=32から生成された429,496,729,600次元の特徴ベクトルをb=2bitで打ち切りを行った場合、最終的な特徴ベクトルのサイズは200次元となる。
特開2013-033551号公報
Li, Ping, AND Arnd Christian Konig. "Theory AND applications of b-bit minwise hashing." Communications of the ACM 54.8 (2011)
 上述した特許文献1では、ハッシュ関数を用いて興味集合のM個の最小ハッシュ値を決定するが、特徴ベクトルの次元数が膨大になるため、計算処理に時間がかかるという問題がある。
 また、上述した非特許文献1では、特徴ベクトルを下位b-bitに打ち切ることで次元数が削減されるため、特許文献1に比べて計算処理時間は短縮化されるが、b-bit打ち切りにより、分析精度が低下するという問題がある。
 さらに、たとえば、薬剤などの購買情報により薬効を分析する用途では、売買の有無といった2値の項目情報だけではなく、薬剤の投薬回数や処方量などの多値や実数値を含む項目を扱う場合がある。しかしながら、特許文献1および非特許文献1のいずれも、分析対象の項目の値が多値や実数値を持つ場合の特徴ベクトル化が考慮されていない。
 本発明は、高速かつ高精度なデータ分析を可能にすることを目的とする。
 本願において開示される発明の一側面となるデータ分析装置、データ分析方法、およびデータ分析プログラムは、複数の第1データ項目の値を有する学習用入力データの集合である学習用入力データ群を前記記憶デバイスから取得する第1取得処理と、各々固有の第1ハッシュテーブルを生成することにより第1ハッシュ関数を複数個設定する第1設定処理と、前記第1取得処理によって取得された学習用入力データ群の各学習用入力データについて、前記第1設定処理によって設定された前記複数の第1ハッシュ関数の各々に与えることにより、前記複数の第1データ項目の値に対応する複数の第1ハッシュ値を前記第1ハッシュ関数ごとに算出する第1算出処理と、前記各学習用入力データについて、前記第1算出処理によって前記第1ハッシュ関数ごとに算出された前記複数の第1ハッシュ値の中から所定の統計的条件を満たす特定の第1ハッシュ値を前記第1ハッシュ関数ごとに選択する第1選択処理と、第2ハッシュテーブルを生成することにより第2ハッシュ関数を設定する第2設定処理と、前記各学習用入力データについて、前記第1選択処理によって前記第1ハッシュ関数ごとに選択された特定の第1ハッシュ値の各々を前記第2設定処理によって設定された第2ハッシュ関数に与えることにより、第2ハッシュ値を複数算出する第2算出処理と、前記第2算出処理によって算出された結果、前記特定の第1ハッシュ値の各々に対応する前記第2ハッシュ値を集約することにより、前記学習用入力データ群の特徴を示す学習用特徴ベクトルを生成する第1生成処理と、を実行することを特徴とする。
 本発明の代表的な実施の形態によれば、高速かつ高精度なデータ分析を可能にすることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1にかかる特徴ベクトルの生成例を示す説明図である。 図1に示した特徴量算出処理の詳細な処理例を示す説明図である。 データ分析システムのシステム構成例を示すブロック図である。 学習用データ集合の一例を示す説明図である。 予測用データ集合の一例を示す説明図である。 データ分析における設定画面例を示す説明図である。 実施例1にかかるデータ分析システムによるデータ分析処理手順例を示すフローチャートである。 図7に示した学習処理(ステップS702)の詳細な処理手順例を示すフローチャートである。 図8に示した学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例を示すフローチャートである。 図7に示した予測処理(ステップS705)の詳細な処理手順例を示すフローチャートである。 図10に示した予測用特徴ベクトル生成処理(ステップS1005)の詳細な処理手順例を示すフローチャートである。 実施例2にかかる特徴量算出処理HT1の詳細な処理例を示す説明図である。 実施例2にかかる特徴ベクトルの生成例を示す説明図である。 実施例2にかかる学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例を示すフローチャートである。 交差検証の実行例を示す説明図である。 実施例3にかかる学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例1を示すフローチャートである。 実施例3にかかる学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例2を示すフローチャートである。
 以下では、本発明の実施例について、適宜、図面を参照しながら詳細に説明する。また、実施例では、薬効分析を例に挙げて説明するが、薬効分析は一例であり、商品レコメンデーションやニュース記事の分析など様々な用途に適用される。
 図1は、実施例1にかかる特徴ベクトルの生成例を示す説明図である。既知である学習用入力データ群と学習用出力データ群が用意された場合、特徴ベクトルの生成が可能である。薬効分析の場合、学習用入力データ群は、たとえば、患者ごとに、性別、年齢、薬の処方量などのデータ項目を含む学習用因子データ群となる。また、学習用出力データ群は、たとえば、学習用因子データ群と同じ患者ごとに、寛解の見通し、白血球数(WBC)、赤血球数(RBC)、リンパ球数(Lymphocyte)、肝機能検査値(ALT)などを含む学習用診断データ群である。学習用因子データ群および学習用診断データ群としては、たとえば、病院における電子カルテやレセプトに記載された情報が用いられる。
 学習用因子データ群をDとすると、その各学習用因子データは、下記式(1)により表現され、学習用診断データ群をYとすると、その各学習用診断データは、下記式(2)により表現される。
 D={x |i∈I}・・・(1)
 Y={y |p∈P}・・・(2)
 nは学習用因子データ群Dおよび学習用診断データ群Yの各データに関する患者を特定する識別情報であり、n=1,2,…,Nである。iは、学習用因子データにおける性別(i=1)、年齢(i=2)、薬剤Aの処方量(i=3)、薬剤Bの処方量(i=4)、…などのデータ項目を特定する識別情報であり、i=1,2,…,Iである。pは、学習用診断データにおける寛解の見通し(p=1)、白血球数(p=2)、赤血球数(p=3)、…などのデータ項目を特定する識別情報であり、p=1,2,…,Pである。
 また、学習用特徴ベクトルは、患者ごとに生成される。n番目の患者の学習用特徴ベクトルをXとする。
 学習用特徴ベクトルXは、ある診断項目(たとえば、寛解の見通し)について患者に共通な学習パラメータwを求めるために生成される。具体的には、各学習用特徴ベクトルXが生成されると、各学習用特徴ベクトルXと、学習用因子データ群Dと、ある診断項目(たとえば、寛解の見通し)についての各患者の学習用診断データ列と、を用いて、Support Vector Machine(SVM)などの機械学習を実行することにより、学習パラメータwが算出される。そして、学習パラメータwと別の患者の因子データ群(以下、予測用因子データ群)とを用いることにより、ある診断項目(たとえば、寛解の見通し)についての別の患者の診断データ列を予測することができる。
 学習用特徴ベクトルXの生成では、ハッシュプール族Gが事前に生成される。ハッシュプール族Gは、下記式(3)に示すように、ハッシュプールGの集合である。
 G={G|m=1,2,…,M}・・・(3)
 各ハッシュプールGは、複数のハッシュ関数を含む。実施例1では、n=1かつm=1に注目して説明するが、n=2,…,N、m=2,…,Mについても同様な処理となる。
 ハッシュプールGについて、(A)特徴ベクトル化処理、(B)集約処理(Odd-filtering)を実行することにより、特徴ベクトルXが生成される。
 (A)特徴量算出処理では、特徴量算出処理HTk(k=1,2,…,K)が実行される。特徴量算出処理HTkは、それぞれ異なるハッシュ関数を用いて、学習用因子データDから、学習用因子データDの各データ項目の値に対応する特徴量を求め、その特徴量から最小値を選択する処理である。
 異なるハッシュ関数とは、ハッシュアルゴリズムが異なるハッシュ関数でもよく、ハッシュアルゴリズムが同一でも、内部で保持するハッシュテーブルが異なるハッシュ関数でもよい。なお、異なるハッシュ関数の各ハッシュ値のビット幅は同一(a-bit)である。aは、1以上の整数である。特徴量算出処理HTkでは、患者ごとに1個の最小値が得られる。
 (B)集約処理は、ハッシュ関数を用いて、(A)特徴量算出処理で得られた最小値を集約する。実施例1では、Odd-filteringによるモジュラ計算で集約される。Odd-filteringは、集約値である2値(0と1)がフリップを繰り返す処理である。ここでは、集約値を2値としたが、3値以上でもよい。なお、ここでのハッシュ関数は、ハッシュ値のビット幅がb-bitハッシュ関数であり、b個のハッシュ値が用意され、それぞれ集約値に対応する。bは、1以上の整数である。
 たとえば、学習用因子データDを用いた特徴量算出処理HT1で得られた最小値「6」は、b-bitハッシュ関数により生成されるハッシュテーブルのハッシュ値hb1~hb(b)のうち、ハッシュ値hb2に対応する。したがって、ハッシュ値hb2に対応する集約値は初期値の「0」から「1」にフリップされる。つぎに、学習用因子データDを用いた特徴量算出処理HT2で得られた最小値「4」も、ハッシュ値hb2に対応する。したがって、ハッシュ値hb2に対応する集約値は「1」から「0」にフリップされる。
 bの値を小さくするほど、同一ハッシュ値に衝突する可能性が高くなる。(B)集約処理では、この性質を利用して、(A)特徴量算出処理で得られた最小値を集約する。
 このように(B)集約処理が完了することにより、ハッシュ値hb1~hb(b)の集約値が配列したサブ特徴ベクトルx が生成される。ハッシュプールG~Gについても同様にして、サブ特徴ベクトルx ~x が生成される。そして、サブ特徴ベクトルx ~x を連結することにより、学習用因子データDの特徴を示す特徴ベクトルXが生成される。なお、学習用因子データD~Dについても同様にして、学習用因子データD~Dの特徴を示す特徴ベクトルX~Xが生成される。
 図2は、図1に示した特徴量算出処理HT1の詳細な処理例を示す説明図である。特徴量算出処理HT1では、各学習用因子データDからそれぞれ最小値が得られるが、ここでは、n=1の場合について説明する。
 特徴量算出処理HT1では学習用因子データDが与えられると、(A)正規化、(B)a-bitハッシュ計算、(C)重みづけ、(D)最小値選択が実行される。なお、学習用因子データDの性別、年齢、薬剤の処方量といったデータ項目には、一意の識別情報i(i=1,2,…,N)が割り当てられる。図2では、N=500,000とした。
 (A)正規化では、学習用因子データDにおけるデータ項目の値が正規化される。たとえば、データ項目が「年齢」のような多値の場合、データ項目の最大値、最小値を用いて、0以上1以下の値域となるように正規化する。
 データ項目が「薬剤の処方量」のような実数値の場合も、その薬剤の処方量が取りうる範囲を0以上1以下の範囲で正規化する。なお、データ項目が「性別」の場合、取りうる値は、例として男性(=1)と女性(=0)の2値であるため、正規化せずにそのまま利用される。
 (B)a-bitハッシュ計算は、正規化前の学習用因子データDの値が非0であるデータ項目を選択する。たとえば、i=1のデータ項目である性別の値が「女性」(=0)の場合、選択されないが、年齢の値は「13」であるため、選択される。正規化前の値が選択されたデータ項目については、再度jを用いて採番される。図2では、例として4000,000個のデータ項目が選択されたものとする。
 そして、(B)a-bitハッシュ計算は、上述したa-bitハッシュ関数により生成されたハッシュテーブルを用いて、正規化前の値が選択されたデータ項目の正規化後の値と、当該ハッシュテーブルにおいて、正規化前の値が選択されたデータ項目の識別情報に対応するハッシュ値hajと、を対応付ける。
 たとえば、正規化前の値「13(≠0)」が選択されたデータ項目「年齢」の正規化後の値「0.1」と、当該ハッシュテーブルにおいて、正規化前の値「13(≠0)」が選択されたデータ項目「年齢」の識別情報(j=1)に対応するハッシュ値ha1(=1000)と、が対応付けられる。
 (C)重みづけは、(B)a-bitハッシュ計算で対応付けられた正規化後の値と、対応するハッシュ値hajと、を乗算する。
 (D)最小値選択は、(C)重みづけで得られた値群の中から最小値を選択する。これにより、学習用因子データDから、学習用因子データDの各データ項目の値に対応する特徴量の最小値が得られる。なお、ここでは、最小値を選択することとしたが、最大値や中央値、平均値、ランダムな値などの他の統計的条件を満たす統計値でもよい。
 なお、図2の特徴量算出処理HT1では、学習用因子データDを用いた場合について説明したが、学習用因子データD~Dについても特徴量算出処理HT1が実行される。また、図2では、特徴量算出処理HT1について説明したが、他の特徴量算出処理HT2~HTKでも同様に実行される。
 このように、実施例1では、a-bitハッシュ関数を用いて、特徴量算出処理HTkにより学習用因子データDの各データ項目の値に対応する特徴量の最小値を算出し、b-bitハッシュ関数を用いて、最小値を集約するため、データ分析の高速化を実現することができる。
 また、学習用因子データDの正規化されたデータ項目の値をa-bitハッシュ関数で重みづけした特徴量の最小値を、Odd-filteringで集約することにより、学習用特徴ベクトルXが生成されるため、学習用特徴ベクトルXの各要素は、学習用因子データDの各データ項目の2値、多値、実数値が考慮された値となる。したがって、データ分析の高精度化を図ることができる。
 また、集約処理において、Odd-filteringで取りうる値を小さく設定することにより、省メモリ化を図ることができる。
 <システム構成例>
 図3は、データ分析システム3のシステム構成例を示すブロック図である。図3では、サーバ-クライアント型のデータ分析システム3を例に挙げて説明するが、スタンドアロン型でもよい。(A)は、データ分析システム3のハードウェア構成例を示すブロック図であり、(B)は、データ分析システム3の機能的構成例を示すブロック図である。(A)および(B)において同一構成には同一符号を付す。
 データ分析システム3は、クライアント端末300とサーバであるデータ分析装置320とがネットワーク310で通信可能に接続される構成である。
 (A)において、クライアント端末300は、補助記憶装置であるHDD(hard disk drive)301、主記憶装置であるメモリ302、プロセッサ303、キーボードやマウスである入力装置304、モニタ205を有する。データ分析装置320は、補助記憶装置であるHDD321、主記憶装置であるメモリ322、プロセッサ323、キーボードやマウスである入力装置324、モニタ325を有する。なお、主記憶装置、補助記憶装置、および、図示しない可搬型の記憶媒体を総称して、記憶デバイスと称す。
 (B)において、クライアント端末300は、クライアントデータベース(DB)351を有する。クライアントDB351は、HDD301やメモリ302などの記憶デバイスに格納される。クライアントDB351には、予測用データ集合352と、予測結果353と、が格納される。予測用データ集合352については図5を用いて後述する。予測結果353は、予測処理部362からネットワーク310経由で得られたデータである。なお、サーバ-クライアント型の場合、クライアント端末300は1台以上存在する。
 データ分析装置320は、学習処理部361と、予測処理部362と、サーバデータベース(DB)363と、を有する。学習処理部361は、図1および図2に示した処理を実行し、学習結果365を出力する機能部である。学習結果365には、上述した学習パラメータwが含まれる。学習処理部361の詳細な処理手順については、図7~図9を用いて後述する。
 予測処理部362は、学習結果365を用いて、図1および図2に示した処理を実行し、予測結果353をクライアント端末300に出力する機能部である。予測処理部362の詳細な処理手順については、図7、図10、図11を用いて後述する。学習処理部361および予測処理部362は、HDD321、メモリ322などの記憶デバイスに記憶されたプログラムをプロセッサ323に実行させることによりその機能を実現する。
 サーバDB363は、学習用データ集合364と、学習結果365と、を格納する。学習用データ集合364は、上述した学習用入力データ群(学習用因子データ群D)と、学習用出力データ群(学習用診断データ群Y)と、を含む。学習結果365は、学習処理部361からの出力データである。
 なお、データ分析装置320は複数台で構成されてもよい。たとえば、負荷分散のため、データ分析装置320が複数存在してもよい。また、データ分析装置320は、機能ごとに複数台で構成されてもよい。たとえば、学習処理部361およびサーバDB363を含む第1のサーバと、予測処理部362およびサーバDB363を含む第2のサーバとで構成されてもよい。また、また、学習処理部361および予測処理部362を含む第1のデータ分析装置と、サーバDB363を含む第2のデータ分析装置とで構成されてもよい。また、学習処理部361を含む第1のサーバと、予測処理部362を含む第2のデータ分析装置と、サーバDB363を含む第3のデータ分析装置とで構成されてもよい。
 <学習用データ集合>
 図4は、学習用データ集合364の一例を示す説明図である。学習用データ集合364は、学習用入力DB410と、学習用出力DB420と、を有する。学習用入力DB410は、学習用入力データ群(学習用因子データ群D)を格納するデータベースであり、学習用出力DB420は、学習用出力データ群(学習用診断データ群Y)を格納するデータベースである。
 学習用入力DB410は、データ項目として、ID400と、性別(i=1)401と、年齢(i=2)412と、薬剤A(i=3)413と、薬剤B(i=4)414と、…、薬剤Ω(i=500,000)415と、を有し、各データ項目の値の組み合わせにより、学習用因子データDを構成する。実施例1では学習用入力DB410のデータ項目iの総数Iを例としてI=500,000とした。
 ID400は、値として、分析対象である患者を一意に特定する数値n(=1,2,…,N)を格納するデータ項目である。性別(i=1)401には、値として、ダミー変数化処理により、ID400で特定されるnの性別を特定する数値(たとえば、女性なら「0」、男性なら「1」)が格納される。なお、データ項目の値が3値以上の多値の場合には、1-of-K表現(例えば、K個の要素のうちどれか1つだけ「1」を取り他は「0」)を用いた項目に変換される。
 年齢(i=2)412は、値として、数値nにより特定される患者の年齢を格納するデータ項目である。薬剤A(i=3)413、薬剤B(i=4)414、…、薬剤Ω(i=500,000)415は、それぞれ、値として、数値nにより特定される患者に処方された薬剤A,B,…,Ωの処方量(実数)が格納される。
 学習用出力DB420は、データ項目として、寛解の見通し(p=1)421と、白血球数(p=2)422と、赤血球数(p=3)423と、リンパ球数(p=4)424と、…、肝機能検査値(p=P)425と、を有し、各データ項目の値の組み合わせにより、学習用診断データYを構成する。
 寛解の見通し(p=1)421は、値として、数値nにより特定される患者の寛解の見通しを示す増悪(=1)、不変(=2)、軽減(=3)、寛解(=4)の4値のいずれかが格納されるデータ項目である。白血球数(p=2)422、赤血球数(p=3)423、リンパ球数(p=4)424、…、肝機能検査値(p=P)425は、値として、それぞれデータ項目に応じた実数値を格納するデータ項目である。
 <予測用データ集合>
 図5は、予測用データ集合の一例を示す説明図である。予測用入力DB510は、データ項目iとして、ID500と、性別(i=1)511と、年齢(i=2)912と、薬剤A(i=3)513と、薬剤B(i=4)514と、…、薬剤Ω(i=200,000)515と、を有し、各データ項目の値の組み合わせにより、予測用因子データD´n´を構成する。実施例1では学習用入力DB410のデータ項目iの総数I´を例としてI´=200,000とした。
 D´n´={xn´ |i∈I´}・・・(4)
 n´は、予測対象である患者を一意に特定する数値(n´=1,2,…,N´)である。また、予測用因子データD´n´の集合を予測用因子データ群D´とする。
 ID500は、値として、数値n´(=1,2,…,N´)を格納するデータ項目である。ID500の値は、ID400の値と異なる。すなわち、ID500で特定される患者と、ID400で特定される患者とは、異なる患者である。性別(i=1)511には、値として、ダミー変数化処理により、ID500で特定されるn´の性別を特定する数値(たとえば、女性なら「0」、男性なら「1」)が格納される。なお、データ項目の値が3値以上の多値の場合には、1-of-K表現(例えば、K個の要素のうちどれか1つだけ「1」を取り、他は「0」)を用いた項目に変換される。
 年齢(i=2)512は、値として、数値n´により特定される患者の年齢を格納するデータ項目である。薬剤A(i=3)513、薬剤B(i=4)514、…、薬剤Ω(i=200,000)515は、それぞれ、値として、数値n´により特定される患者に処方された薬剤A,B,…,Ωの処方量(実数)が格納される。
 学習用出力DB520は、データ項目として、寛解の見通し521と、白血球数522と、赤血球数(p=3)523と、リンパ球数524と、…、肝機能検査値525と、を有する。
 データ項目521~525の値は予測対象であるため値が格納されていない。データ項目521~525には、データ分析装置320の予測処理部362からの予測結果353がクライアント端末300により格納されることになる。
 <設定画面例>
 図6は、データ分析における設定画面例を示す説明図である。設定画面600は、たとえば、クライアント端末300のモニタ305またはデータ分析装置320のモニタ325により表示される。
 設定画面600は、ハッシュプール数入力欄601と、ハッシュ関数個数入力欄602と、a-bitハッシュ関数タイプ選択欄603と、b-bitハッシュ関数タイプ選択欄604と、a-bit幅入力欄605と、b-bit幅入力欄606と、を含む。
 ハッシュプール数入力欄601は、ハッシュプールGの個数(ハッシュプール数m)の最大値(総数)Mを入力する欄である。ハッシュ関数個数入力欄602は、a-bitハッシュ関数個数kの最大値(総数)Kを入力する欄である。
 a-bitハッシュ関数タイプ選択欄603は、a-bitハッシュ関数のタイプであるハッシュアルゴリズムを選択する欄である。例として、FNVやMurmurHash、MD5、SHA-2、SHA-3があり、ユーザ操作で選択可能である。図6では、MurmurHash631が選択されている。また、Random selection632は、上述したa-bitハッシュ関数のいずれかのハッシュアルゴリズムがランダムで選択される選択肢である。Random selection632が選択された場合、後述の処理(図8)において、ハッシュプール数mがインクリメントされる都度、上述したa-bitハッシュ関数のいずれかのハッシュアルゴリズムがランダムで選択される。
 b-bitハッシュ関数タイプ選択欄604は、b-bitハッシュ関数のタイプであるハッシュアルゴリズムを選択する欄である。例として、FNVやMurmurHash、MD5、SHA-2、SHA-3があり、ユーザ操作で選択可能である。図6では、FNV641が選択されている。また、Random selection642は、上述したb-bitハッシュ関数のいずれかのハッシュアルゴリズムがランダムで選択される選択肢である。Random selection642が選択された場合、後述の処理(図8)において、ハッシュプール数mがインクリメントされる都度、上述したb-bitハッシュ関数のいずれかのハッシュアルゴリズムがランダムで選択される。
 a-bit幅入力欄605は、a-bitハッシュ関数のハッシュ値のビット幅aを入力する欄である。b-bit幅入力欄606は、b-bitハッシュ関数のハッシュ値のビット幅bを入力する欄である。
 <データ分析処理手順例>
 図7は、実施例1にかかるデータ分析システム3によるデータ分析処理手順例を示すフローチャートである。まず、学習処理部361は、初期設定を実行する(ステップS700)。初期設定では、図6の設定画面600に各値が入力または選択される。なお、初期設定では、図6で図示されていないが、データ項目421~425から、予測対象となる予測値のいずれかのデータ項目も選択される。選択されたデータ項目の値の列を教師データと称す。
 つぎに、学習処理部361は、サーバDB363から学習用入力データ群(学習用因子データ群D)を取得する(ステップS701)。このとき、学習処理部361は、特徴ベクトルとして要素を持たない空の学習用特徴ベクトルXを生成する。そして、学習処理部361は、図1および図2に示したように、学習処理を実行する(ステップS702)。学習処理(ステップS702)の詳細については、図8で説明する。学習処理(ステップS702)により、学習結果365が出力される。そして、学習処理部361は、学習結果365をサーバDB363に保存する(ステップS703)。
 つぎに、予測処理部362は、クライアントDB351から予測用入力データ群(予測用因子データ群D´)を取得し、サーバDB363から学習結果365を取得する(ステップS704)。また、予測処理部362は、サーバDB363から教師データを取得する。たとえば、データ項目iとして寛解の見通し421が選択された場合、予測処理部362は、学習用出力データ群(学習用診断データ群Y)の寛解の見通し421について、ID400の値1~N(=300,000)までの値の列(軽減(=3)、不変(=2)、増悪(=1)、…、寛解(=4))である教師データy を取得する。また、予測処理部362は、特徴ベクトルとして要素を持たない空の予測用特徴ベクトルX´n´を生成する。
 そして、予測処理部362は、ステップS704で取得したデータを用いて、予測処理を実行する(ステップS705)。予測処理(ステップS705)の詳細については、図10で説明する。予測処理(ステップS705)により、予測結果353がクライアント端末300に出力される。
 クライアント端末300は、予測結果353をクライアントDB351に保存する(ステップS706)。予測結果353は、クライアントDB351に格納されている予測用データ集合352の学習用出力DB920に格納される。たとえば、予測対象となるいずれかのデータ項目iとして寛解の見通し421が選択された場合、予測結果353は、予測用因子データ群D´のID500の各値n´に対応する寛解の見通し421の予測値y´n´ である。
 図8は、図7に示した学習処理(ステップS702)の詳細な処理手順例を示すフローチャートである。まず、学習処理部361は、図2の(A)正規化で説明したように、学習用入力データ群(学習用因子データ群D)を正規化する(ステップS801)。
 具体的には、たとえば、学習処理部361は、各学習用因子データDについて、下記式(5)によりデータ項目ごとに正規化する。下記式(5)において、x は、正規化前におけるID400がnであるデータ項目iの値、x maxは、データ項目iの列の値x の最大値、x minは、データ項目iの列の値x の最小値、nor(x )は、x を正規化した値である。
Figure JPOXMLDOC01-appb-M000001
 また、学習用因子データDnの正規化後の学習用因子データnor(D)は、以下の通りである。
 nor(D)={nor(x )|i∈I}・・・(6)
 最大値x maxおよび最小値x minは正規化係数であり、学習処理部361は、正規化係数Z として保存する。
 Z ={(x min,x max)|i∈I}・・・(7)
 つぎに、学習処理部361は、ハッシュプール数mをm=1に設定し(ステップS802)、ハッシュプールGを生成する(ステップS803)。学習処理部361は、正規化後の学習用因子データnor(D)の各々について、b次元のゼロべクトルであるサブ特徴ベクトルx を生成する。
 つぎに、学習処理部361は、ハッシュプールGについて、b-bitハッシュ関数hを設定する(ステップS804)。b-bitハッシュ関数は、ランダム値をシードとしたハッシュ関数である。具体的には、たとえば、学習処理部361は、図6の設定画面600のb-bitハッシュ関数タイプ選択欄604で選択されたアルゴリズムを用いて、当該アルゴリズムに応じたハッシュテーブルを、ランダム値を用いて生成する。このハッシュテーブルは、ランダム値と、当該ランダム値をb-bitハッシュ関数に与えて得られたハッシュ値とを対応付けたテーブルとなる。ハッシュ値のハッシュ幅は、図6のb-bit幅入力欄606で入力された値となる。
 そして、学習処理部361は、図1および図2に示したように、学習用特徴ベクトル生成処理を実行する(ステップS805)。学習用特徴ベクトル生成処理(ステップS805)の詳細については図9で説明する。学習用特徴ベクトル生成処理(ステップS805)では、ハッシュプールGについて、学習用特徴ベクトルX が生成される。学習用特徴ベクトルX は、ハッシュプールGにおいて学習用因子データDの特徴を示す特徴ベクトルである。
 このあと、学習処理部361は、ハッシュプール数mがハッシュプール数mの最大値M以下であるか否かを判断する(ステップS806)。最大値M以下である場合(ステップS806:Yes)、学習処理部361はハッシュプールGを生成する必要があるため、ハッシュプール数mをインクリメントして(ステップS807)、ステップS803に戻る。
 一方、最大値M以下でない場合(ステップS806:No)、学習処理部361は、学習パラメータwを算出する(ステップS808)。学習パラメータwの算出(ステップS808)については、学習用特徴ベクトル生成処理(ステップS805)で生成される学習用特徴ベクトルX を用いるため、学習用特徴ベクトル生成処理(ステップS805)の説明後に詳細を説明する。
 これにより、学習処理部361は、学習処理(ステップS702)を終了し、ステップS703を実行する。
 図9は、図8に示した学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例を示すフローチャートである。まず、学習処理部361は、a-bitハッシュ関数個数kの初期値として、k=1を設定する(ステップS901)。
 つぎに、学習処理部361は、ハッシュプールGについて、a-bitハッシュ関数H を設定する(ステップS902)。a-bitハッシュ関数は、b-bitハッシュ関数と同様、ランダム値をシードとしたハッシュ関数である。具体的には、たとえば、学習処理部361は、図6の設定画面600のa-bitハッシュ関数タイプ選択欄603で選択されたアルゴリズムを用いて、当該アルゴリズムに応じたハッシュテーブルを、ランダム値を用いて生成する。このハッシュテーブルは、ランダム値と、当該ランダム値をa-bitハッシュ関数に与えて得られたハッシュ値とを対応付けたテーブルとなる。ハッシュ値のハッシュ幅は、図6のa-bit幅入力欄605で入力された値となる。この処理は、図2の(B)a-bitハッシュ計算に相当する処理である。
 なお、ハッシュプールG内において、m,kが一致するa-bitハッシュ関数H が生成された場合には、ハッシュプールG内において上書きされる。
 つぎに、学習処理部361は、ID400の値nをn=1に設定し(ステップS903)、項目値ペアS を生成する(ステップS904)。具体的には、たとえば、学習処理部361は、nor(x )の各々について、正規化前の値x が非0であるnor(x )を選択する。学習処理部361は、選択したnor(x )については、iをjで採番し、項目値ペアS を生成する。
 S ={j,nor(x )|j∈J⊆I s.t.x ≠0}・・・(8)
 つぎに、学習処理部361は、a-bitハッシュ値集合T を算出する(ステップS905)。具体的には、たとえば、学習処理部361は、a-bitハッシュ関数H を項目値ペアS に適用し、a-bitハッシュ値集合T を算出する。この処理は、図2の(C)重み付けに相当する処理である。
 T ={t |j∈J}・・・(9)
 t =H (j)×nor(x )・・・(10)
 そして、学習処理部361は、ステップS906で算出されたa-bitハッシュ値集合T の中から、最小値である最小ハッシュ値u を選択する(ステップS906)。この処理は、図2の(D)最小値選択に相当する処理である。
 つぎに、学習処理部361は、最小ハッシュ値u をb-bitハッシュ関数hに与えて、b-bitハッシュ値vを算出する(ステップS907)。
 そして、学習処理部361は、サブ特徴ベクトルx からステップS907で求めたv次元の値q(=qOLD)を取り出し、下記式(11)により、Odd-filteringによるモジュラ計算を実行する(ステップS908)。
 qNEW=mod(qOLD+1,2)・・・(11)
 そして、学習処理部361は、サブ特徴ベクトルx のv次元の値qOLDを、ステップS908で算出された値qNEWで上書き保存する(ステップS909)。すなわち、式(11)において基数を2にしたことで、v次元の要素は、「0」から「1」へ、または、「1」から「0」へのフリップを繰り返す。また、基数を2としたことで、v次元の値は「0」または「1」に集約されるため、省メモリ化を図ることができる。この処理は、図1の(B)に相当する処理である。
 このあと、学習処理部361は、ID400の値nが最大値N以下であるか否かを判断する(ステップS910)。最大値N以下である場合(ステップS910:Yes)、処理すべき未選択IDが存在するため、学習処理部361は、nをインクリメントして(ステップS911)、ステップS904に戻る。
 一方、nが最大値N以下でない場合(ステップS910:No)、学習処理部361は、a-bitハッシュ関数個数kが最大値K以下であるか否かを判断する(ステップS912)。最大値K以下である場合(ステップS912:Yes)、学習処理部361は、試行すべきa-bitハッシュ関数H が存在するため、a-bitハッシュ関数個数kをインクリメントし(ステップS913)、ステップS902に戻る。
 一方、kが最大値K以下でない場合(ステップS912:No)、学習処理部361は、下記式(12)により、特徴ベクトルXにサブ特徴ベクトルx をスタックすることで、特徴ベクトルXを更新する(ステップS914)。
 X=stack(X,x )・・・(12)
 なお、式(12)のstack関数は、ベクトルc=(c1,c2)、ベクトルd=(d1,d2)とした場合、下記式(13)にようにベクトルc、dを連結する関数である。
 stack(c,d)=(c1,c2,d1,d2)・・・(13)
 これにより、ID400の値nごとに、学習用特徴ベクトルXが生成され、学習処理部361は、学習用特徴ベクトル生成処理(ステップS805)を終了し、ステップS806を実行する。
 そして、図8に戻り、ステップS808では、学習パラメータwが算出される。具体的には、学習パラメータwは、y を教師データとすると、下記式(14)により算出される。
 y =f(X,w)・・・(14)
 教師データy は、たとえば、学習対象となるデータ項目iについて学習用出力データ群(学習用診断データ群Y)の寛解の見通し421が選択された場合、ID400の値1~N(=300,000)までの値の列(軽減(=3)、不変(=2)、増悪(=1)、…、寛解(=4))である。
 式(14)の関数fには、たとえば、識別関数が用いられる。識別関数の例としては、SVMやニューラルネットワークを用いた既知の関数が適用される。なお、薬剤の処方量といった量的データが教師データとして選択された場合、関数fには回帰関数が用いられる。例えば、既知のSVM回帰関数が用いられる。
 これにより、学習処理部361は、学習結果365として、式(7)に示した正規化係数Z 、学習パラメータw、およびハッシュプール族GをサーバDB363に保存する。ハッシュプール族Gには、生成済みのa-bitハッシュ関数H およびb-bitハッシュ関数hが含まれる。
 図10は、図7に示した予測処理(ステップS705)の詳細な処理手順例を示すフローチャートである。まず、予測処理部362は、予測用入力データ群(予測用因子データ群D´)を、ステップS801と同じ手法で正規化する(ステップS1001)。具体的には、たとえば、予測処理部362は、各予測用因子データD´n´について、下記式(15)によりデータ項目ごとに正規化する。下記式(15)において、x´n´ は、正規化前におけるID500がn´であるデータ項目iの値、x´n´ maxは、データ項目iの列の値x´n´ の最大値、x´n´ minは、データ項目iの列の値x´n´の最小値、nor(x´n´ )は、x´n´ を正規化した値である。
Figure JPOXMLDOC01-appb-M000002
 また、予測用因子データD´n´の正規化後の予測用因子データnor(D´n´)は、以下の通りである。
 nor(D´n´)={nor(x´n´ )|i∈I´}・・・(16)
 最大値x´n´ maxおよび最小値x´n´ minは正規化係数であり、予測処理部362は、正規化集合Z´n´ として保存する。
 Z´n´ ={(x´n´ min,x´n´ max)|i∈I´}・・・(17)
 つぎに、予測処理部362は、ハッシュプール数mをm=1に設定し(ステップS1002)、学習結果365に含まれているハッシュプール族GからハッシュプールGを取得する(ステップS1003)。予測処理部362は、正規化後の予測用因子データnor(D´n´)の各々について、b次元のゼロべクトルであるサブ特徴ベクトルx´n´ を生成する。
 つぎに、予測処理部362は、ハッシュプールGについて、学習結果365に含まれているハッシュプール族Gからb-bitハッシュ関数hを取得する(ステップS1004)。
 そして、予測処理部362は、図1および図2に示したように、予測用特徴ベクトル生成処理を実行する(ステップS1005)。予測用特徴ベクトル生成処理(ステップS1005)の詳細については図11で説明する。予測用特徴ベクトル生成処理(ステップS1005)では、ハッシュプールGについて、予測用特徴ベクトルX´n´ が生成される。予測用特徴ベクトルX´n´ は、ハッシュプールGにおいて予測用因子データD´n´の特徴を示す特徴ベクトルである。
 このあと、予測処理部362は、ハッシュプール数mがハッシュプール数mの最大値M以下であるか否かを判断する(ステップS1006)。最大値M以下である場合(ステップS1006:Yes)、予測処理部362はハッシュプールGを取得する必要があるため、ハッシュプール数mをインクリメントして(ステップS1007)、ステップS1003に戻る。
 一方、最大値M以下でない場合(ステップS1006:No)、予測処理部362は、予測値y´n´ を算出する(ステップS1008)。たとえば、予測対象となるいずれかのデータ項目iとして寛解の見通し421が選択された場合、予測処理部362は、予測用因子データ群D´のID500の各値n´に対応する寛解の見通し421の予測値y´n´ を算出する。予測値y´n´ の算出(ステップS1008)については、予測用特徴ベクトル生成処理(ステップS1005)で生成される予測用特徴ベクトルX´n´ を用いるため、予測用特徴ベクトル生成処理(ステップS1005)の説明後に詳細を説明する。
 これにより、予測処理部362は、予測処理(ステップS705)を終了し、ステップS706を実行する。
 図11は、図10に示した予測用特徴ベクトル生成処理(ステップS1005)の詳細な処理手順例を示すフローチャートである。まず、予測処理部362は、a-bitハッシュ関数個数kの初期値として、k=1を設定する(ステップS1101)。
 つぎに、予測処理部362は、学習結果365に含まれているハッシュプール族GからハッシュプールGのa-bitハッシュ関数H を取得する(ステップS1102)。
 つぎに、予測処理部362は、ID500の値n´をn´=1に設定し(ステップS1103)、項目値ペアS´n´ を生成する(ステップS1104)。具体的には、たとえば、予測処理部362は、nor(x´n´ )の各々について、正規化前の値x´n´ が非0であるnor(x´n´ )を選択する。予測処理部362は、選択したnor(x´n´ )については、iをjで採番し、項目値ペアS´n´ を生成する。
 S´n´ ={j,nor(x´n´ )|j∈J´⊆I´ s.t.x´n´ ≠0}・・・(18)
 つぎに、予測処理部362は、a-bitハッシュ値集合T´ を算出する(ステップS1105)。具体的には、たとえば、予測処理部362は、a-bitハッシュ関数H を項目値ペアS´n´ に適用し、a-bitハッシュ値集合T´ を算出する。この処理は、図2の(C)重み付けに相当する処理である。
 T´ ={t´ |j∈J´}・・・(19)
 t´ =H (j)×nor(x´n´ )・・・(20)
 そして、予測処理部362は、ステップS1106で算出されたa-bitハッシュ値集合T´ の中から、最小値である最小ハッシュ値u´ を選択する(ステップS1106)。この処理は、図2の(D)最小値選択に相当する処理である。
 つぎに、予測処理部362は、最小ハッシュ値u´ をb-bitハッシュ関数hに与えて、b-bitハッシュ値v´を算出する(ステップS1107)。
 そして、予測処理部362は、サブ特徴ベクトルx´n´ からステップS1107で求めたv´次元の値q´(=q´OLD)を取り出し、下記式(21)により、Odd-filtering計算を実行する(ステップS1108)。
 q´NEW=mod(q´OLD+1,2)・・・(21)
 そして、予測処理部362は、サブ特徴ベクトルx´n´ のv´次元の値q´OLDを、ステップS1108で算出された値q´NEWで上書き保存する(ステップS1109)。すなわち、式(21)において基数を2にしたことで、v´次元の要素は、「0」から「1」へ、または、「1」から「0」へのフリップを繰り返す。また、基数を2としたことで、v´次元の値は「0」または「1」に集約されるため、省メモリ化を図ることができる。この処理は、図1の(B)に相当する処理である。
 このあと、予測処理部362は、ID500の値n´が最大値N´以下であるか否かを判断する(ステップS1110)。最大値N´以下である場合(ステップS1110:Yes)、処理すべき未選択IDが存在するため、予測処理部362は、n´をインクリメントして(ステップS1111)、ステップS1104に戻る。
 一方、n´が最大値N以下でない場合(ステップS1110:No)、予測処理部362は、a-bitハッシュ関数個数kが最大値K以下であるか否かを判断する(ステップS1112)。最大値K以下である場合(ステップS1112:Yes)、予測処理部362は、試行すべきa-bitハッシュ関数H が存在するため、a-bitハッシュ関数個数kをインクリメントし(ステップS1113)、ステップS1102に戻る。
 一方、kが最大値K以下でない場合(ステップS1112:No)、予測処理部362は、上記式(12)、(13)で説明したstack関数を用いて、予測用特徴ベクトルX´n´にサブ特徴ベクトルx´n´ をスタックすることで、予測用特徴ベクトルX´n´を更新する(ステップS1114)。
 X´n´=stack(X´n´,x´n´ )・・・(22)
 これにより、ID500の値n´ごとに、予測用特徴ベクトルX´n´が生成され、予測処理部362は、予測用特徴ベクトル生成処理(ステップS1005)を終了し、ステップS1006を実行する。
 そして、図10に戻り、ステップS1008では、予測値y´n´ が算出される。具体的には、予測値y´n´ は、上記式(14)で示した関数fと、学習パラメータwおよび予測用特徴ベクトルX´n´を用いて、下記式(23)により算出される。
 y´n´ =f(X´n´,w)・・・(23)
 予測値y´n´ は、たとえば、データ項目iとして予測用出力データ群(予測用診断データ群Y´)の寛解の見通し421が選択された場合、ID500の値1~N(=300,000)までの予測値の列である。
 このように、実施例1によれば、データ数N、N´やデータ項目I,I´の数が膨大であっても、高速かつ省メモリで高精度なデータ分析が可能となる。また、データ項目I,I´の値が多値や実数値を持つ場合であっても、高速かつ省メモリで高精度なデータ分析が可能となる。
 実施例2では、実施例1の図1の(B)に示した集約処理において、Odd-filteringによるモジュラ計算に替えて、フォールディング計算を実行する例である。フォールディング計算は、データ項目iの値x を特徴ベクトルの値に累積加算する処理であり、これにより、データ分析システム3は、直接的に多値や実数値のデータ項目iを分析することができる。換言すれば、実施例1と比較して、計算機のメモリ消費量よりも、データ分析の精度を重視した構成例である。なお、実施例2の説明においては、実施例1との相違点を中心に説明し、実施例1と同一処理については説明を省略する。
 図12は、実施例2にかかる特徴量算出処理HT1の詳細な処理例を示す説明図である。図2に示した実施例1の特徴量算出処理HT1では、(B)a-bitハッシュ計算のあとに(C)重みづけを実行したが、実施例2では、(C)重みづけを実行せずに、(D)最小値選択が実行される。そのあと、特徴量算出処理HT1は、(E)(D)の最小値選択で選択された最小値を正規化する。(E)正規化は、(A)正規化と同じ計算方法で実行される。
 なお、図12の特徴量算出処理HT1では、学習用因子データDを用いた場合について説明したが、学習用因子データD~Dについても特徴量算出処理HT1が実行される。また、図12では、特徴量算出処理HT1について説明したが、他の特徴量算出処理HT2~HTKでも同様に実行される。
 図13は、実施例2にかかる特徴ベクトルの生成例を示す説明図である。図1に示した実施例1の特徴ベクトルの生成例では、(B)集約でOdd-filteringによるモジュラ計算を実行したが、実施例2の(B)集約では、フォールディング計算を実行する。
 フォールディング計算は、特徴量算出処理HTkからの出力である正規化済み最小値に対応するハッシュ値をb-bitハッシュ関数hにより求める。フォールディング計算では、ハッシュ値が同一の正規化済み最小値が累積加算される。
 たとえば、学習用因子データDを用いた特徴量算出処理HT1で得られた正規化済み最小値「0.4」は、b-bitハッシュ関数により生成されるハッシュテーブルのハッシュ値hb1~hb(b)のうち、ハッシュ値hb2に対応する。したがって、ハッシュ値hb2に対応する集約値は初期値の「0」に正規化済み最小値「0.4」が累積加算されて「0.4」になる。つぎに、学習用因子データDを用いた特徴量算出処理HT2で得られた正規化済み最小値「0.2」も、ハッシュ値hb2に対応する。したがって、ハッシュ値hb2に対応する集約値は「0.4」に正規化済み最小値「0.2」が加算されて「0.6」になる。
 bの値を小さくするほど、同一ハッシュ値に衝突する可能性が高くなる。(B)集約処理では、この性質を利用して、(A)特徴量算出処理で得られた最小値を集約する。
 このように(B)集約処理が完了することにより、ハッシュ値hb1~hb(b)の集約値が配列したサブ特徴ベクトルx が生成される。ハッシュプールG~Gについても同様にして、サブ特徴ベクトルx ~x が生成される。そして、サブ特徴ベクトルx ~x を連結することにより、学習用因子データDの特徴を示す学習用特徴ベクトルXが生成される。なお、学習用因子データD~Dについても同様にして、学習用因子データD~Dの特徴を示す学習用特徴ベクトルX~Xが生成される。
 <学習用特徴ベクトル生成処理(ステップS805)>
 図14は、実施例2にかかる学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例を示すフローチャートである。図9に示した実施例1にかかる学習用特徴ベクトル生成処理(ステップS805)と同一ステップには同一ステップ番号を付し、その説明を省略する。
 ステップS905のあと、学習処理部361は、図12の(B)最小値選択で示したように、a-bitハッシュ関数H で得られたa-bitハッシュ値群から最小値u を特定し、(E)正規化で示したように、最小値u を正規化して、正規化済み最小値α を算出する(ステップS1406)。
 このあと、学習処理部361は、正規化済み最小値α をb-bitハッシュ関数hに与えて、b-bitハッシュ値vを算出する(ステップS1407)。
 そして、学習処理部361は、サブ特徴ベクトルx からステップS1407で求めたv次元の値q(=qOLD)を取り出し、下記式(24)により、フォールディング計算を実行する(ステップS1408)。
 qNEW=qOLD+α ・・・(24)
 そして、学習処理部361は、サブ特徴ベクトルx のv次元の値qOLDを、ステップS1408で算出された値qNEWで上書き保存する(ステップS1409)。このように、b-bitハッシュ値が同一である正規化済み最小値α を累積加算することにより、学習用因子データDの特徴をより詳細に反映することができる。したがって、データ分析の高精度化を図ることができる。なお、この処理は、図13の(B)に相当する処理である。
 このように、実施例2では、a-bitハッシュ関数を用いて、特徴量算出処理HTkにより学習用因子データDの各データ項目の値に対応する特徴量の正規化済み最小値を算出し、b-bitハッシュ関数を用いて、正規化済み最小値を集約するため、データ分析の高速化を実現することができる。
 また、学習用因子データDの正規化済み最小値を、フォールディング計算で集約することにより、学習用特徴ベクトルXが生成されるため、学習用特徴ベクトルXの各要素は、学習用因子データDの各データ項目の2値、多値、実数値が考慮された値となる。したがって、データ分析の高精度化を図ることができる。
 また、集約処理において、フォールディング計算で正規化済み最小値を集約することにより、学習用因子データDの特徴をより詳細に表現することができる。したがって、データ項目の値が多値や実数値の場合に適しており、より高精度はデータ分析を実現することができる。
 実施例3は、実施例1および実施例2において生成されるサブ特徴ベクトルの高精度化を図る例である。具体的には、実施例3のデータ分析システム3は、学習処理(ステップS702)において、学習パラメータwを求める前に、分析精度が低くなるようなサブ特徴ベクトルを特定し、分析精度が一定以上になるまで、stack関数で当該サブ特徴ベクトルをスタックさせずに、学習用特徴ベクトル生成処理(ステップS805)を再実行する。
 これにより、サブ特徴ベクトルの分析精度が一定以上の学習用特徴ベクトルが生成されるため、高精度の学習パラメータwを算出することができる。このような高精度な学習パラメータwを予測処理(ステップS704)で用いることにより、予測値の精度向上を図ることができる。
 学習用特徴ベクトル生成処理(ステップS805)を再実行する仕組みとして、たとえば、交差検証が実行される。
 図15は、交差検証の実行例を示す説明図である。交差検証では、学習処理部361は、(1)分類、(2)学習パラメータ算出、(3)予測データ算出、(4)検証の順に実行する。
 (1)分類では、学習処理部361は、学習用因子データ群Dおよび学習用診断データ群Yをあるデータ項目iについて任意のID400でサンプリングすることで2つのグループに分類する。任意のIDでサンプリングした方の第1グループg1は、第1学習用因子データ群D1と第1教師データy1 とを含む。残余のID400である第2グループg2は、第2学習用因子データ群D1と第2教師データy2 とを含む。
 (2)学習パラメータ算出では、学習処理部361は、第1学習用因子データ群D1と第1教師データy1 とを、たとえば、SVMなどの識別器にあたえることにより、学習パラメータw1を算出する。なお、上述した図8のステップS808で示した処理を適用して、学習パラメータw1を算出してもよい。
 (3)予測データ算出では、学習処理部361は、図10のステップS1008で説明した場合と同様の処理により、学習パラメータw1と、第2学習用因子データ群D2とを用いて、予測データy2´ を算出する。
 (4)検証では、学習処理部361は、第2教師データy2 と予測データy2´ とを比較し、その差分を誤差としてnごとに算出する。そして、学習処理部361は、nごとの誤差の二乗和の平方根を求め、その逆数を予測精度として算出する。
 学習処理部361は、(1)でサンプリングするIDを替えて、(1)~(4)の処理を複数回実行する。そして、学習処理部361は、各々の回の(4)検証で得られた予測精度の平均値である平均予測精度を算出する。なお、予測精度の平均ではなく、予測精度の最大値、最小値、中央値、ランダムに選ばれた値など他の統計的条件を満たす統計値でもよい。以下では、例として平均予測精度として説明する。
 学習処理部361は、平均予測精度がしきい値を超えるまで、(2)学習パラメータ算出で算出された学習パラメータw1および予測データy2´ は、要求精度を満たしていないことになる。この場合は、学習処理部361は、b-bitハッシュ関数hおよびa-bitハッシュ関数H を再生成して、再度交差検証を実行することになる。
 図16は、実施例3にかかる学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例1を示すフローチャートである。図16は、図9に示した実施例1にかかる学習用特徴ベクトル生成処理(ステップS805)において交差検証を実行する処理手順例である。なお、図16において、図9と同一ステップには同一ステップ場号を付し、その説明を省略する。
 図17は、実施例3にかかる学習用特徴ベクトル生成処理(ステップS805)の詳細な処理手順例2を示すフローチャートである。図17は、図14に示した実施例2にかかる学習用特徴ベクトル生成処理(ステップS805)において交差検証を実行する処理手順例である。なお、図17において、図14と同一ステップには同一ステップ場号を付し、その説明を省略する。
 図16および図17において、ステップS912のあと、学習処理部361は、図15に示した交差検証を実行する(ステップS1614)。ハッシュプールGにおいて、交差検証で得られた平均予測精度をPとし、しきい値をThrとする。P≦Thrである場合(ステップS1615:Yes)、図8のステップS804に移行して、学習処理部361は、b-bitハッシュ関数を再生成する(ステップS804)し、再生成したb-bitハッシュ関数を用いて、図16(実施例1の場合)または図17(実施例2の場合)の学習用特徴ベクトル生成処理(ステップS805)を再実行する。
 このように、図16の学習用特徴ベクトル生成処理(ステップS805)によれば、実施例1において、交差検証が適用される。したがって、実施例1において信頼性の高い学習パラメータwを得ることができ、データ分析精度の向上を図ることができる。
 また、図17の学習用特徴ベクトル生成処理(ステップS805)によれば、実施例2において、交差検証が適用される。したがって、実施例2において信頼性の高い学習パラメータwを得ることができ、データ分析精度の向上を図ることができる。
 以上説明したように、本実施例によれば、データ項目の値により重み付けられたa-bitハッシュ関数により生成されたハッシュ値から、さらにb-bitハッシュ関数を用いて、b-bitハッシュ値を計算することで、特徴ベクトルの次元削減を実現する。これにより、高速かつ高精度なデータ分析をすることができる。また、データ項目の数が膨大であり、多値や実数値を持つ場合であっても、高速かつ省メモリで高精度なデータ分析が可能となる。
 なお、上述した実施例では、薬効分析を例に挙げて説明したが、商品レコメンデーションにも適用可能である。この場合、図4に示した学習用入力DB410のID400は、患者ではなく顧客を示し、データ項目411~415は、商品またはサービス(商品またはサービスのジャンルでもよい)を示し、その値は購入数または購入金額(商品の場合)や利用回数または利用金額(サービスの場合)を示す。また、学習用出力DB420のデータ項目421~425は、顧客の購入傾向や顧客の趣味などを示す嗜好の種類となる。予測用入力DB510および学習用出力DB520についても同様である。
 また、ニュース記事の分析の場合、図4に示した学習用入力DB410のID400は、新聞や雑誌、webページに掲載されたニュース記事を示し、データ項目411~415は、単語を示し、その値は単語の出現回数を示す。また、学習用出力DB420のデータ項目421~425は、政治、社会、スポーツ、天気といったニュース記事のジャンルとなる。予測用入力DB510および学習用出力DB520についても同様である。
 なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
 また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。

Claims (15)

  1.  記憶デバイスにアクセス可能なプロセッサが実行するデータ分析装置であって、
     前記プロセッサは、
     複数の第1データ項目の値を有する学習用入力データの集合である学習用入力データ群を前記記憶デバイスから取得する第1取得処理と、
     各々固有の第1ハッシュテーブルを生成することにより第1ハッシュ関数を複数個設定する第1設定処理と、
     前記第1取得処理によって取得された学習用入力データ群の各学習用入力データについて、前記第1設定処理によって設定された前記複数の第1ハッシュ関数の各々に与えることにより、前記複数の第1データ項目の値に対応する複数の第1ハッシュ値を前記第1ハッシュ関数ごとに算出する第1算出処理と、
     前記各学習用入力データについて、前記第1算出処理によって前記第1ハッシュ関数ごとに算出された前記複数の第1ハッシュ値の中から所定の統計的条件を満たす特定の第1ハッシュ値を前記第1ハッシュ関数ごとに選択する第1選択処理と、
     第2ハッシュテーブルを生成することにより第2ハッシュ関数を設定する第2設定処理と、
     前記各学習用入力データについて、前記第1選択処理によって前記第1ハッシュ関数ごとに選択された特定の第1ハッシュ値の各々を前記第2設定処理によって設定された第2ハッシュ関数に与えることにより、第2ハッシュ値を複数算出する第2算出処理と、
     前記第2算出処理によって算出された結果、前記特定の第1ハッシュ値の各々に対応する前記第2ハッシュ値を集約することにより、前記学習用入力データ群の特徴を示す学習用特徴ベクトルを生成する第1生成処理と、
     を実行することを特徴とするデータ分析装置。
  2.  前記プロセッサは、
     前記各学習用入力データについて、前記複数の第1データ項目の値に基づいて、当該第1データ項目の値に対応する前記第1のハッシュ値の各々を重み付けする第1重み付け処理を実行し、
     前記第1選択処理では、前記プロセッサは、前記各学習用入力データについて、前記第1重み付け処理による複数の重み付き第1ハッシュ値の中から前記所定の統計的条件を満たす特定の重み付き第1ハッシュ値を前記第1ハッシュ関数ごとに選択し、
     前記第2算出処理では、前記プロセッサは、前記各学習用入力データについて、前記第1選択処理によって前記第1ハッシュ関数ごとに選択された特定の重み付き第1ハッシュ値の各々を前記第2ハッシュ関数に与えることにより、前記第2ハッシュ値を複数算出し、
     前記第1生成処理では、前記プロセッサは、前記第2算出処理によって算出された結果、前記特定の重み付き第1ハッシュ値の各々に対応する前記第2ハッシュ値を、odd-filteringを用いて集約することにより、前記学習用特徴ベクトルを生成することを特徴とする請求項1に記載のデータ分析装置。
  3.  前記第1生成処理では、前記プロセッサは、前記第2算出処理によって算出された結果、前記特定の第1ハッシュ値の各々に対応する前記第2ハッシュ値を、フォールディング計算を用いて集約することにより、前記学習用特徴ベクトルを生成することを特徴とする請求項1に記載のデータ分析装置。
  4.  前記第1取得処理では、前記プロセッサは、さらに、前記学習用入力データの各々に対応し、かつ、複数の第2データ項目の値を有する学習用出力データの集合である学習用出力データ群における、前記複数の第2データ項目の中のいずれかの第2データ項目の値の集合である教師データを取得し、
     前記プロセッサは、
     前記第1生成処理によって生成された学習用特徴ベクトルと、前記第1取得処理によって取得された教師データと、を用いて、前記学習用入力データ群から前記教師データを出力するための学習パラメータを算出する学習パラメータ算出処理を実行することを特徴とする請求項1~3のいずれか1つに記載のデータ分析装置。
  5.  前記学習パラメータ算出処理では、前記プロセッサは、前記教師データが2値である場合、前記学習用特徴ベクトルと、前記教師データと、を識別関数に与えることにより、前記学習パラメータを算出することを特徴とする請求項4に記載のデータ分析装置。
  6.  前記学習パラメータ算出処理では、前記プロセッサは、前記教師データが多値または実数値である場合、前記学習用特徴ベクトルと、前記教師データと、を回帰関数に与えることにより、前記学習パラメータを算出することを特徴とする請求項4に記載のデータ分析装置。
  7.  前記プロセッサは、
     前記第2算出処理の実行後から前記第1生成処理を実行するまでの間に、前記学習用入力データ群と複数の第2データ項目の値を有する学習用出力データの集合である学習用出力データ群とを用いた交差検証処理を実行し、前記交差検証処理により得られる予測精度がしきい値を超えるまで、前記第1設定処理、前記第1算出処理、前記第1選択処理、前記第2設定処理、および、前記第2算出処理を再実行し、前記交差検証処理により前記予測精度が前記しきい値を超えた場合、前記第1生成処理を実行し、
     前記交差検証処理では、前記プロセッサは、
     前記学習用入力データ群の中の第1学習用入力データ群と、前記学習用出力データ群の中の前記第1学習用入力データ群に対応する第1学習用出力データ群における、いずれかの第2データ項目の値の集合である第1教師データと、用いて、前記第1学習用入力データ群から前記第1教師データを出力するための第1学習パラメータを算出し、
     前記学習用入力データ群の中の第1学習用入力データ群以外の第2学習用入力データと、前記第1学習パラメータと、を用いて、前記いずれかの第2データ項目の予測データを算出し、
     前記学習用出力データ群の中の第2学習用入力データ群に対応する第2学習用出力データ群における、前記いずれかの第2データ項目の値の集合である第2教師データと、前記予測データと、を比較することにより、前記予測データに関する前記予測精度を算出し、
     前記予測精度が前記しきい値以下であるか否かを検証することを特徴とする請求項1~3のいずれか1つに記載のデータ分析装置。
  8.  前記プロセッサは、
     前記複数の第1データ項目の値を有する予測用入力データの集合である予測用入力データ群を前記記憶デバイスから取得する第2取得処理と、
     前記第2取得処理によって取得された予測用入力データ群の各予測用入力データについて、前記複数の第1ハッシュ関数の各々に与えることにより、前記複数の第1データ項目の値に対応する複数の第3ハッシュ値を前記第1ハッシュ関数ごとに算出する第3算出処理と、
     前記各予測用入力データについて、前記第3算出処理によって前記第1ハッシュ関数ごとに算出された前記複数の第3ハッシュ値の中から前記所定の統計的条件を満たす特定の第3ハッシュ値を前記第1ハッシュ関数ごとに選択する第2選択処理と、
     前記各予測用入力データについて、前記第2選択処理によって前記第1ハッシュ関数ごとに選択された特定の第3ハッシュ値の各々を前記第2ハッシュ関数に与えることにより、第4ハッシュ値を複数算出する第4算出処理と、
     前記第4算出処理によって算出された結果、前記特定の第3ハッシュ値の各々に対応する前記第4ハッシュ値を集約することにより、前記予測用入力データ群の特徴を示す予測用特徴ベクトルを生成する第2生成処理と、
     を実行することを特徴とする請求項4に記載のデータ分析装置。
  9.  前記プロセッサは、
     前記各予測用入力データについて、前記複数の第1データ項目の値に基づいて、当該第1データ項目の値に対応する前記第1ハッシュ値の各々を重み付けする第2重み付け処理を実行し、
     前記第2選択処理では、前記プロセッサは、前記各予測用入力データについて、前記第2重み付け処理による複数の重み付き第3ハッシュ値の中から前記所定の統計的条件を満たす特定の重み付き第3ハッシュ値を前記第1ハッシュ関数ごとに選択し、
     前記第4算出処理では、前記プロセッサは、前記各予測用入力データについて、前記第2選択処理によって前記第1ハッシュ関数ごとに選択された特定の重み付き第3ハッシュ値の各々を前記第2ハッシュ関数に与えることにより、前記第4ハッシュ値を複数算出し、
     前記第2生成処理では、前記プロセッサは、前記第4算出処理によって算出された結果、前記特定の重み付き第3ハッシュ値の各々に対応する前記第4ハッシュ値を、odd-filteringを用いて集約することにより、前記予測用特徴ベクトルを生成することを特徴とする請求項8に記載のデータ分析装置。
  10.  前記第2生成処理では、前記プロセッサは、前記第4算出処理によって算出された結果、前記特定の第3ハッシュ値の各々に対応する前記第4ハッシュ値を、フォールディング計算を用いて集約することにより、前記予測用特徴ベクトルを生成することを特徴とする請求項8に記載のデータ分析装置。
  11.  前記プロセッサは、
     前記第2生成処理によって生成された予測用特徴ベクトルと、前記学習パラメータと、を用いて、前記いずれかの第2データ項目の予測値を算出する予測値算出処理を実行することを特徴とする請求項8に記載のデータ分析装置。
  12.  前記予測値算出処理では、前記プロセッサは、前記教師データが2値である場合、前記第2生成処理によって生成された予測用特徴ベクトルと、前記学習パラメータと、を識別関数に与えることにより、前記いずれかの第2データ項目の予測値を算出することを特徴とする請求項11に記載のデータ分析装置。
  13.  前記予測値算出処理では、前記プロセッサは、前記教師データが多値または実数値である場合、前記第2生成処理によって生成された予測用特徴ベクトルと、前記学習パラメータと、を回帰関数に与えることにより、前記いずれかの第2データ項目の予測値を算出することを特徴とする請求項11に記載のデータ分析装置。
  14.  記憶デバイスにアクセス可能なプロセッサが実行するデータ分析方法であって、
     前記データ分析方法は、
     前記プロセッサが、
     複数の第1データ項目の値を有する学習用入力データの集合である学習用入力データ群を前記記憶デバイスから取得する第1取得処理と、
     各々固有の第1ハッシュテーブルを生成することにより第1ハッシュ関数を複数個設定する第1設定処理と、
     前記第1取得処理によって取得された学習用入力データ群の各学習用入力データについて、前記第1設定処理によって設定された前記複数の第1ハッシュ関数の各々に与えることにより、前記複数の第1データ項目の値に対応する複数の第1ハッシュ値を前記第1ハッシュ関数ごとに算出する第1算出処理と、
     前記各学習用入力データについて、前記第1算出処理によって前記第1ハッシュ関数ごとに算出された前記複数の第1ハッシュ値の中から所定の統計的条件を満たす特定の第1ハッシュ値を前記第1ハッシュ関数ごとに選択する第1選択処理と、
     第2ハッシュテーブルを生成することにより第2ハッシュ関数を設定する第2設定処理と、
     前記各学習用入力データについて、前記第1選択処理によって前記第1ハッシュ関数ごとに選択された特定の第1ハッシュ値の各々を前記第2設定処理によって設定された第2ハッシュ関数に与えることにより、第2ハッシュ値を複数算出する第2算出処理と、
     前記第2算出処理によって算出された結果、前記特定の第1ハッシュ値の各々に対応する前記第2ハッシュ値を集約することにより、前記学習用入力データ群の特徴を示す学習用特徴ベクトルを生成する第1生成処理と、
     を実行することを特徴とするデータ分析方法。
  15.  記憶デバイスにアクセス可能なプロセッサに、
     複数の第1データ項目の値を有する学習用入力データの集合である学習用入力データ群を前記記憶デバイスから取得する第1取得処理と、
     各々固有の第1ハッシュテーブルを生成することにより第1ハッシュ関数を複数個設定する第1設定処理と、
     前記第1取得処理によって取得された学習用入力データ群の各学習用入力データについて、前記第1設定処理によって設定された前記複数の第1ハッシュ関数の各々に与えることにより、前記複数の第1データ項目の値に対応する複数の第1ハッシュ値を前記第1ハッシュ関数ごとに算出する第1算出処理と、
     前記各学習用入力データについて、前記第1算出処理によって前記第1ハッシュ関数ごとに算出された前記複数の第1ハッシュ値の中から所定の統計的条件を満たす特定の第1ハッシュ値を前記第1ハッシュ関数ごとに選択する第1選択処理と、
     第2ハッシュテーブルを生成することにより第2ハッシュ関数を設定する第2設定処理と、
     前記各学習用入力データについて、前記第1選択処理によって前記第1ハッシュ関数ごとに選択された特定の第1ハッシュ値の各々を前記第2設定処理によって設定された第2ハッシュ関数に与えることにより、第2ハッシュ値を複数算出する第2算出処理と、
     前記第2算出処理によって算出された結果、前記特定の第1ハッシュ値の各々に対応する前記第2ハッシュ値を集約することにより、前記学習用入力データ群の特徴を示す学習用特徴ベクトルを生成する第1生成処理と、
     を実行させることを特徴とするデータ分析プログラム。
PCT/JP2015/077796 2015-02-18 2015-09-30 データ分析装置、データ分析方法、およびデータ分析プログラム WO2016132588A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/550,508 US11138515B2 (en) 2015-02-18 2015-09-30 Data analysis device, data analysis method, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015029606A JP6334431B2 (ja) 2015-02-18 2015-02-18 データ分析装置、データ分析方法、およびデータ分析プログラム
JP2015-029606 2015-02-18

Publications (1)

Publication Number Publication Date
WO2016132588A1 true WO2016132588A1 (ja) 2016-08-25

Family

ID=56688863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/077796 WO2016132588A1 (ja) 2015-02-18 2015-09-30 データ分析装置、データ分析方法、およびデータ分析プログラム

Country Status (3)

Country Link
US (1) US11138515B2 (ja)
JP (1) JP6334431B2 (ja)
WO (1) WO2016132588A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020035395A (ja) * 2018-08-31 2020-03-05 株式会社リコー 学習方法、プログラムおよび学習装置
JP2021099791A (ja) * 2019-11-20 2021-07-01 楽天グループ株式会社 直接型ニューラルネットワーク構造を用いてアイテムを推奨するシステム、方法、及びコンピュータプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3621022A1 (en) 2018-09-07 2020-03-11 Delta Electronics, Inc. Data analysis method and data analysis system thereof
CN110889034A (zh) * 2018-09-07 2020-03-17 台达电子工业股份有限公司 数据分析方法及数据分析系统
US20210374229A1 (en) * 2020-05-28 2021-12-02 Mcafee, Llc Methods and apparatus to improve detection of malware in executable code
KR102565874B1 (ko) * 2021-06-07 2023-08-09 주식회사 카카오헬스케어 기계학습을 위한 의료데이터의 벡터화 방법, 이를 구현한 데이터 변환 장치 및 데이터 변환 프로그램
US20230409537A1 (en) * 2022-06-16 2023-12-21 Red Hat, Inc. Distributed storage system with machine learning model for selecting a hash function to map a data item to a storage device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013033551A (ja) * 2005-08-15 2013-02-14 Google Inc 集合の類似性に基づく拡張性に富むユーザクラスタリング
JP2014203289A (ja) * 2013-04-05 2014-10-27 キヤノン株式会社 ハッシュ値生成装置、システム、判定方法、プログラム、記憶媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6028567B2 (ja) * 2012-12-28 2016-11-16 富士通株式会社 データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
US10318882B2 (en) * 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
US9495655B2 (en) * 2014-09-27 2016-11-15 International Business Machines Corporation Cross-domain multi-attribute hashed and weighted dynamic process prioritization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013033551A (ja) * 2005-08-15 2013-02-14 Google Inc 集合の類似性に基づく拡張性に富むユーザクラスタリング
JP2014203289A (ja) * 2013-04-05 2014-10-27 キヤノン株式会社 ハッシュ値生成装置、システム、判定方法、プログラム、記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020035395A (ja) * 2018-08-31 2020-03-05 株式会社リコー 学習方法、プログラムおよび学習装置
JP7243084B2 (ja) 2018-08-31 2023-03-22 株式会社リコー 学習方法、プログラムおよび学習装置
JP2021099791A (ja) * 2019-11-20 2021-07-01 楽天グループ株式会社 直接型ニューラルネットワーク構造を用いてアイテムを推奨するシステム、方法、及びコンピュータプログラム

Also Published As

Publication number Publication date
US11138515B2 (en) 2021-10-05
US20180032910A1 (en) 2018-02-01
JP2016151932A (ja) 2016-08-22
JP6334431B2 (ja) 2018-05-30

Similar Documents

Publication Publication Date Title
JP6334431B2 (ja) データ分析装置、データ分析方法、およびデータ分析プログラム
Bolón-Canedo et al. Feature selection for high-dimensional data
Fan et al. Challenges of big data analysis
Kosinski et al. Mining big data to extract patterns and predict real-life outcomes.
Li et al. Project success prediction in crowdfunding environments
EP2866421B1 (en) Method and apparatus for identifying a same user in multiple social networks
Chin Regression adjustments for estimating the global treatment effect in experiments with interference
US20130262478A1 (en) System, apparatus, and method for recommending items
CN111080360B (zh) 行为预测方法、模型训练方法、装置、服务器及存储介质
Dempster et al. Hydra: Competing convolutional kernels for fast and accurate time series classification
CN110147502B (zh) 基于大数据分析的产品推荐方法、装置、介质及服务器
Beh et al. Multiple and multiway correspondence analysis
Yang et al. Categorical omega with small sample sizes via bayesian estimation: An alternative to frequentist estimators
EP4085332A1 (en) Creating predictor variables for prediction models from unstructured data using natural language processing
Raval et al. A semiparametric discrete choice model: An application to hospital mergers
Fursov et al. Sequence embeddings help detect insurance fraud
Wen et al. Integrated neural network model with pre-RBF kernels
CN114511387A (zh) 产品推荐方法、装置、电子设备及存储介质
Perrier Effective Amazon machine learning
Zheng et al. Marginal structural models with counterfactual effect modifiers
CN106649748B (zh) 信息推荐方法及装置
CN110288444B (zh) 实现用户相关推荐的方法和系统
CN112529636A (zh) 商品推荐方法、装置、计算机设备及介质
CN116150185A (zh) 基于人工智能的数据标准提取方法、装置、设备及介质
US20210133853A1 (en) System and method for deep learning recommender

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15882689

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15882689

Country of ref document: EP

Kind code of ref document: A1