Patent Publication Number: US-11651050-B2

Title: Methods and systems to predict parameters in a database of information technology equipment

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is a continuation of application Ser. No. 15/898,238, filed Feb. 16, 2018. 
    
    
     TECHNICAL FIELD 
     This disclosure is directed to computational systems and methods for predicting parameters in a database of information technology equipment. 
     BACKGROUND 
     In recent years, enterprises have shifted much of their computing needs from enterprise owned and operated computer systems to cloud-computing providers. Cloud-computing providers charge enterprises for use of information technology (“IT”) services over a network, such as storing and running an enterprise&#39;s applications on the hardware infrastructure, and allow enterprises to purchase and scale use of IT services in much the same way utility customers purchase a service from a public utility. IT services are provided over a cloud-computing infrastructure made up of geographically distributed data centers. Each data center comprises thousands of server computers, switches, routers, and mass data-storage devices interconnected by local-area networks, wide-area networks, and wireless communications. 
     Because of the tremendous size of a typical data center, cloud-computing providers rely on automated IT financial management tools to determine cost of IT services, project future costs of IT services, and determine the financial health of a data center. A typical automated management tool determines current and projected cost of IT services based on a reference database of actual data center equipment inventory and corresponding invoice data. But typical management tools do not have access to the latest invoice data for data center equipment. Management tools may deploy web automated computer programs, called web crawling agents, that automatically collect information from a variety of vendor web sites and write the information to the reference database. However, agents are not able to identify errors in web pages and may not be up-to-date with the latest format changes to web sites. As a result, agents often write incorrect information regarding data center equipment to reference databases. Management tools may also compute approximate costs of unrecorded equipment based on equipment currently recorded in a reference database. For example, the cost of an unrecorded server computer may be approximated by computing a mean cost of server computers recorded in the reference database with components that closely match the components of the unrecorded server computer and assigning the mean cost as the approximate cost of the unrecorded server computer. However, this technique for determining the cost of data center equipment typically is unreliable with errors ranging from as low as 12% to as high as 45%. Cloud-computing providers and data center managers seek more accurate tools to determine cost of IT equipment in order to more accurately determine the cost of IT services and project future cost of IT services. 
     SUMMARY 
     Methods and system described herein may be used to predict parameters in a dataset of an identified piece of IT equipment stored in a reference library database. An automated method identifies datasets in the reference library database in the same category of IT equipment as a piece of IT equipment identified as having incomplete or inaccurate dataset information. Each dataset comprises configuration parameters, non-parametric information, and cost of each piece of IT equipment of a data center. The non-parametric information in each dataset is encoded into encoded parameters that represent the non-parametric information. The configuration parameters, encoded parameters, and cost of each piece of IT equipment in the category are identified as equipment parameters. Each set of equipment parameters corresponds to a data point in a multi-dimensional space. Clustering is applied to the data points to determine classes of IT equipment such that each piece of IT equipment in the category belongs to one of the classes. A generalized linear model is computed for each class of IT equipment based on the equipment parameters of the IT equipment in the class. Methods then determine the class of the identified piece of IT equipment as the minimum of squared distances between equipment parameters of the identified piece of IT equipment and the equipment parameters in each class. A predicted equipment parameter of the identified piece of IT equipment is computed using the generalized linear model associated with the class of IT equipment the identified piece of IT equipment belongs to. The predicted equipment parameter can be used to complete the dataset of the identified piece of IT equipment. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
         FIG.  1    shows a portion of an example data center. 
         FIG.  2    shows a general architectural diagram for various types of computers. 
         FIG.  3    shows example data sets of a reference library database of IT equipment deployed in a data center. 
         FIG.  4    shows an example of encoding non-parametric information of a server computer data set. 
         FIG.  5    shows the server computer data sets with non-parametric information replaced by encoded parameters. 
         FIG.  6    shows an example plot of data points in a multidimensional space for a category of IT equipment. 
         FIGS.  7 A- 7 C  shows an example of k-means clustering. 
         FIGS.  8 A- 8 B  show an example application of Gaussian clustering applied to a cluster identified in  FIG.  7 C . 
         FIGS.  9 A- 9 B  show an example application of Gaussian clustering applied to a cluster identified in  FIG.  7 C . 
         FIG.  10    shows a set of data points with five clusters. 
         FIG.  11    shows the clusters of  FIG.  10    partitioned into training data represented by solid black dots and validation data represented by open dots. 
         FIG.  12 A  shows configuration and encoded parameters for sets of training data. 
         FIG.  12 B- 12 C  show systems of equations formed from the regressor parameters associated with the training data displayed in  FIG.  12 A . 
         FIG.  13    shows five clusters of data points with corresponding predictor coefficients and link functions. 
         FIG.  14    shows a control-flow diagram of a method to predict parameters in a reference library of IT equipment of a data center. 
         FIG.  15    shows a control-flow diagram of the routine “classify clusters of IT equipment” called in  FIG.  14   . 
         FIG.  16    shows a control-flow diagram of the routine “test cluster for Gaussian fit” called in  FIG.  15   . 
         FIG.  17    shows a control-flow diagram for the routine “determine model for each class of IT equipment” called in  FIG.  14   . 
         FIG.  18    shows a control-flow diagram for the routine “identify class of discovered IT equipment” called in  FIG.  14   . 
     
    
    
     DETAILED DESCRIPTION 
       FIG.  1    shows a portion of an example data center  100 . The data center  100  includes a management server  101  and a PC  102  on which a management interface may be displayed to system administrators and other users. The data center  100  additionally includes server computers and mass-storage arrays interconnected via switches that form three local area networks (“LANs”)  104 - 106 . For example, the LAN  104  comprises server computers  107 - 114  and mass-storage array  116  interconnected via Ethernet or optical cables to a network switch  118 . Network switches  119  and  120  each interconnect eight server computers and mass-storage storage arrays  121  and  122  of LANs  105  and  106 , respectively. In this example, the data center  100  also includes a router  124  that interconnects the LANs  104 - 106  to the Internet, the virtual-data-center management server  101 , the PC  102  and to other routers and LANs of the data center  100  (not shown) represented by ellipsis  126 . The router  124  is interconnected to other routers and switches to form a larger network of server computers and mass-storage arrays. 
     There are many different types of computer-system architectures deployed in a data center. System architectures differ from one another in the number of different memories, including different types of hierarchical cache memories, the number of processors and the connectivity of the processors with other system components, the number of internal communications busses and serial links, and in many other ways.  FIG.  2    shows a general architectural diagram for various types of computers. The computer system contains one or multiple central processing units (“CPUs”)  202 - 205 , one or more electronic memories  208  interconnected with the CPUs by a CPU/memory-subsystem bus  210  or multiple busses, a first bridge  212  that interconnects the CPU/memory-subsystem bus  210  with additional busses  214  and  216 , or other types of high-speed interconnection media, including multiple, high-speed serial interconnects. These busses or serial interconnections, in turn, connect the CPUs and memory with specialized processors, such as a graphics processor  218 , and with one or more additional bridges  220 , which are interconnected with high-speed serial links or with multiple controllers  222 - 227 , such as controller  227 , that provide access to various different types of mass-storage devices  228 , electronic displays, input devices, and other such components, subcomponents, and computational devices. It should be noted that computer-readable data-storage devices include optical and electromagnetic disks, electronic memories, and other physical data-storage devices. 
     Data sets of component information, non-parametric information and costs associated with each piece of IT equipment deployed in a data center are stored in a reference library database.  FIG.  3    shows example data sets of a reference library database of IT equipment deployed in a data center. In this example, the reference library database comprises server computer data sets  301 , network switch data sets  302 , data-storage device data sets  303 , and router data sets  304 . Note that, in practice, a reference library database may also include data sets for workstations, desktop computers, and any other IT equipment of the data center. Each data set corresponds to one piece of IT equipment deployed in the data center and comprises a list of components of the IT equipment, configuration parameters of components, cost of certain components, date or purchase, non-parametric information, and overall cost of the piece of IT equipment. For example, database table  306  comprises a list of components  308  and component costs  309  for Server Computer ( 1 ). The associated configuration parameters are denoted by X n,m , where the subscript n represents the IT equipment index and the subscript m represents the data set entry index. For example, X 1,1  represents the numerical value of CPU capacity in bits per cycle and X 1,2  represents the number of cores in the CPU, such as 2, 4, 6, or 8 cores. Each data set also includes entries of non-parametric information denoted by Z. An entry of non-parametric information comprises textual descriptions or a combination of parameters, letters, and symbols. For example, the non-parametric information of the Server Computer (I) is a date or purchase  310 , vendor name, make, and model  311 . The total cost of a piece of IT equipment is denoted by Y n . 
     A piece of IT equipment to be deployed in the data center or already deployed in the data center may have incomplete dataset information. The identified piece of IT equipment can be server computer, a workstation, a desktop computer, a network switch, or a router. Methods and system described below predict parameters in a dataset of the identified piece of IT equipment based on datasets of the same category of IT equipment stored in a reference library database. Datasets of IT equipment that are in the same category of IT equipment as the identified piece of IT equipment are determined. Non-parametric information entries in each dataset are identified and encoded into numerical values called “encoded parameters.” 
       FIG.  4    shows an example of encoding non-parametric information of a server computer data set  402 . Examples of non-parametric information are entered for the date of purchase  404 , vendor  405 , make  406 , and model  407 . Non-parametric entries are first tokenized by identifying non-parametric entries  408  comprising tokens separated by non-printed characters, called “white spaces.” A token is a numerical character, non-numerical character, combination of numerical and non-numerical characters, and punctuation. Tokens are identified by underlining. Next, token recognition is applied to each token to identify any tokens that correspond to recognized proper names, such as the name of a vendor and name of a manufacture. Recognized tokens are replaced  410  with unique pre-selected numerical values. For example, a month name or abbreviation token, such as “Jun” in a date of purchase entry is replaced by the numerical value  6 , the vendor name, “Acme Computers.” is replaced by the numerical value  500 , and the maker, “Ace manufacturer.” is replaced by the numerical value  4000 . Next, non-parametric characters in the unrecognized tokens are identified as indicated by hash-marked shading  412 - 414 . The identified non-parametric characters are deleted  418 . Finally, punctuation and white spaces are deleted to obtain numerical values  420  called encoded parameters.  FIG.  4    and the description represent one or many techniques that may be used to encode non-parametric information into encoded parameters. 
       FIG.  5    shows the server computer data sets  301  of  FIG.  3    with non-parametric information replaced by encoded parameters. Dashed lines  502  represent encoding applied to the non-parametric information of each server computer data set as described above with reference to  FIG.  4   , to obtain server computer data sets  504  with encoded parameters that represent corresponding non-parametric information. The thirteen configuration, cost, and encoded parameters form an ordered set of numerical values called a 13-tuple associated with a server computer.  FIG.  5    shows the configuration, cost, and encoded parameters of the server computers ( 1 ), ( 2 ), and ( 3 ) represented by three 13-tuples denoted by    1 ,    2 , and    3 , respectively. Each 13-tuple of configuration, cost, and encoded parameters of a server computer is a point in 13-dimensional space. The configuration parameters, cost, and encoded parameters are called, in general, “equipment parameters.” 
     In general, an M-tuple of equipment parameters associated with a piece of IT equipment corresponds to a data point in an M-dimensional space. Let N be the number of pieces of IT equipment of the same category deployed in a data center. The categories of IT equipment include server computers, workstations, routers, network switches, data-storage devices or any other type of equipment deployed in a data center. The M-tuples of V pieces of the IT equipment form N data points in the MA-dimensional space. 
       FIG.  6    shows an example plot of N data points in an M-dimensional space of a category of IT equipment. Each dot, such as dot  602 , represents an M-tuple of ordered equipment parameters given by:
 
   n =( X   n,1   ,X   n,2   , . . . ,X   n,M   ,Y   n )  (1)
 
     where n=1, 2, . . . , N. 
     The full set of data points associated with the category of IT equipment is given by:
 
 X={     n } n=1   N   (2)
 
     As shown in the Example of  FIG.  6   , the dots appear grouped together into four or five clusters. Each cluster of data points comprises similar IT equipment. Gaussian clustering is applied to the full set of data points X to determine different classes within the category of IT equipment. Gaussian clustering extends k-means clustering to determine an appropriate number of clusters. Gaussian clustering begins with a small number, k, of cluster centers and iteratively increases the number of cluster centers until the data in each cluster is distributed in accordance with a Gaussian distribution about the cluster center. The number of initial clusters can be set to a few as one. K-means clustering is applied to the full set of data points X for cluster centers denoted by {   j } j=1   k . The locations of the k cluster centers are recalculated with each iteration to obtain k clusters. Each data point    n  is assigned to one of the k clusters defined by:
 
 C   i   (m) ={   n :|   n −   i   (m) |≤|   n −   j   (m)   |∀j, 1≤ j≤k}   (3)
 
     where
         C i   (m)  is the i-th cluster i=1, 2, . . . , k; and   m is an iteration index m=1, 2, 3, . . . .       

     The value of the cluster center    i   (m)  is the mean value of the data points in the i-th cluster, which is computed as follows: 
     
       
         
           
             
               
                 
                   
                     
                       q 
                       ⇀ 
                     
                     i 
                     
                       ( 
                       
                         m 
                         + 
                         1 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       1 
                       
                          
                         
                           C 
                           i 
                           
                             ( 
                             m 
                             ) 
                           
                         
                          
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           
                             
                               X 
                               ⇀ 
                             
                             n 
                           
                           ∈ 
                           
                             C 
                             i 
                             
                               ( 
                               m 
                               ) 
                             
                           
                         
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           X 
                           ⇀ 
                         
                         n 
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
         
         
           
             where |C i   (m) | is the number of data points in the i-th cluster. 
           
         
       
    
     For each iteration m, Equation (3) is used to determine if a data points    n  belongs to the i-th cluster followed by computing the cluster center according to Equation (4). The computational operations represented by Equations (3) and (4) are repeated for each value of m until the data points assigned to the k clusters do not change. The resulting clusters are represented by:
 
 C   i ={   p } p   N     i     (5)
 
     where
         N is the number of data points in the cluster C i ;   i=1, 2, . . . , k;   p is a cluster data point subscript; and   x=C 1 ∪C 2 ∪ . . . ∪C k .
 
The number of data points in each cluster sums to N (i.e., N=N 1 +N 2 + . . . +N k )
       

       FIG.  7 A  shows an example of locations for an initial set of k=4 cluster centers represented by squares  701 - 704 . The four cluster centers  701 - 704  may be placed anywhere within the M-dimensional space. K-means clustering as described above with reference to Equation (3) and (4) is applied until each of the data points have been assigned to one of four clusters.  FIG.  7 B  shows a snapshot of an intermediate step in k-means clustering in which the cluster centers have moved from initial locations  701 - 704  to intermediate locations represented by squares  706 - 709 , respectively.  FIG.  7 C  shows a final clustering of the data points into four clusters  711 - 714  with cluster centers  716 - 719  located at the center of each of the four clusters for k-mean clustering with k=4. Dot-dash lines  720 - 723  have been added to mark separation between the four clusters  711 - 714 . 
     Each cluster is then tested to determine whether the data assigned to a cluster are distributed according to a Gaussian distribution about the corresponding cluster center. A significance level, a, is selected for the test. For each cluster C i , two child cluster centers are initialized as follows:
 
   i   + =   i +   (6a)
 
   i   − =   i −   (6b)
 
In one implementation, the vector   is an M-dimensional randomly selected vector with the constraint that the length ∥ ∥ is small compared to distortion in the data points of the cluster. In another implementation, principle component analysis is applied to data points in the cluster C i  to determine the eigenvector.   with the largest eigenvalue λ. The eigenvector   points in the direction of greatest spread in the cluster of data points and is identified by the corresponding largest eigenvalue λ. In this implementation, the vector  = √{square root over (2λ/π)}.
 
     K-means clustering, as described above with reference to Equations (3) and (4), is then applied to data points in the cluster C i  for the two child cluster centers    i   +  and    i   − . The two child cluster centers are relocated to identify two sub-clusters of the original cluster C i . When the final iteration of k-means clustering applied to data points in the cluster C i  is complete, the final relocated child cluster centers are denoted by    i   + ′ and    i   − ′, and M-dimensional vector is formed between the relocated child cluster centers    i   + ′ and    i   − ′ as follows:
 
 =   i   + ′−   i   − ′  (7)
 
The data points in the cluster C i  are projected onto a line defined by the vector   as follows:  
 
                     X   p   ′     =           X   ⇀     p     ·     v   ⇀              v   ⇀                    (   8   )               
A set of projected data points
 
 C′   i   ={X′   p } p   N     i     (9)
 
The projected data points lie along the vector  . The projected data points are transformed to zero mean and a variance of one by applying Equation (10) as follows:
 
                     X     (   p   )     ′     =         X   p   ′     -   μ     V             (   10   )               
The mean of the projected data points is given by
 
                   μ   =       1     N   i       ⁢       ∑   p     N   i       ⁢           ⁢     X   p   ′                 (   11   )               
The variance of the projected data points is given by:
 
     
       
         
           
             
               
                 
                   V 
                   = 
                   
                     
                       1 
                       
                         N 
                         i 
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         p 
                         
                           N 
                           i 
                         
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             
                               X 
                               p 
                               ′ 
                             
                             - 
                             μ 
                           
                           ) 
                         
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
           
         
       
     
     The set of projected data points with zero mean and variance of one is given by:
 
 C′   (i)   ={X′   (p) } p   N     i     (13)
 
The cumulative distribution function for a normal distribution with zero mean and variance one. N(0,1), is applied to the projected data points in Equation (13) to compute a distribution of projected data points:
 
                     Z     (   i   )       =       {     z   p     }     p     N   i               (   14   )             where                           z   p     =       1   2     ⁡     [     1   +     erf   ⁢           ⁢     (       X     (   p   )     ′       2       )         ]                               
A statistical test value is computed for the distribution of projected data points:
 
                       A   *   2     ⁡     (     Z     (   i   )       )       =       A   ⁡     (     Z     (   i   )       )       ⁢     (     1   +     4     N   i       -     25     N   i   2         )               (   15   )             where                           A   ⁡     (     Z     (   i   )       )       =         -     1     N   i         ⁢       ∑     p   =   1       N   i       ⁢           ⁢       (       2   ⁢   p     -   1     )     ⁡     [       ln   ⁡     (     z   p     )       +     ln   ⁡     (     1   -     z       N   i     +   1   -   p         )         ]           -     N   i                               
When the statistical test value is less than the significance level represented by the condition
 
 A   *   2 ( Z   (i) )&lt;α  (16)
 
the relocated child cluster centers    i   + ′ and    i   − ′ are rejected and the original cluster center    i  is accepted. On the other hand, when the condition in Equation (16) is not satisfied, the original cluster center    i  is rejected and the relocated child cluster centers    i   + ′ and    i   − ′ are accepted as the cluster centers of two sub-clusters of the original cluster.
 
       FIGS.  8 A- 9 B  show application of Gaussian clustering to the clusters  712  and  714  shown in  FIG.  7 C .  FIG.  8 A  shows an enlargement of the cluster  712  in  FIG.  7 C . Hexagonal shapes  802  and  804  represent initial coordinate locations of two child cluster centers determined as described above with reference to Equations (6a) and (6b). K-means clusters is applied to the data points in the cluster  712  for k=2, as described above with reference to Equations (3) and (4).  FIG.  8 B  shows child cluster centers  806  and  808  that result from application of k-means clustering. Line  810  is a line in the direction of a vector   formed between the two child cluster centers  806  and  808  as described above with reference to Equation (7). Dotted directional arrows represent projection of the data points onto the line  810  as described above with reference to Equation (8). In this example, when the cumulative distribution function for zero mean and variance one of Equation (14) is applied to the cluster of projected data points along the line  810 , the statistical test value would satisfy the condition given by Equation (16) because the data are not Gaussian distributed about the two child cluster centers  806  and  808 . As a result, the two child cluster centers  806  and  808  would be rejected and the original cluster center  717  would be retained as the cluster center of the cluster  712 . 
       FIG.  9 A  shows an enlargement of the cluster  714  in  FIG.  7 C . Hexagonal shapes  902  and  904  represent initial coordinate locations of two child cluster centers determined as described above with reference to Equations (6a) and (6b). K-means clusters is applied to the data points in the cluster  714  for k=2, as described above with reference to Equations (3) and (4).  FIG.  9 B  shows child cluster centers  906  and  908  that result from the application of k-means clustering. Line  910  is a line in the direction of a vector   formed between the two child cluster centers  906  and  908  as described above with reference to Equation (7). Dotted directional arrows represent projecting the data points onto the line  910  as described above with reference to Equation (8). In this example, when the cumulative distribution function for zero mean and variance one of Equation (14) is applied to the cluster of projected data points along the line  910 , the statistical test value would not satisfy the condition given by Equation (16) because the data points are Gaussian distributed about the two child cluster centers  906  and  908 . As a result, the two child cluster centers  806  and  808  would be retained to form two new clusters  912  and  914  that result from applying k-means clustering to the two cluster centers  906  and  908 . Dot-dash line  916  marks separation between the clusters  912  and  914 . The same procedure would then be applied separately to the clusters  912  and  914 . 
       FIG.  10    shows the full set of data points X clustered into five clusters  711 - 713 ,  912 , and  914  obtained with Gaussian clustering. Each cluster of data points represents a different class of IT equipment within the larger category of IT equipment. For example, if the data points represent ordered equipment parameters of server computers of a data center, then each cluster represents a different class in the category of server computers. The classes represented by the clusters  711 ,  712 ,  713 ,  912 , and  914  may be extra small, small, medium, large, and extra-large server computers based on each server&#39;s equipment parameters. The configuration parameters of extra-large server computers may be represented by data points in the cluster  914 . Extra-large server computers have the highest CPU capacity, largest number of cores, largest amount of memory, and most network cards of the server computers in the data center. At the other end of the spectrum of server computers, the configuration parameters of extra-small server computers may be represented by data points in the cluster  711 . Extra-small server computers have the lowest CPU capacity, fewest cores per CPU, least amount of memory, and fewest network cards. Clusters  712 ,  713 , and  912  represent clusters with different combinations of CPU capacity, number of cores, amount of memory, and number of network cards. 
     Each cluster N i  of data points is partitioned into training data with L data points and validation data with N i −L data points, with the validation data set having fewer data points. Each cluster may be partitioned by randomly selecting data points to serve as training data while the remaining data points are used as validation data. For example, in certain implementations, each cluster of data points may be partitioned into 70% training data and 30% validation data. In other implementations, each cluster of data points may be partitioned into 80% training data and 20% validation data. In still other implementations, each cluster of data points may be partitioned into 90% training data and 10% validation data.  FIG.  11    shows the five clusters of  FIG.  10    partitioned into 70% training data represented by solid black dots and 30% validation data represented by open dots. 
     The L training data points are used to construct a generalized linear model for each class (i.e., cluster) of IT equipment.  FIG.  12 A  shows equipment parameters for L sets of training data. The L sets of training data are randomly selected from the N i  data points of a class of IT equipment, as described above with reference to  FIG.  11   . The known equipment parameters of each data point in the training data are referred to as “regressor parameters.” The values Y 1 , Y 2 , . . . , Y L  are called response parameters that depend on the regressor parameters. For example, consider the class of medium size server computers discussed above. The regressor parameters in the tables of  FIG.  12 A  are configuration and encoded parameters of L sets of training data of L medium server computers. Examples of the different values the response parameters Y 1 , Y 2 , . . . , Y L  can represent include costs, amount of memory, CPU capacity, and number of cores of the L medium server computers. 
     A generalized linear model is represented by
 
 h (μ l )=β 0 +β 1   X   l,1 +β 2   X   l,2 + . . . +β M   X   l,M   (17)
 
     where
         β 0 , β 1 , β 2 , . . . , β M  are predictor coefficients:   X l,1 , X l,2 , . . . , X l,M  represent regressor parameters of the l-th data point set of L training data:   μ l  is a linear predictor for the i-th class of IT equipment; and   h(⋅) is a link function that links the linear predictor, predictor coefficients, and the regressor parameters.
 
 FIG.  12 B  shows a system of equations formed from the regressor parameters associated with each set of training data as described above with reference to Equation (17). Each equation comprises the same set of predictor coefficients and corresponds to one set of the training data shown in  FIG.  12 A .  FIG.  12 C  shows the system of equations of  FIG.  12 B  rewritten in matrix form. A link function is determined from the training data for each cluster.
       

     The response parameters Y 1 , Y 2 , . . . , Y L  are dependent variables that are distributed according to a particular distribution, such as the normal distribution, binomial distribution. Poisson distribution, and Gamma distribution, just to name a few. The linear predictor is the expected value of the response parameter given by:
 
μ l   =E ( Y   l )  (18)
 
Examples of link functions are listed in the following Table:
 
                                                 Link Function   η l  = h(u l )   μ l  = h −1 (η l )                          Identity   μ l     μ l             Log   ln(μ l )   e h(μ     l     )             Inverse   μ l   −1     h(μ l ) −1             Inverse-square   μ l   −2     h(μ l ) −1/2             Square-root   √{square root over (μ l )}   h(μ l ) 2                          
For example, when the response parameters are distributed according to a Poisson distribution, the link function is the log function. When the response parameters are distributed according to a Normal distribution, the link function is the identity function.
 
     The system of equations in  FIGS.  12 B and  12 C  is solved separately for each cluster to obtain a corresponding set of predictor coefficients.  FIG.  13    shows the five clusters  711 - 713 ,  912 , and  914  of data points and corresponding predictor coefficients β 0   i , β 1   i , β 2   i , . . . , β M   i  and link functions h i , where superscript cluster index i=1, . . . , 5. For each cluster, the predictor coefficients can be iteratively determined with the r-th iteration given by:
 
β m   (r+1) =β m   (r)   +S (β m   (r) ) E ( H (β m   (r) ))  (19)
 
     where
         m=1, . . . , M;   S(β m   (r) ) is a Taylors expansion of β m   (r) ; and   H(β m   (r) ) is the Hessian matrix of β m   (r) .   After the
 
The predictor coefficients can be computed iteratively using iterative weighted least squares. The validation data is used to validate the iteratively computed prediction parameters. Consider a set of predictor coefficients β 1   j , β 2   j , . . . , β M   j  obtained for the j-th cluster using the training data of the j-th cluster. Let the validation data for a validation data point in the j-th cluster be represented by the regressors X 1   j , X 2   j , . . . , X M   j  and a response parameter Y j . The regressors are substituted into the generalized linear model to obtain an approximate response parameter as follows:
 
 Y   0   j   =h   −1 (β 0   j +β 1   j   X   1   j +β 2   j   X   2   j + . . . +β M   j   X   M   j   (20a)
       

     where Y 0   j  is the approximate response parameter of the actual response parameter Y j . 
     The operation of Equation (20a) is repeated for the regressors of each of the N j −L validation data points in the j-th cluster to obtain a set of corresponding approximate response parameters
 
 {right arrow over (Y)}   0   ={Y   0   1   ,Y   0   2   , . . . ,Y   0   N     j     -L }
 
The set of actual response parameters of the regressors in the validation data are given by
 
 ={ Y   1   ,Y   2   , . . . ,Y   N     j     -L }
 
When the approximate response parameters for the validation data satisfy the condition
 
∥ − ∥&lt;ε  (20b)
 
     where
         ∥⋅∥ is the Euclidean distance; and   ε is an acceptable threshold (e.g., e=0.01).
 
the iteratively determined predictor coefficients of the cluster are acceptable for use in computing an unknown response parameter of an identified piece of IT equipment that belongs to the cluster.
       

     The predictor coefficients and link function can be used to compute an unknown response parameter of an identified piece of IT equipment in a category of IT equipment. For each class of IT equipment, a sum of square distances is computed from the known regressor parameters of the identified piece of IT equipment to the regressor parameters of each piece of IT equipment in each class as follows: 
     
       
         
           
             
               
                 
                   
                     D 
                     i 
                   
                   = 
                   
                     
                       ∑ 
                       
                         n 
                         = 
                         1 
                       
                       
                         N 
                         i 
                       
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                          
                         
                           
                             
                               X 
                               ⇀ 
                             
                             u 
                           
                           - 
                           
                             
                               
                                 X 
                                 ⇀ 
                               
                               n 
                               i 
                             
                             / 
                             
                               Y 
                               n 
                               i 
                             
                           
                         
                          
                       
                       2 
                     
                   
                 
               
               
                 
                   ( 
                   21 
                   ) 
                 
               
             
           
         
       
     
     where
         ∥⋅∥ 2  is the square Euclidean distance in an M-dimensional space:       n   i /Y n   i  is the n-th data point in the cluster C i  without the known response parameter Y n   i ; and       u =(X 1   u , X 2   u , . . . , X M   u ) is an M-tuple of the known regressor parameters for the piece of IT equipment.
 
The square distances between the identified piece of IT equipment with an unknown response is denoted by {D 1 , D 2 , . . . , D N }. The square distance can be rank ordered to determine the minimum square distance in the set of square distances denoted by:
 
 D   j =min{ D   1   ,D   2   , . . . ,D   N }  (22)
       

     The identified piece of IT equipment belongs to the class of IT equipment with data points in the j-th cluster C j . An approximation of the unknown response parameter of the piece of IT equipment is computed from the predictor coefficients of the j-th cluster C j  as follows:
 
 {tilde over (Y)}=h   −1 (β 0   j +β 1   j   X   1   u +β 2   j   X   2   u + . . . +β M   j   X   M   u )  (23)
 
For example, suppose configuration and encoded parameters are known for a server computer, but the cost the server computer is unknown.
 
       FIG.  14    shows a control-flow diagram of a method to predict parameters in a reference library of IT equipment of a data center. In block  1401 , identify datasets in a reference library database of IT equipment of a data center in a same category as a piece of IT equipment identified as having incomplete or inaccurate dataset information. In block  1402 , datasets of configuration parameters, non-parametric information, and cost of each piece of IT equipment of the same category are read from the reference library database, as described above with reference to  FIG.  3   . In block  1403 , non-parametric information in each dataset is encoded to obtain encoded parameters or values that represent the non-parametric information, as described above with reference to  FIG.  4   . In block  1404 , form equipment parameters from the configuration parameters, non-parametric information, and cost for each piece of IT equipment, as described above with reference to  FIG.  5   . The equipment parameters of each piece of IT equipment corresponds to a data point in an M-dimensional space, as described above with reference to  FIG.  6   . In block  1405 , a routine “determine clusters of equipment parameters” is called to cluster the data points that correspond to equipment parameters, as described above with reference to  FIGS.  7 A- 7 C . The IT equipment with equipment parameters (i.e., data points) in the same cluster are identified as being of the same class of IT equipment within the overall category of IT equipment as described above with reference to  FIG.  10   . In block  1406 , a routine “determine model for each class of IT equipment” is called to compute a generalized linear model that characterizes the IT equipment within each class of IT equipment based on the equipment parameters of each class of IT equipment, as described above with reference to  FIGS.  11  and  12   . In block  1407 , a routine “determine class of identified  1 T equipment” is called to determine which of the classes of IT equipment the identified piece of IT equipment belongs to as described above with reference to Equation (19). In block  1408 , a predicted equipment parameter is computed to complete the dataset of the identified IT equipment using the generalized linear model associated with the class of IT equipment the identified IT equipment belongs to. 
       FIG.  15    shows a control-flow diagram of the routine “determine clusters of equipment parameters” called in block  1405  of  FIG.  14   . In block  1501 , an initial set of cluster centers is received. The initial set of cluster centers are predetermined and may be initial to one (i.e., k=1). In block  1502 , k-mean clustering is applied to the data points to determine clusters of data points as described above with reference to Equations (3) and (4). A loop beginning with block  1503  repeats the computational operations represented by blocks  1504 - 1506  for each cluster determined in step  1502 . In block  1504 , a routine “test cluster for Gaussian fit” is called to test cluster of data points for a fit to a Gaussian distribution. In decision block  1504 , if the cluster identified in block  1504  is Gaussian, control flows to block  1507 . Otherwise, control flows to block  1506  in which the cluster center of the cluster of data points is replaced by two child cluster centers obtained in block  1504 . In decision block  1507 , if all clusters identified in block  1502  have been considered, control flows to decision block  1508 . In decision block  1508 , if any cluster centers have been replaced by two child cluster centers, control flows to block  1502 . 
       FIG.  16    shows a control-flow diagram of the routine “test cluster for Gaussian fit” called in block  1504  of  FIG.  15   . In block  1601 , two child cluster centers are determined for the cluster based on the cluster center in accordance with Equations (6a) and (6b). In block  1602 , k-means clustering is applied to the cluster using the child cluster centers to identify two clusters within the cluster, each cluster having one of the relocated child cluster centers. In block  1603 , compute a vector that connects the relocated two child cluster centers in accordance with Equation (7). In block  1604 , the data points of the cluster are projected onto a line defined by the vector in accordance with Equation (8). In block  1605 , the projected cluster data points are transformed to data points with a mean zero and variance one as described above with reference to Equations (10)-(12). In block  1606 , the normal cumulative distribution function with zero mean and variance one is applied to the projected data points as described above with reference to Equation (14) to obtain a distribution of projected data points. In block  1607 , a statistical test value is computed from the distribution of projected data points according to Equation (15). In decision block  1608 , when the statistical test value is greater than a critical threshold, as described above with reference to Equation (16), control flows block  1610 . Otherwise, control flows to block  1609 . In block  1609 , the cluster is identified as non-Gaussian and two relocated child cluster centers are used to replace the original cluster center. In block  1610 , the cluster is identified as Gaussian and two relocated child cluster centers are rejected and the original cluster center is retained. 
       FIG.  17    shows a control-flow diagram for the routine “determine model for each class of IT equipment” called in block  1406  of  FIG.  14   . A loop beginning with block  1701  repeats the computational operation of block  1702  for each cluster determined in block  1405  of  FIG.  14   . In block  1702 , iteratively computer predictor coefficients, as described above with reference to Equation (19). In block  1703 , compute approximate response using generalized linear model with validation data to obtain approximate equipment parameter, as described above with reference to Equation (20a). In decision block  1704 , when the condition of Equation (20b) is satisfied for the approximate equipment parameter and the equipment parameter of the validation data, control flow to decision block  1706 . Otherwise, control flows to block  1705 . In block  1705 , the predictor coefficients are discarded. In decision block  1706 , controls flow back to block  1702  for another cluster. 
       FIG.  18    shows a control-flow diagram for the routine “determine class of identified IT equipment” called in block  1407  of  FIG.  14   . In block  1801 , non-parametric information of the identified piece of IT equipment is encoded as described above with reference to  FIG.  4    to obtain equipment parameters. A loop beginning with block  1802  repeats the computational operations represented by blocks  1803 - 1806  for each cluster determined in block  1405  of  FIG.  14   . A loop beginning with block  1803  repeats the computational operations represented by blocks  1804  and  1805  for each data point in the cluster. In block  1804 , a square distance is computed as described above with reference to Equation (19) between a data point of cluster and a corresponding equipment parameter of the equipment parameters of the identified piece of IT equipment. In block  1805 , a sum of the square distances computed in block  1804  is formed. In decision block  1806 , blocks  1804  and  1805  are repeated until all data points of the cluster have been considered. In decision block  1807 , blocks  1803 - 1806  are repeated for another cluster until all clusters have been considered. In block  1808 , a minimum of the square distances is determined as described above with reference to Equation (20). In block  1809 , the identified piece of IT equipment is classified as being in the class of IT equipment with the minimum square distances to the identified piece of IT equipment. 
     It is appreciated that the previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.