Clustering processing method and apparatus, electronic device, and computer-readable storage medium

By using multiple clustering algorithms to generate cross-tabulations and update non-zero data, the problem of inaccurate clustering results caused by a single clustering algorithm is solved, achieving higher accuracy in clustering processing and improving the effectiveness of data processing.

CN114298124BActive Publication Date: 2026-05-05TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2021-10-22
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

In existing technologies, when using a single clustering algorithm to cluster multiple object data, the accuracy of the clustering results is low, which affects the accuracy of subsequent data processing.

Method used

Multiple clustering algorithms (such as the Leiden algorithm and algorithms based on deep learning feature representation) are used to cluster the object data. After generating multiple clusters, the final third cluster is determined by constructing a cross-tabulation and updating the non-zero data in the cross-tabulation.

Benefits of technology

It improves the accuracy of clustering results, enhances the accuracy of subsequent data processing, combines the advantages of different algorithms, and complements the shortcomings of global and local clustering.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114298124B_ABST
    Figure CN114298124B_ABST
Patent Text Reader

Abstract

This application discloses a clustering processing method, apparatus, electronic device, and computer-readable storage medium, belonging to the field of data processing technology. The method includes: obtaining multiple first clusters obtained by clustering multiple object data using a first clustering algorithm, each first cluster including at least one object data; obtaining multiple second clusters obtained by clustering multiple object data using a second clustering algorithm, each second cluster including at least one object data; determining a first cross-tabulation based on the multiple first clusters and multiple second clusters, where a row of data in the first cross-tabulation represents each object data in a first cluster, and a column of data in the first cross-tabulation represents each object data in a second cluster; and determining multiple third clusters based on the first cross-tabulation, each third cluster including at least one object data. Using two clustering algorithms to determine the clustering results for multiple object data improves the accuracy of the clustering results and the accuracy of subsequent data processing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to a clustering processing method, apparatus, electronic device, and computer-readable storage medium. Background Technology

[0002] In the field of data processing technology, clustering is a fundamental data processing method. Clustering can group multiple data objects into multiple clusters, with each cluster containing at least one data object, facilitating further data processing by analyzing the data objects within each cluster.

[0003] In related technologies, there are various clustering algorithms capable of clustering multiple object data. For example, clustering algorithms for multiple cell data include, but are not limited to, the Leiden algorithm, the Louvain algorithm, and the State of the Art (SOTA) algorithm based on deep learning feature representation. Typically, using only one clustering algorithm to cluster multiple object data results in low accuracy of the clustering results, affecting the accuracy of subsequent data processing. Summary of the Invention

[0004] This application provides a clustering processing method, apparatus, electronic device, and computer-readable storage medium, which can be used to solve the problem of low accuracy of clustering results in related technologies, affecting subsequent data processing. The technical solution includes the following contents.

[0005] On the one hand, embodiments of this application provide a clustering processing method, the method comprising:

[0006] Obtain multiple first clusters obtained by clustering multiple object data based on the first clustering algorithm, wherein each first cluster includes at least one object data;

[0007] Multiple second clusters are obtained by clustering the multiple object data based on the second clustering algorithm, and each second cluster includes at least one object data.

[0008] A first cross-tabulation is determined based on the plurality of first clusters and the plurality of second clusters. A row of data in the first cross-tabulation represents the data of each object in a first cluster, and a column of data in the first cross-tabulation represents the data of each object in a second cluster.

[0009] Based on the first cross-tabulation, multiple third clusters are determined, and each third cluster includes at least one object data.

[0010] On the other hand, embodiments of this application provide a clustering processing apparatus, the apparatus comprising:

[0011] The acquisition module is used to acquire multiple first clusters obtained by clustering multiple object data based on the first clustering algorithm, wherein each first cluster includes at least one object data.

[0012] The acquisition module is further configured to acquire multiple second clusters obtained by clustering the multiple object data based on the second clustering algorithm, wherein each second cluster includes at least one object data.

[0013] The determination module is used to determine a first cross-tabulation based on the plurality of first clusters and the plurality of second clusters, wherein a row of data in the first cross-tabulation represents the data of each object in a first cluster, and a column of data in the first cross-tabulation represents the data of each object in a second cluster;

[0014] The determining module is further configured to determine multiple third clusters based on the first cross-tabulation, wherein each third cluster includes at least one object data.

[0015] In one possible implementation, a first cluster corresponds to a first cluster identifier, a second cluster corresponds to a second cluster identifier, and an object data includes an object identifier.

[0016] The determining module is used to determine the object identifier corresponding to each cluster identifier set based on the first cluster identifier of each first cluster, the object identifier of each object data contained in each first cluster, the second cluster identifier of each second cluster, and the object identifier of each object data contained in each second cluster, wherein a cluster identifier set includes one first cluster identifier and one second cluster identifier; and to determine the first cross-tabulation based on the number of object identifiers corresponding to each cluster identifier set.

[0017] In one possible implementation, the first cross-tab includes multiple non-zero data, wherein the non-zero data represents the number of identical object data contained in the first cluster corresponding to the row containing the non-zero data and the second cluster corresponding to the column containing the non-zero data.

[0018] The determining module is used to update the first cross-tabulation based on each non-zero data in the first cross-tabulation; and to determine multiple third clusters based on the updated first cross-tabulation.

[0019] In one possible implementation, the determining module is configured to determine, based on the non-zero data contained in each column of the first cross-tabulation, the non-zero data in each column that meets the conditions; and update the first cross-tabulation based on the non-zero data contained in each column and the non-zero data in each column that meets the conditions.

[0020] In one possible implementation, the non-zero data that satisfies the condition in each column includes the largest non-zero data in each column and the second largest non-zero data in each column;

[0021] The determining module is configured to, in response to the existence of a first column in each column, wherein the largest non-zero data in the first column is greater than N times the second largest non-zero data in the first column, where N is a positive number greater than 1, determine a first non-zero data, update all non-zero data in the first column except for the largest non-zero data in the first column to the target character, and modify the largest non-zero data in the first column to the first non-zero data, wherein the first non-zero data is the sum of all non-zero data in the first column; and in response to the existence of a second column in each column, wherein the largest non-zero data in the second column is not greater than N times the second largest non-zero data in the second column, determine a second non-zero data, update all non-zero data in the second column except for the largest non-zero data and the second largest non-zero data in the second column to the target character, and modify the largest non-zero data in the second column to the second non-zero data, wherein the second non-zero data is the sum of all non-zero data in the second column except for the second largest non-zero data in the second column.

[0022] In one possible implementation, the non-zero data in each column that meets the condition includes at least two non-zero data in each column that are greater than the reference value;

[0023] The determining module is used to determine the average value of each column based on at least two non-zero data points in each column that are greater than a reference value; and to update the first cross-tabulation based on each non-zero data point contained in each column and the average value of each column.

[0024] In one possible implementation, the determining module is configured to, in response to the existence of a third column in each column, wherein the maximum non-zero data in the third column is greater than M times the average value of the third column, where M is a positive number greater than 1, determine a third non-zero data, update all non-zero data in the third column except for the maximum non-zero data in the third column to a target character, and modify the maximum non-zero data in the third column to the third non-zero data, wherein the third non-zero data is the sum of all non-zero data in the third column; and in response to the existence of a fourth column in each column, wherein the maximum non-zero data in the fourth column is not greater than M times the average value of the fourth column, determine a fourth non-zero data, update all non-zero data in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value to the target character, and modify the maximum non-zero data in the fourth column to the fourth non-zero data, wherein the fourth non-zero data is the sum of all non-zero data in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value and the maximum non-zero data in the fourth column.

[0025] In one possible implementation, the determining module is configured to determine the coefficient of variation of each column based on the non-zero data contained in each column of the first cross-tabulation, wherein the coefficient of variation of any column is used to characterize the dispersion of the non-zero data contained in any column; and update the first cross-tabulation based on the coefficient of variation of each column.

[0026] In one possible implementation, the determining module is configured to, in response to the existence of a fifth column in each column, wherein the coefficient of variation of the fifth column is greater than a target coefficient of variation, determine a fifth non-zero data, update all non-zero data in the fifth column except for the largest non-zero data to the target character, modify the largest non-zero data in the fifth column to the fifth non-zero data, wherein the fifth non-zero data is the sum of all non-zero data in the fifth column.

[0027] In one possible implementation, the determining module is configured to determine that the sixth column remains unchanged in response to the existence of a sixth column in each column, wherein the coefficient of variation of the sixth column is not greater than the target coefficient of variation.

[0028] In one possible implementation, the determining module is configured to determine, based on the non-zero data contained in each row of the first cross-tabulation, the non-zero data in each row that satisfies the conditions; and update the first cross-tabulation based on the non-zero data contained in each row and the non-zero data in each row that satisfies the conditions.

[0029] In one possible implementation, the determining module is configured to determine the coefficient of variation of each row in the first cross-tabulation based on the non-zero data contained in each row, wherein the coefficient of variation of any row is used to characterize the dispersion of the non-zero data contained in any row; and update the first cross-tabulation based on the coefficient of variation of each row.

[0030] In one possible implementation, the number of the updated first cross-tabulations is at least two;

[0031] The determining module is used to determine the evaluation index of each updated first cross-tabulation, the evaluation index being used to characterize the accuracy of the updated first cross-tabulation; based on the evaluation index of each updated first cross-tabulation, to determine the second cross-tabulation corresponding to the maximum evaluation index from each updated first cross-tabulation; and to determine multiple third clusters based on the second cross-tabulation corresponding to the maximum evaluation index.

[0032] In one possible implementation, the object data is a gene expression matrix of a cell;

[0033] The acquisition module is used to cluster the gene expression matrices of multiple cells using the Leiden algorithm to obtain multiple first clusters;

[0034] The acquisition module is used to cluster the gene expression matrix of the multiple cells using a current-level algorithm based on deep learning feature expression to obtain multiple second clusters.

[0035] In one possible implementation, the acquisition module is further configured to acquire multiple fourth clusters obtained by clustering the multiple object data based on a third clustering algorithm, wherein each fourth cluster includes at least one object data.

[0036] The determining module is further configured to determine a third cross table based on the plurality of third clusters and the plurality of fourth clusters, wherein a row of data in the third cross table represents the data of each object in a third cluster, and a column of data in the third cross table represents the data of each object in a fourth cluster.

[0037] The determining module is further configured to determine multiple fifth clusters based on the third cross-tabulation, wherein the fifth cluster includes at least one object data.

[0038] On the other hand, embodiments of this application provide an electronic device, which includes a processor and a memory. The memory stores at least one piece of program code, which is loaded and executed by the processor to enable the electronic device to implement any of the clustering processing methods described above.

[0039] On the other hand, a computer-readable storage medium is also provided, wherein at least one piece of program code is stored in the computer-readable storage medium, the at least one piece of program code being loaded and executed by a processor to enable a computer to implement any of the clustering processing methods described above.

[0040] On the other hand, a computer program or computer program product is also provided, wherein the computer program or computer program product stores at least one computer instruction, which is loaded and executed by a processor to enable the computer to implement any of the above-mentioned clustering processing methods.

[0041] The technical solution provided in this application has at least the following beneficial effects:

[0042] The technical solution provided in this application is based on determining a cross-tabulation based on multiple first clusters and multiple second clusters, and determining multiple third clusters based on this cross-tabulation. The first cluster and the second cluster are obtained by clustering multiple object data using different clustering algorithms. This achieves the use of two clustering algorithms to determine the clustering results of multiple object data, thereby improving the accuracy of the clustering results and the accuracy of subsequent data processing. Attached Figure Description

[0043] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0044] Figure 1 This is a schematic diagram of the implementation environment of a clustering processing method provided in an embodiment of this application;

[0045] Figure 2 This is a flowchart of a clustering processing method provided in an embodiment of this application;

[0046] Figure 3 This is a clustering diagram of the Leiden algorithm provided in an embodiment of this application;

[0047] Figure 4 This is a clustering diagram of a Deep Embedding For Single-cell Clustering (DESC) algorithm provided in an embodiment of this application;

[0048] Figure 5 This is a flowchart of a cell data clustering processing method provided in an embodiment of this application;

[0049] Figure 6 This is a schematic diagram of the clustering results of single-cell data corresponding to the Leiden algorithm provided in an embodiment of this application;

[0050] Figure 7 This is a schematic diagram of the clustering results of single-cell data corresponding to the DESC algorithm provided in an embodiment of this application;

[0051] Figure 8 This is a schematic diagram of the clustering result of single-cell data after clustering processing, provided in an embodiment of this application;

[0052] Figure 9 This is a schematic diagram of the actual clustering result of single-cell data provided in an embodiment of this application;

[0053] Figure 10 This is a schematic diagram of the structure of a clustering processing device provided in an embodiment of this application;

[0054] Figure 11 This is a schematic diagram of the structure of a terminal device provided in an embodiment of this application;

[0055] Figure 12 This is a schematic diagram of the structure of a server provided in an embodiment of this application;

[0056] Figure 13This is a clustering result diagram of single-cell data corresponding to the Leiden algorithm provided in an embodiment of this application;

[0057] Figure 14 This is a clustering result diagram of single-cell data corresponding to the DESC algorithm provided in an embodiment of this application;

[0058] Figure 15 This is a clustering result diagram of single-cell data after clustering processing, provided in an embodiment of this application.

[0059] Figure 16 This is a diagram showing the actual clustering result of single-cell data provided in an embodiment of this application. Detailed Implementation

[0060] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0061] Figure 1 This is a schematic diagram illustrating the implementation environment of a clustering processing method provided in an embodiment of this application, such as... Figure 1 The implementation environment shown includes an electronic device 11, and the clustering processing method in this embodiment can be executed by the electronic device 11. Exemplarily, the electronic device 11 may include at least one of a terminal device or a server.

[0062] The terminal device can be at least one of a smartphone, game console, desktop computer, tablet computer, e-book reader, MP3 (Moving Picture Experts Group Audio Layer III) player, MP4 (Moving Picture Experts Group Audio Layer IV) player, and laptop computer.

[0063] The server can be a single server, a server cluster consisting of multiple servers, or any of the following: a cloud computing platform or a virtualization center. This application embodiment does not limit this. The server can communicate with terminal devices via a wired or wireless network. The server can have functions such as data processing, data storage, and data transmission and reception, which are not limited in this application embodiment.

[0064] The clustering method provided in this application is based on artificial intelligence (AI) technology. AI is the theory, method, technology, and application system that uses digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, perceive the environment, acquire knowledge, and use that knowledge to obtain optimal results. In other words, AI is a comprehensive technology in computer science that attempts to understand the essence of intelligence and produce a new kind of intelligent machine that can react in a way similar to human intelligence. AI studies the design principles and implementation methods of various intelligent machines, enabling them to have perception, reasoning, and decision-making functions.

[0065] Artificial intelligence (AI) is a comprehensive discipline encompassing a wide range of fields, including both hardware and software technologies. Fundamental AI technologies generally include sensors, dedicated AI chips, cloud computing, distributed storage, big data processing, operating / interactive systems, and mechatronics. AI software technologies primarily include computer vision, speech processing, natural language processing, as well as machine learning / deep learning, autonomous driving, and intelligent transportation.

[0066] With the research and advancement of artificial intelligence (AI) technology, AI is being studied and applied in various fields, such as smart homes, smart wearable devices, virtual assistants, smart speakers, smart marketing, autonomous driving, drones, robots, smart healthcare, smart customer service, vehicle networking, and intelligent transportation. It is believed that with the development of technology, AI will be applied in more fields and play an increasingly important role.

[0067] Based on the above implementation environment, this application provides a clustering processing method to... Figure 2 The flowchart shown in this embodiment of the application illustrates a clustering processing method. This method can be implemented by... Figure 1 The electronic device 11 in the middle performs the operation. For example... Figure 2 As shown, the method includes steps 201-204.

[0068] Step 201: Obtain multiple first clusters obtained by clustering multiple object data based on the first clustering algorithm, wherein each first cluster includes at least one object data.

[0069] For example, the first clustering algorithm includes, but is not limited to, the Leiden algorithm, the Louvain algorithm, the state-of-the-art (SOTA) algorithm based on deep learning feature representation, and the K-means clustering algorithm, etc., and the object data includes, but is not limited to, cell data, point cloud data, video data, etc. In this embodiment, the number of first clusters obtained by clustering multiple object data based on the first clustering algorithm is not limited; for example, the number of first clusters is 51.

[0070] Step 202: Obtain multiple second clusters obtained by clustering multiple object data based on the second clustering algorithm, wherein each second cluster includes at least one object data.

[0071] The second clustering algorithm and the first clustering algorithm are different clustering algorithms. For example, the second clustering algorithm includes, but is not limited to, the Leiden algorithm, the Louvain algorithm, the state-of-the-art (SOTA) algorithm based on deep learning feature representation, and the K-means clustering algorithm. In this application embodiment, the number of second clusters obtained by clustering multiple object data based on the second clustering algorithm is not limited; the number of second clusters may be the same as or different from the number of first clusters. For example, the number of second clusters may be 51 or 33.

[0072] In one possible implementation, the object data is the gene expression matrix of cells; obtaining multiple first clusters by clustering multiple object data based on a first clustering algorithm includes: using the Leiden algorithm to cluster the gene expression matrices of multiple cells to obtain multiple first clusters; obtaining multiple second clusters by clustering multiple object data based on a second clustering algorithm includes: using a current-level algorithm based on deep learning feature expression to cluster the gene expression matrices of multiple cells to obtain multiple second clusters.

[0073] In this embodiment, a gene expression matrix is ​​used to express cells. The rows of the gene expression matrix represent the expression of a gene under different environmental conditions or at different time points. The columns of the gene expression matrix represent the expression of all genes under different conditions or samples (such as cells, tissues, experimental conditions, treatment factors, etc.). The data in each cell represents the expression level of a specific gene in a specific cell.

[0074] When clustering gene expression matrices of multiple cells (i.e., clustering data from multiple cells), the Leiden algorithm is used. The Leiden algorithm obtains the final clustering result through multiple stages of clustering, resulting in multiple initial clusters. Each stage of clustering includes moving cell processing and refining. Moving cell processing performs preliminary clustering of multiple cell data, resulting in multiple original clusters for that stage, each containing at least one cell data point. Refining is the process of further clustering or splitting the original clusters for that stage, resulting in multiple updated clusters for that stage, each containing at least one cell data point.

[0075] Please see Figure 3 , Figure 3 This is a clustering diagram of the Leiden algorithm provided in an embodiment of this application, wherein, Figure 3 Only two stages of clustering processing are shown, namely the first stage and the second stage. First, a gene expression matrix is ​​used to represent each cell to be clustered. Then, based on the gene expression matrices of each pair of cells, the weights between the data points of each pair of cells are determined, resulting in... Figure 3 The value 'a' shown here includes multiple cell data points and the weights between every two cell data points.

[0076] For the first stage, cell-shifting processing is performed on cell 'a' to perform preliminary clustering of multiple cell data, resulting in multiple original clusters corresponding to the first stage, such as... Figure 3 As shown in b, cell data of the same color in b represent cell data from the same original cluster, while cell data of different colors represent cell data from different original clusters. Next, the multiple original clusters (i.e., b) corresponding to the first stage are refined to split cell data from the same original cluster into at least two clusters, and / or to cluster cell data from different original clusters into the same cluster, resulting in multiple updated clusters, such as... Figure 3 As shown in c, one of the original clusters in c contains cell data of different colors, indicating that during the refinement process, the cell data in that original cluster is split into at least two clusters. Then, a second stage of clustering processing is performed based on the clustering results shown in c.

[0077] Regarding the second phase, such as Figure 3 As shown in d, d includes five clusters, which are the updated clusters corresponding to the first stage, i.e., the clustering result shown in c. The lines between clusters represent the weights between them. Moving cell processing is applied to d to perform preliminary clustering of multiple cell data, obtaining multiple original clusters corresponding to the second stage, such as... Figure 3As shown in the diagram e, clusters of the same color in e represent the same original cluster, while clusters of different colors represent different original clusters. Next, the multiple original clusters (i.e., e) corresponding to the second stage are refined to split cell data within the same original cluster into at least two clusters, and / or to cluster cell data from different original clusters into the same cluster, resulting in multiple updated clusters, such as... Figure 3 As shown in f, one of the original clusters in f contains at least two clusters of the same color, indicating that the original cluster was not merged with other original clusters during the refining process. Then, the next stage (i.e., the third stage) of clustering is performed based on the clustering results shown in f, or the clustering results shown in f are used as the final clustering results, resulting in multiple first clusters.

[0078] As can be seen from the above description of the Leiden algorithm, in each stage of clustering, the Leiden algorithm performs preliminary clustering by moving cells based on the weights between every two cell data points, and then performs further clustering by refining. The Leiden algorithm achieves global clustering of cell data through moving cells and refining, making it a global clustering algorithm. When clustering multiple cell data points, the DESC algorithm is used. DESC is a state-of-the-art (SOTA) algorithm based on deep learning feature representation. The DESC algorithm inputs the gene expression matrix of each cell into an autoencoder, which encodes the gene expression matrix of each cell to obtain the gene expression features of each cell. Based on the gene expression features of each cell, the clustering result of each cell data point is determined. The clustering result of a cell data point is the cluster to which that cell data point belongs. Based on the gene expression features of each cell, the probability of each cell data point belonging to its cluster and the batch number of each cell data point can also be determined. The DESC algorithm determines the cluster to which a cell belongs by determining the probability of a cell belonging to each cluster. The probability of a cell belonging to its cluster is denoted as the maximum probability, and the batch number of the cell is the sampling batch of the cell.

[0079] like Figure 4 As shown, Figure 4 This is a schematic diagram of a clustering algorithm for the DESC algorithm provided in an embodiment of this application. First, the gene expression matrix of each cell is input to an autoencoder, which encodes the gene expression matrix of each cell to obtain the gene expression features of each cell. Then, clustering is performed based on the gene expression features of each cell to obtain the clustering results. When implementing the DESC algorithm based on a model, the model parameters are optimized based on the clustering results and a loss function to update the model. Using the updated model and the gene expression features of each cell, clustering is performed on the cell data to obtain the clustering results. The loss function is not limited.

[0080] Optionally, the loss function is Figure 4 The expression Loss = KL(P||Q) is shown, where Loss is the loss function, KL represents the KL divergence (Kullback-Leibler Divergence), also called relative entropy, P is the true probability distribution (i.e., the probability that cell data belongs to each cluster), and Q is the pseudo-distribution of P.

[0081] It should be noted that the output information includes, but is not limited to, clustering results. For example... Figure 4 As shown, the output information consists of three parts. The first part is the clusters (i.e., the clustering results). Clusters numbered 0-5 represent 6 clusters (i.e., the second cluster), and each cluster contains at least one cell data point. In other words, the clusters are the clustering results of all cell data points. The second part is the probability of each cell data point. By determining the probability of a cell data point belonging to each cluster, the maximum probability of that cell data point is determined, and thus the probability of a cell data point within a cluster is determined as this maximum probability. The third part is the batch of cell data. Each cluster contains at least one batch of cell data points.

[0082] As can be seen from the above description of the DESC algorithm, the DESC algorithm determines the clustering result of cell data based on the gene expression matrix of a cell. In this way, the clustering result of each cell data is determined, which has a strong clustering ability for individual samples and is a local clustering processing algorithm.

[0083] Step 203: Determine a first cross-tabulation based on multiple first clusters and multiple second clusters. A row of data in the first cross-tabulation represents the data of each object in a first cluster, and a column of data in the first cross-tabulation represents the data of each object in a second cluster.

[0084] A crosstab is a common type of categorized summary table. In this embodiment, a first crosstab is determined based on multiple first clusters and multiple second clusters, where each row of the first crosstab corresponds to a specific first cluster, and each column of the first crosstab corresponds to a specific second cluster.

[0085] Optionally, a first cluster corresponds to a first cluster identifier, a second cluster corresponds to a second cluster identifier, and an object data includes an object identifier; determining a first cross-tabulation based on multiple first clusters and multiple second clusters includes: determining the object identifier corresponding to each cluster identifier set based on the first cluster identifier of each first cluster, the object identifier of each object data contained in each first cluster, the second cluster identifier of each second cluster, and the object identifier of each object data contained in each second cluster, wherein a cluster identifier set includes a first cluster identifier and a second cluster identifier; and determining the first cross-tabulation based on the number of object identifiers corresponding to each cluster identifier set.

[0086] Both the first cluster identifier and the second cluster identifier include, but are not limited to, at least one of numbers, characters, symbols, etc. The object identifier of the object data includes, but is not limited to, at least one of numbers, characters, symbols, etc. The first cluster identifier, the second cluster identifier, and the object identifier of the object data can be the same, different, or any two of the three can be the same, without any limitation.

[0087] In this embodiment of the application, the object identifier of an object data is unique and used to identify the object data. As can be seen from steps 201 and 202, multiple object data are clustered into multiple first clusters, and these multiple object data are clustered into multiple second clusters. Since each first cluster corresponds to a first cluster identifier and each second cluster corresponds to a second cluster identifier, the correspondence between each first cluster identifier and the object identifier of each object data, as well as the correspondence between each second cluster identifier and the object identifier of each object data, can be determined.

[0088] As shown in Tables 1 and 2 below, Table 1 is a correspondence table between the cluster identifier of a first cluster and the object identifier of object data provided in an embodiment of this application, and Table 2 is a correspondence table between the cluster identifier of a second cluster and the object identifier of object data provided in an embodiment of this application.

[0089]

[0090]

[0091] As shown in Tables 1 and 2, the object identifiers of the N object data are S1, S2, S3, S4...SN, where N is a positive integer. When clustering the N object data into multiple first clusters, object identifier S1 corresponds to cluster identifier 1 of the first cluster, object identifier S2 corresponds to cluster identifier 5 of the first cluster, object identifier S3 corresponds to cluster identifier 11 of the first cluster, object identifier S4 corresponds to cluster identifier 7 of the first cluster, and object identifier SN corresponds to cluster identifier 3 of the first cluster. Similarly, when clustering the N object data into multiple second clusters, object identifier S1 corresponds to cluster identifier 9 of the second cluster, object identifier S2 corresponds to cluster identifier 2 of the second cluster, object identifier S3 corresponds to cluster identifier 1 of the second cluster, object identifier S4 corresponds to cluster identifier 7 of the second cluster, and object identifier SN corresponds to cluster identifier 5 of the second cluster.

[0092] In this embodiment, based on the correspondence between each first cluster identifier and the object identifier of each object data, and the correspondence between each second cluster identifier and the object identifier of each object data, the object identifiers corresponding to each set of cluster identifiers for each object data are determined. The object identifiers of each object data corresponding to a set of cluster identifiers are the object identifiers of the same object data corresponding to the first and second cluster identifiers in that set; that is, the same object identifiers corresponding to the first and second cluster identifiers in that set. Then, based on the number of object identifiers corresponding to each object data in each set of cluster identifiers, a first cross-tabulation is determined.

[0093] For example, based on Tables 1 and 2, it can be determined that there are 8389 object identifiers corresponding to the cluster identifier set {1, 1}, 4034 object identifiers corresponding to the cluster identifier set {1, 2}, and 1 object identifier corresponding to the cluster identifier set {1, 3}, etc., where 'a' in the cluster identifier set {a, b} is the first cluster identifier and 'b' is the second cluster identifier. The number of object identifiers corresponding to each cluster identifier set can be used to determine the first cross-tabulation table shown in Table 3. Table 3 is a schematic diagram of a first cross-tabulation table provided in an embodiment of this application.

[0094]

[0095] In the first cross-tabulation table shown in Table 3, each row corresponds to a first cluster, with cluster identifiers from 1 to 11, and each column corresponds to a second cluster, with cluster identifiers from 1 to 9. As shown in Table 3, for the object data in cluster identifier 2 of the second cluster obtained after clustering multiple object data using the second clustering algorithm, when clustering multiple object data using the first clustering algorithm, the object data in cluster identifier 2 of the second cluster is scattered among cluster identifiers 1, 4, and 5 of the first cluster.

[0096] Step 204: Determine multiple third clusters based on the first cross-tabulation, where each third cluster includes at least one object data.

[0097] In this embodiment of the application, based on the first cross-tabulation, data processing is performed on multiple first clusters and multiple second clusters to obtain multiple third clusters. This is equivalent to performing clustering processing on multiple object data based on the first clustering algorithm and the second clustering algorithm to obtain multiple third clusters. The number of third clusters is less than or equal to the number of first clusters, or the number of third clusters is less than or equal to the number of second clusters.

[0098] In one possible implementation, the first cross-tab includes multiple non-zero data, where the non-zero data represents the number of identical object data contained in the first cluster corresponding to the row containing the non-zero data and the second cluster corresponding to the column containing the non-zero data; determining multiple third clusters based on the first cross-tab includes: updating the first cross-tab based on each non-zero data in the first cross-tab; and determining multiple third clusters based on the updated first cross-tab.

[0099] Any data in the first cross table is either the target character or a non-zero data. In this embodiment and the following embodiments, the target character is 0, an empty character (i.e., empty), or a special character (such as a symbol). (e.g., string null, etc.) Any non-zero data in the first crosstab represents the number of identical object data contained in the first cluster corresponding to the row where the data is located and the second cluster corresponding to the column where the data is located.

[0100] In this embodiment, each non-zero data in the first cross-tabulation is processed to update the first cross-tabulation. Then, multiple third clusters are determined based on the updated first cross-tabulation. Since the first cross-tabulation is determined by multiple first clusters obtained based on the first clustering algorithm and multiple second clusters obtained based on the second clustering algorithm, this embodiment can determine multiple third clusters based on the first clustering algorithm and the second clustering algorithm, thereby improving the accuracy of the clustering results and the accuracy of subsequent data processing.

[0101] For example, the first clustering algorithm is the Leiden algorithm, and the second clustering algorithm is the DESC algorithm. The Leiden algorithm is a global clustering algorithm capable of globally clustering cell data, but it can lead to inaccurate clustering results for local cell data. Furthermore, the Leiden algorithm may split a cluster into at least two clusters during the refinement process, resulting in a large number of clustering results. The DESC algorithm, on the other hand, is a local clustering algorithm with strong clustering capabilities for individual samples, but it does not consider the relationships between cell data, resulting in poor accuracy. The clustering method described in this application can determine multiple third clusters based on the Leiden and DESC algorithms, combining the advantages of the Leiden algorithm for global clustering of cell data with the strong clustering capability of the DESC algorithm for individual samples. This achieves complementarity between the Leiden and DESC algorithms, improving the accuracy of the clustering results and reducing the number of clustering results.

[0102] In this embodiment of the application, when updating the first cross-tabulation based on each non-zero data in the first cross-tabulation, for any column in the first cross-tabulation, the column is updated based on the size relationship between the non-zero data contained in that column. In this way, each column in the first cross-tabulation is updated, thereby achieving the update of the first cross-tabulation. The method of updating the first cross-tabulation based on the size relationship between the non-zero data in each column of the first cross-tabulation will be described in detail below.

[0103] In one possible implementation, updating the first cross-tabulation based on each non-zero data in the first cross-tabulation includes: determining the non-zero data that meets the conditions in each column based on each non-zero data contained in each column of the first cross-tabulation; and updating the first cross-tabulation based on each non-zero data contained in each column and the non-zero data that meets the conditions in each column.

[0104] In this embodiment of the application, for any column in the first crosstab, non-zero data that meets the conditions is determined from the non-zero data contained in the column, and the number of non-zero data that meets the conditions is at least one. Then, based on the non-zero data in the column and the non-zero data that meets the conditions, the column is updated. In this way, each column of the first crosstab is updated, that is, the first crosstab is updated.

[0105] Optionally, the non-zero data satisfying the conditions in each column includes the largest non-zero data and the second largest non-zero data in each column; based on the non-zero data contained in each column and the non-zero data satisfying the conditions in each column, the first crosstab is updated, including: in response to the existence of a first column in each column, where the largest non-zero data in the first column is greater than N times the second largest non-zero data in the first column, where N is a positive number greater than 1, then the first non-zero data is determined, and all non-zero data contained in the first column except for the largest non-zero data in the first column are updated to the target character, and the largest non-zero data in the first column is updated to the target character. The first non-zero data is modified to be the sum of all non-zero data in the first column; in response to the existence of a second column in each column, the largest non-zero data in the second column is not greater than N times the second largest non-zero data in the second column, then the second non-zero data is determined, and all non-zero data in the second column except for the largest non-zero data and the second largest non-zero data in the second column are updated to the target character, and the largest non-zero data in the second column is modified to be the second non-zero data, which is the sum of all non-zero data in the second column except for the second largest non-zero data in the second column.

[0106] For any column of the first crosstab, determine the largest and second largest non-zero data from the non-zero data contained in the column, and determine the relationship between the largest and second largest non-zero data.

[0107] When the largest non-zero data is greater than N times the second largest non-zero data, this column is the first column. The sum of all non-zero data in this column is calculated, and all non-zero data in this column except for the largest non-zero data are updated to the target character. At the same time, the calculated sum is used to replace the largest non-zero data to update the column. This process can be represented by the following formula.

[0108] ,

[0109] in, For column numbers, For the first The updated data corresponding to the largest non-zero value in a column. INDEX is a function that returns a value from a table. For the first The sum of all non-zero data in the column. For the first Liede One non-zero data point, For the first The largest non-zero data in the column, It is a multiple, equivalent to N mentioned above, where, For positive numbers greater than 1, this application's embodiments do not... The specific value is limited, for example, =2.

[0110] For example, as shown in Table 4 below, Table 4 is the third column of Table 3 (i.e. the column with cluster identifier 2 for the second cluster).

[0111]

[0112] In this column, from the non-zero data points, the largest non-zero number is 4034, and the second largest is 1346. Since 4034 > 2... 1346 (N equals 2), therefore, calculate the sum of all non-zero data in the column, that is, calculate 4034+1346+2=5382, modify all non-zero data in the column except for the largest non-zero data 4034 to 0, and at the same time, replace the largest non-zero data 4034 with the calculated sum value 5382 to update the column. The updated column is shown in Table 5 below.

[0113]

[0114] When the largest non-zero data is less than or equal to N times the second largest non-zero data, this column becomes the second column. All non-zero data in this column, excluding the largest and second largest non-zero data, are added to the largest non-zero data. In other words, the sum of all non-zero data in this column, excluding the second largest non-zero data, is calculated, and all non-zero data in this column, excluding the largest and second largest non-zero data, are updated to the target character. At the same time, the calculated sum is used to replace the largest non-zero data to update this column.

[0115] For example, as shown in Table 6 below, Table 6 is the second column of Table 3 (i.e. the column with cluster identifier 1 for the second cluster).

[0116]

[0117] In this column, from the non-zero data points, the largest non-zero number is 8389, and the second largest is 6073. Since 8389 < 2... Since N equals 2, we calculate the sum of all non-zero data in this column except for the second largest non-zero data, i.e., 8389 + 10 = 8399. We then modify all non-zero data in this column except for the largest non-zero data 8389 and the second largest non-zero data 6073 to 0. At the same time, we replace the largest non-zero data 8389 with the calculated sum 8399 to update the column. The updated column is shown in Table 7 below.

[0118]

[0119] In this way, the columns of the first crosstab are updated, i.e., the first crosstab is updated. For example, N equals 2, and the columns of Table 3 are updated in this way to obtain the updated first crosstab, which is shown in Table 8 below.

[0120]

[0121] Then, multiple third clusters are determined based on the updated first cross-tabulation. At this point, each row of the updated first cross-tabulation represents multiple third clusters. For example, as shown in Table 8, the updated first cross-tabulation has nine rows, each representing a third cluster. That is, the updated first cross-tabulation includes nine third clusters, and the cluster identifiers of the nine third clusters are 1 to 5, 7, 9 to 11, respectively.

[0122] For first crosstabs with a large number of rows, each column may contain a large number of non-zero data points. Simply relying on the largest and second-largest non-zero data points in each column to update the first crosstab may reduce its accuracy. In this case, at least two non-zero data points from each column should be used to update the first crosstab.

[0123] Optionally, the non-zero data in each column that meets the conditions includes at least two non-zero data points in each column that are greater than the reference value; the first cross-tabulation is updated based on each non-zero data point in each column and the non-zero data points in each column that meet the conditions, including: determining the average value of each column based on at least two non-zero data points in each column that are greater than the reference value; and updating the first cross-tabulation based on each non-zero data point in each column and the average value of each column.

[0124] In this embodiment of the application, for any column of the first crosstab, the non-zero data contained in the column are sorted in descending order to determine the first two non-zero data as the at least two non-zero data greater than the reference value of the column; or the non-zero data contained in the column are sorted in ascending order to determine the last two non-zero data as the at least two non-zero data greater than the reference value of the column; or the non-zero data in the column that is greater than a certain fixed data (such as 500, 1000, etc.) is taken as the at least two non-zero data greater than the reference value of the column.

[0125] In this column, at least two non-zero data points greater than the reference value are denoted as A non-zero data points greater than the reference value. The sum of these A non-zero data points is calculated, and the ratio of this sum to A is taken as the average value of the column. Then, based on each non-zero data point and the average value, the column is updated. Each column of the first crosstab is updated in this way.

[0126] In one possible implementation, the first crosstab is updated based on the non-zero data contained in each column and the average value of each column, including: in response to the existence of a third column in each column, where the largest non-zero data in the third column is greater than M times the average value of the third column, where M is a positive number greater than 1, determining the third non-zero data, updating all non-zero data contained in the third column except for the largest non-zero data in the third column to the target character, and modifying the largest non-zero data in the third column to the third non-zero data, where the third non-zero data is the sum of the non-zero data in the third column; in response to the existence of a fourth column in each column, where the largest non-zero data in the fourth column is not greater than M times the average value of the fourth column, determining the fourth non-zero data, updating all non-zero data contained in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value to the target character, and modifying the largest non-zero data in the fourth column to the fourth non-zero data, where the fourth non-zero data is the sum of all non-zero data contained in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value and the largest non-zero data in the fourth column.

[0127] For any column in the first crosstab, if the largest non-zero data is greater than M times the average of that column, then that column is designated as the third column. Calculate the sum of all non-zero data in that column, update all non-zero data in that column except for the largest non-zero data with the target character, and simultaneously replace the largest non-zero data with the calculated sum to update that column.

[0128] Correspondingly, for any column in the first crosstab, if the largest non-zero data is less than or equal to M times the average of that column, that column is designated as the fourth column. Calculate the sum of all non-zero data in that column except for the first 2 to A non-zero data, update all non-zero data in that column except for the first A non-zero data with the target character, and simultaneously replace the largest non-zero data with the calculated sum to update that column.

[0129] In this way, each column of the first crosstab is updated, which means updating the first crosstab. At this point, each row of the updated first crosstab will be a third cluster.

[0130] The methods described above for updating the first crosstab based on the largest and second-largest non-zero data in each column, and for updating it based on the average of at least two non-zero data in each column that are greater than a reference value, are merely two possible implementations of updating the first crosstab based on the size relationship between the non-zero data in each column. However, in practice, it is not limited to updating the first crosstab based on the size relationship between the non-zero data in each column; either of these two methods can be used, or other methods can be employed.

[0131] In one possible implementation, updating the first cross-tabulation based on each non-zero data point in the first cross-tabulation includes: determining the coefficient of variation of each column based on each non-zero data point contained in each column of the first cross-tabulation, wherein the coefficient of variation of any column is used to characterize the dispersion of each non-zero data point contained in any column; and updating the first cross-tabulation based on the coefficient of variation of each column.

[0132] The coefficient of variation, also known as the coefficient of dispersion, is a normalized measure of the dispersion of a data distribution. Optionally, for any column in the first crosstab, the standard deviation and mean of that column are calculated based on each non-zero data point it contains. The coefficient of variation for that column is then determined based on its standard deviation and mean. In this way, the coefficient of variation for each column in the first crosstab can be calculated. The coefficient of variation for any column can be expressed using the formula shown below.

[0133]

[0134] in, Let be the coefficient of variation for any column. Let be the standard deviation of any column. This represents the average value of any column.

[0135] It should be noted that for any column in the first crosstab, the column includes several non-zero data points and several target characters. The number of data points in the column is equal to the sum of the number of non-zero data points and the number of target characters. When calculating the average of the column, the ratio of the sum of the non-zero data points to the number of data points in the column is used. When calculating the standard deviation of the column, for any non-zero data point, the average of the column is subtracted from the non-zero data point to obtain the difference. The square of this difference is then calculated. This process is repeated to obtain the squares of the differences for all non-zero data points in the column. Finally, the sum of the squares of these squares is calculated, divided by the number of data points in the column, and the square root of the result is taken to obtain the standard deviation of the column.

[0136] Subsequently, the first cross-tabulation is updated based on the coefficient of variation of each column. In this embodiment of the application, the first cross-tabulation is updated based on the coefficient of variation of each column according to the following implementation method A1 and implementation method A2.

[0137] Implementation method A1 updates the first crosstab based on the coefficient of variation of each column, including: in response to the existence of a fifth column in each column, if the coefficient of variation of the fifth column is greater than the target coefficient of variation, then determine the fifth non-zero data, update all non-zero data in the fifth column except for the largest non-zero data to the target character, modify the largest non-zero data in the fifth column to the fifth non-zero data, and the fifth non-zero data is the sum of all non-zero data in the fifth column.

[0138] This application does not limit the value of the target coefficient of variation. For example, the target coefficient of variation is set to 2 based on human experience.

[0139] In this embodiment of the application, for any column in the first crosstab, when the coefficient of variation of the column is greater than the target coefficient of variation, the column is the fifth column, and the differences among the non-zero data in the fifth column are relatively large. The sum of all non-zero data contained in the column is calculated, and all non-zero data contained in the column except for the largest non-zero data is updated to the target character, and the largest non-zero data in the column is modified to the sum of the non-zero data.

[0140] For example, for a series of data The standard deviation of this column of data is The average value of the data in this column is The coefficient of variation for this column of data is Due to the target coefficient of variation This results in 4.33 being greater than 2. Therefore, the sum of all non-zero data in the column is calculated to be 18238. All non-zero data in the column except for the largest non-zero data (10399) are then updated to 0, and the largest non-zero data (10399) is changed to 18238, resulting in the updated data. .

[0141] Implementation method A2 updates the first crosstab based on the coefficient of variation of each column, including: in response to the existence of a sixth column in each column, if the coefficient of variation of the sixth column is not greater than the target coefficient of variation, then the sixth column is determined to remain unchanged.

[0142] In this embodiment of the application, for any column in the first crosstab, when the coefficient of variation of the column is not greater than the target coefficient of variation, the column is the sixth column. The differences between the non-zero data in the sixth column are small, and the sixth column is not modified.

[0143] It should be noted that the target coefficient of variation is related to the number of columns in the fifth and sixth columns. The larger the target coefficient of variation, the fewer columns in the fifth column and the more columns in the sixth column; conversely, the smaller the target coefficient of variation, the more columns in the fifth column and the fewer columns in the sixth column. The sum of the number of columns in the fifth and sixth columns equals the number of columns in the first crosstab.

[0144] It is understood that the method of updating the first cross table based on each non-zero data in the first cross table provided in this application embodiment is only exemplary. In application, other update methods can be selected according to the application scenario, human experience, etc., and no limitation is made here.

[0145] For example, for some first crosstabs with a small number of rows, each column in the first crosstab may contain a small number of non-zero data points. Relying on at least two non-zero data points greater than the reference value in each column to update the first crosstab would increase computational complexity. In this case, the largest non-zero data point in each column should be used to update the first crosstab.

[0146] That is, for each column in the first crosstab, calculate the sum of all non-zero data in the column, update all non-zero data in the column except for the largest non-zero data to the target character, and replace the largest non-zero data with the calculated sum to update the column. This process can be represented by the formula shown below.

[0147]

[0148] in, For column numbers, For the first The updated data corresponding to the largest non-zero value in a column. INDEX is a function that returns a value from a table. For the first The sum of all non-zero data in the column. For the first The largest non-zero data in the column.

[0149] For example, clustering multiple object data using the first clustering algorithm yields the probability that each object data belongs to the first cluster. Similarly, clustering multiple object data using the second clustering algorithm yields the probability that each object data belongs to the second cluster. When updating the first cross-tabulation based on the non-zero data in each column and the non-zero data in each column that meets the conditions, the first cross-tabulation is updated based on the non-zero data in each column, the non-zero data in each column that meets the conditions, and the probability that each object data belongs to that column (i.e., the second cluster). Alternatively, the first cross-tabulation is updated based on the non-zero data in each column, the non-zero data in each column that meets the conditions, and the probability that each object data belongs to that column. This refines the determination of the relationship between object data and clusters, improving the accuracy of the clustering results. In application, the settings can be flexibly configured according to the application scenario and human experience; no limitations are imposed in this embodiment.

[0150] The above describes in detail the process of updating the first crosstab based on each non-zero data in the first crosstab from the perspective of columns. In application, the first crosstab can also be updated from the perspective of rows. Optionally, updating the first crosstab based on each non-zero data in the first crosstab includes: determining the non-zero data that meets the conditions in each row based on each non-zero data contained in each row of the first crosstab; and updating the first crosstab based on each non-zero data contained in each row and the non-zero data that meets the conditions in each row.

[0151] In this embodiment of the application, for any row in the first crosstab, non-zero data that meets the conditions is determined from the non-zero data contained in that row, and the number of non-zero data that meets the conditions is at least one. Then, based on the non-zero data in that row and the non-zero data that meets the conditions, the row is updated. In this way, each row of the first crosstab is updated, that is, the first crosstab is updated.

[0152] The method of updating the first crosstab based on each non-zero data in each row and the non-zero data in each row that meets the conditions is detailed in the above description of updating the first crosstab based on each non-zero data in each column and the non-zero data in each column that meets the conditions. The implementation principles of the two are similar and will not be repeated here.

[0153] In one possible implementation, updating the first cross-tabulation based on each non-zero data point in the first cross-tabulation includes: determining the coefficient of variation for each row based on each non-zero data point contained in each row of the first cross-tabulation, wherein the coefficient of variation for any row is used to characterize the dispersion of each non-zero data point contained in any row; and updating the first cross-tabulation based on the coefficient of variation for each row.

[0154] Optionally, for any row in the first crosstab, the standard deviation and mean of that row are calculated based on each non-zero data point it contains, and the coefficient of variation for that row is determined based on the standard deviation and mean. In this way, the coefficient of variation for each row in the first crosstab can be calculated, and then the first crosstab is updated based on the coefficient of variation for each column. See the above description regarding updating the first crosstab based on the coefficient of variation for each column; the implementation principles are similar and will not be repeated here.

[0155] It should be noted that when the first cross-tabulation is updated based on the non-zero data contained in each column of the first cross-tabulation, each row of the updated first cross-tabulation becomes a third cluster.

[0156] In one possible implementation, the number of updated first cross-tabulations is at least two; determining multiple third clusters based on the updated first cross-tabulations includes: determining an evaluation metric for each updated first cross-tabulation, the evaluation metric being used to characterize the accuracy of the updated first cross-tabulations; determining a second cross-tabulation corresponding to the maximum evaluation metric from each updated first cross-tabulation based on the evaluation metric of each updated first cross-tabulation; and determining multiple third clusters based on the second cross-tabulation corresponding to the maximum evaluation metric.

[0157] In this embodiment, at least two methods are used to update the first cross-tabulation based on each non-zero data point in the first cross-tabulation. For each updated first cross-tabulation, an evaluation index is calculated. The calculation method for the evaluation index is not limited here; for example, the evaluation index is the Adjusted Rand Index (ARI) or Normalized Mutual Information (NMI). The ARI value is [-1, 1], and a larger value indicates higher accuracy of the updated first cross-tabulation. The NMI value is [0, 1], and a larger value indicates higher accuracy of the updated first cross-tabulation.

[0158] After calculating the evaluation metrics for each updated first cross-tabulation, the maximum evaluation metric is determined from these metrics. The updated first cross-tabulation corresponding to the maximum evaluation metric is then selected as the second cross-tabulation. Multiple third clusters are determined based on the second cross-tabulation corresponding to the maximum evaluation metric. The method for determining multiple third clusters based on the second cross-tabulation corresponding to the maximum evaluation metric is detailed above in the section on determining multiple third clusters based on the second cross-tabulation; the implementation principles are similar and will not be repeated here.

[0159] In one possible implementation, after determining multiple third clusters based on the first cross-tabulation, the method further includes: obtaining multiple fourth clusters obtained by clustering multiple object data based on a third clustering algorithm, wherein each fourth cluster includes at least one object data; determining a third cross-tabulation based on the multiple third clusters and multiple fourth clusters, wherein a row of data in the third cross-tabulation represents each object data in a third cluster, and a column of data in the third cross-tabulation represents each object data in a fourth cluster; and determining multiple fifth clusters based on the third cross-tabulation, wherein each fifth cluster includes at least one object data.

[0160] The third clustering algorithm is not limited in this embodiment. For example, the third clustering algorithm includes, but is not limited to, the Leiden algorithm, the Louvain algorithm, the SOTA algorithm based on deep learning feature representation, and the K-means clustering algorithm. Among them, the first clustering algorithm, the second clustering algorithm, and the third clustering algorithm are three different clustering algorithms.

[0161] This application does not limit the number of fourth clusters obtained based on the third clustering algorithm. The number of fourth clusters may be the same as or different from the number of first clusters, the number of fourth clusters may be the same as or different from the number of second clusters, and the number of fourth clusters may be the same as or different from the number of third clusters.

[0162] In this embodiment of the application, a third cross table is determined based on multiple third clusters and multiple fourth clusters. Each row of the third cross table corresponds to each third cluster, and each column of the third cross table corresponds to each fourth cluster. The method of determining the third cross table is described in the relevant description of step 203. The implementation principles of the two are similar and will not be repeated here.

[0163] Next, multiple fifth clusters are determined based on the third crosstab, each fifth cluster containing at least one object data. The method for determining multiple fifth clusters is described in step 204; the implementation principles are similar and will not be repeated here.

[0164] Understandably, after clustering multiple object data using three or more clustering algorithms, this embodiment first determines multiple third clusters based on the clustering results of two clustering algorithms (i.e., multiple first clusters and multiple second clusters), following steps 201-204. Then, based on the multiple third clusters and the clustering results of a third clustering algorithm (i.e., multiple fourth clusters), multiple fifth clusters are determined. Subsequently, based on the multiple fifth clusters and the clustering results of a fourth clustering algorithm, multiple sixth clusters are determined, and so on, to achieve the goal of using three or more clustering algorithms to determine the clustering results of multiple object data, thereby improving the accuracy of the clustering results.

[0165] The above method determines a cross-tabulation based on multiple first clusters and multiple second clusters, and then determines multiple third clusters based on this cross-tabulation. The first and second clusters are obtained by clustering multiple object data using different clustering algorithms. This method achieves the use of two clustering algorithms to determine the clustering results of multiple object data, thereby improving the accuracy of the clustering results and the accuracy of subsequent data processing.

[0166] The clustering processing method of this application embodiment has been described in detail above from the perspective of method steps. The following is a detailed explanation in conjunction with a scenario. The scenario of this application embodiment is a scenario where multiple cell data are clustered based on two different clustering algorithms. In one scenario, the cell data is approximately 160,000 (e.g., 159,910), and the source of these 160,000 cell data is not limited here.

[0167] like Figure 5 As shown, Figure 5 This is a flowchart illustrating a cell data clustering method provided in an embodiment of this application. First, the Leiden algorithm is used to cluster multiple cell data sets, resulting in multiple first clusters. A related description can be found in the relevant documentation. Figure 3 The explanation will not be repeated here. A deep embedding single-cell clustering algorithm is used to cluster multiple cell data, resulting in multiple second clusters. See [link to relevant description] for details. Figure 4 The explanation will not be repeated here.

[0168] The relevant parameters of the Leiden algorithm are as follows:

[0169] HVG: min_mean=0.0125, max_mean=3, min_disp=0.5

[0170] PCA:svd_solver='arpack'

[0171] neighborhood graph: n_neighbors=10, n_pcs=40

[0172] Here, HVG stands for Highly Variable Genes, and min_mean, max_mean, and min_disp are three parameters of HVG, related to the number of highly variable genes to be retained. PCA stands for Principal Component Analysis, svd_solver is a characterization operator, and arpack is a tool that supports matrix operations. Neighborhood graph refers to the local area graph, and n_neighbors and n_pcs are two parameters representing the local area graph, where n_neighbors is the parameter used to characterize the size of the local neighborhood.

[0173] In this embodiment of the application, the Leiden algorithm was used to cluster 160,000 cell data, resulting in 51 first clusters with ARI=0.670.

[0174] The relevant parameters of the deep embedding single-cell clustering algorithm are shown below:

[0175] n_top_genes=1000

[0176] n_neighbors=10

[0177] louvain_resolution=1.0

[0178] Here, n_top_genes is the number of highly variable genes to be retained, n_neighbors is a parameter used to characterize the size of the local neighborhood, and louvain_resolution is a parameter characterizing the resolution.

[0179] In this embodiment of the application, a deep embedding single-cell clustering algorithm was used to cluster 160,000 cell data, resulting in 33 second clusters with an ARI of 0.664.

[0180] Then, multiple first clusters are identified as reference clustering results, and multiple second clusters are identified as auxiliary clustering results. A first cross-tabulation is generated based on the reference clustering results and the auxiliary clustering results. In the first cross-tabulation, one row of data represents the data of each cell in a first cluster, and one column of data represents the data of each cell in a second cluster. That is, one row of the first cross-tabulation represents a reference clustering result, and one column of the first cross-tabulation represents an auxiliary clustering result. The relevant description is given in step 203 and will not be repeated here.

[0181] Next, for each auxiliary clustering result, the cell data belonging to the cluster center in that auxiliary clustering result are determined. Specifically, the cell data belonging to the cluster center in that auxiliary clustering result is the cell data corresponding to the largest non-zero data in that auxiliary clustering result. For each auxiliary clustering result, the reference clustering result corresponding to the cell data belonging to the non-cluster center in that auxiliary clustering result is re-determined. That is, the reference clustering result corresponding to the cell data not corresponding to the largest non-zero data in that auxiliary clustering result is re-determined. As can be seen, the steps above update the first cross-tabulation based on the non-zero data contained in each column and the non-zero data in each column that meet the conditions, such as the process of obtaining Table 5 based on Table 4 and Table 7 based on Table 6. The first cross-tabulation is updated in this way. Afterwards, multiple third clusters are obtained based on the updated first cross-tabulation. The relevant description is given in step 204 and will not be repeated here.

[0182] In this embodiment, using the Leiden algorithm alone to cluster multiple cell data sets yields an ARI of 0.67, as does using the deep embedding single-cell clustering algorithm alone. This means that the accuracy of these two algorithms in clustering cell data is approximately equal. However, by employing the cell data clustering method described above, which uses both the Leiden algorithm and the deep embedding single-cell clustering algorithm simultaneously to cluster multiple cell data sets, the 51 first clusters obtained using the Leiden algorithm can be corrected to 38 third clusters, resulting in an ARI of 0.74, an improvement of approximately 7%.

[0183] Therefore, it can be seen that using the Leiden algorithm yielded 51 first clusters, which is too fine, clustering cell data that should belong to the same first cluster into two or more first clusters. After correction using the cell data clustering processing method described above, 38 third clusters were obtained, resulting in a significant improvement in ARI, indicating that the clustering results of 38 third clusters better reflect the actual clustering situation of the cell data. Thus, the above cell data clustering processing method can combine the advantages of the Leiden algorithm for global clustering of cell data with the strong clustering ability of deep embedding single-cell clustering algorithms for individual samples, reducing the number of clustering results and improving the accuracy of cell data clustering processing.

[0184] In another scenario of this application embodiment, the cell data consists of 24,679 single-cell data points, and the source of these 24,679 single-cell data points is not limited here.

[0185] First, in this embodiment, the Leiden algorithm is used to cluster 24,679 single-cell data points to obtain the clustering results corresponding to the Leiden algorithm (i.e., the multiple first clusters mentioned above). For related descriptions, please refer to the relevant documentation. Figure 3 The explanation will not be repeated here.

[0186] Please see Figure 6 or Figure 13 , Figure 6 This is a schematic diagram illustrating the clustering results of single-cell data corresponding to the Leiden algorithm provided in an embodiment of this application. Figure 13 This is a clustering result diagram of single-cell data corresponding to a Leiden algorithm provided in an embodiment of this application. Figure 6 It can be seen that using the Leiden algorithm to cluster 24,679 single-cell data points yields 16 first clusters. The first cluster identifiers of these 16 first clusters range from 0 to 15, and each first cluster contains at least one single-cell data point.

[0187] This application embodiment also uses the DESC algorithm to cluster 24,679 single-cell data points, obtaining the clustering results corresponding to the DESC algorithm (i.e., the multiple second clusters mentioned above). See the relevant description below. Figure 4 The explanation will not be repeated here.

[0188] Please see Figure 7 or Figure 14 , Figure 7 This is a schematic diagram of the clustering results of single-cell data corresponding to the DESC algorithm provided in an embodiment of this application. Figure 14 This is a clustering result diagram of single-cell data corresponding to a DESC algorithm provided in an embodiment of this application. Figure 7 It can be seen that the DESC algorithm was used to cluster 24,679 single-cell data to obtain 12 second clusters. The second clusters of these 12 second clusters are identified by numbers 0 to 11, and each second cluster includes at least one single-cell data.

[0189] Subsequently, embodiments of this application are based on 16 first clusters (i.e. Figure 6 The clustering results shown) and 12 second clusters (i.e. Figure 7 The clustering results shown are used to obtain a first cross-tabulation. Based on the non-zero data contained in each column of the first cross-tabulation, the coefficient of variation of each column is determined, and the first cross-tabulation is updated based on the coefficient of variation of each column. Based on the updated first cross-tabulation, multiple third clusters are determined. The relevant descriptions are in steps 203 and 204, and will not be repeated here.

[0190] Please see Figure 8 or Figure 15 , Figure 8 This is a schematic diagram illustrating the clustering result of single-cell data after clustering processing, provided in an embodiment of this application. Figure 15 This is a clustering result diagram of single-cell data after clustering processing, provided in an embodiment of this application. The clustering result of the single-cell data after clustering processing is multiple third clusters. Figure 8As can be seen, by using the clustering processing method provided in this application embodiment, after clustering the clustering results of single-cell data corresponding to the Leiden algorithm and the clustering results of single-cell data corresponding to the DESC algorithm, 11 third clusters are obtained. The third cluster identifiers of these 11 third clusters are 0, 1, 3 to 5, 7, 9, 10 to 13, and each third cluster includes at least one single-cell data.

[0191] Please see Figure 9 or Figure 16 , Figure 9 This is a schematic diagram illustrating the actual clustering results of single-cell data provided in an embodiment of this application. Figure 16 This is a diagram illustrating the actual clustering results of single-cell data provided in an embodiment of this application. Figure 9 It is evident that the actual clustering results of the 24,679 single-cell data points are 8 clusters. These 8 clusters are: the cluster corresponding to FCGR3A+ monocyte data, the cluster corresponding to CD14+ monocyte data (a type of osteoclast precursor cell), the cluster corresponding to dendritic cell data, the cluster corresponding to megakaryocyte data, the cluster corresponding to CD4 T cell data (a type of lymphocyte), the cluster corresponding to B cell data (a type of lymphocyte), the cluster corresponding to CD8 T cell data (a type of lymphocyte), and the cluster corresponding to natural killer cell (NK cell) data.

[0192] contrast Figure 6 and Figure 9 It can be seen that the Leiden algorithm produces a large number of clusters after clustering single-cell data, which differs significantly from the actual clustering results of single-cell data. Similarly, in comparison... Figure 7 and Figure 9 It can be seen that the DESC algorithm produces a relatively large number of clusters after clustering single-cell data, which differs somewhat from the actual clustering results of single-cell data. In comparison... Figure 8 and Figure 9 It can be seen that, using the clustering processing method provided in the embodiments of this application, for... Figure 6 and Figure 7 The clustering results shown are obtained after processing. Figure 8 The number of clusters in the data has decreased, which is closer to the actual clustering results of single-cell data.

[0193] This application embodiment also uses ARI and NMI to evaluate the accuracy of the clustering results of single-cell data corresponding to the Leiden algorithm (hereinafter referred to as the clustering results of the Leiden algorithm), the accuracy of the clustering results of single-cell data corresponding to the DESC algorithm (hereinafter referred to as the clustering results of the DESC algorithm), and the accuracy of the clustering results of single-cell data obtained after using the clustering processing method provided in this application embodiment to cluster the clustering results of the Leiden algorithm and the clustering results of the DESC algorithm (hereinafter referred to as the clustering results of this application embodiment), as shown in Table 9 below.

[0194]

[0195] As can be clearly seen from Table 9, the clustering results of this embodiment show improvements in both ARI and NMI values ​​compared to the Leiden algorithm, and also show significant improvements in both ARI and NMI values ​​compared to the DESC algorithm. Since higher ARI and NMI values ​​generally indicate higher clustering accuracy, the clustering results of this embodiment are significantly superior to those of the Leiden and DESC algorithms. Therefore, the clustering processing method provided in this embodiment can improve the accuracy of clustering results.

[0196] Figure 10 The diagram shown is a structural schematic of a clustering processing device provided in an embodiment of this application. Figure 10 As shown, the device includes:

[0197] The acquisition module 1001 is used to acquire multiple first clusters obtained by clustering multiple object data based on the first clustering algorithm, wherein each first cluster includes at least one object data.

[0198] The acquisition module 1001 is also used to acquire multiple second clusters obtained by clustering multiple object data based on the second clustering algorithm, wherein a second cluster includes at least one object data.

[0199] The determination module 1002 is used to determine a first cross-tabulation based on multiple first clusters and multiple second clusters. A row of data in the first cross-tabulation represents the data of each object in a first cluster, and a column of data in the first cross-tabulation represents the data of each object in a second cluster.

[0200] The determination module 1002 is also used to determine multiple third clusters based on the first cross-tabulation, wherein a third cluster includes at least one object data.

[0201] In one possible implementation, a first cluster corresponds to a first cluster identifier, a second cluster corresponds to a second cluster identifier, and an object data includes an object identifier.

[0202] The determination module 1002 is used to determine the object identifier corresponding to each cluster identifier set based on the first cluster identifier of each first cluster, the object identifier of each object data contained in each first cluster, the second cluster identifier of each second cluster, and the object identifier of each object data contained in each second cluster, wherein a cluster identifier set includes one first cluster identifier and one second cluster identifier; and to determine the first cross-tab based on the number of object identifiers corresponding to each cluster identifier set.

[0203] In one possible implementation, the first cross table includes multiple non-zero data, where the non-zero data represents the number of identical object data contained in the first cluster corresponding to the row containing the non-zero data and the second cluster corresponding to the column containing the non-zero data.

[0204] The determination module 1002 is used to update the first cross-tabulation based on each non-zero data in the first cross-tabulation; and to determine multiple third clusters based on the updated first cross-tabulation.

[0205] In one possible implementation, the determining module 1002 is used to determine the non-zero data in each column that meets the conditions based on the non-zero data contained in each column of the first cross-tabulation; and to update the first cross-tabulation based on the non-zero data contained in each column and the non-zero data in each column that meets the conditions.

[0206] In one possible implementation, the non-zero data that meets the condition in each column includes the largest non-zero data in each column and the second largest non-zero data in each column;

[0207] The determination module 1002 is configured to, in response to the existence of a first column in each column, wherein the largest non-zero data in the first column is greater than N times the second largest non-zero data in the first column, where N is a positive number greater than 1, determine the first non-zero data, update all non-zero data in the first column except for the largest non-zero data in the first column to the target character, and modify the largest non-zero data in the first column to the first non-zero data, wherein the first non-zero data is the sum of all non-zero data in the first column; in response to the existence of a second column in each column, wherein the largest non-zero data in the second column is not greater than N times the second largest non-zero data in the second column, determine the second non-zero data, update all non-zero data in the second column except for the largest non-zero data and the second largest non-zero data in the second column to the target character, and modify the largest non-zero data in the second column to the second non-zero data, wherein the second non-zero data is the sum of all non-zero data in the second column except for the second largest non-zero data in the second column.

[0208] In one possible implementation, the non-zero data in each column that meets the condition includes at least two non-zero data in each column that are greater than the reference value;

[0209] The determination module 1002 is used to determine the average value of each column based on at least two non-zero data points greater than a reference value in each column; and to update the first crosstab based on each non-zero data point contained in each column and the average value of each column.

[0210] In one possible implementation, the determining module 1002 is configured to, in response to the existence of a third column in each column, wherein the largest non-zero data in the third column is greater than M times the average value of the third column, where M is a positive number greater than 1, determine the third non-zero data, update all non-zero data in the third column except for the largest non-zero data in the third column to the target character, and modify the largest non-zero data in the third column to the third non-zero data, wherein the third non-zero data is the sum of all non-zero data in the third column; in response to the existence of a fourth column in each column, wherein the largest non-zero data in the fourth column is not greater than M times the average value of the fourth column, determine the fourth non-zero data, update all non-zero data in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value to the target character, and modify the largest non-zero data in the fourth column to the fourth non-zero data, wherein the fourth non-zero data is the sum of all non-zero data in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value and the largest non-zero data in the fourth column.

[0211] In one possible implementation, the determining module 1002 is used to determine the non-zero data that meets the conditions in each row based on the non-zero data contained in each row of the first cross-tabulation; and to update the first cross-tabulation based on the non-zero data contained in each row and the non-zero data that meets the conditions in each row.

[0212] In one possible implementation, the determining module 1002 is used to determine the coefficient of variation of each column based on the non-zero data contained in each column of the first cross-tabulation, wherein the coefficient of variation of any column is used to characterize the dispersion of the non-zero data contained in any column; and to update the first cross-tabulation based on the coefficient of variation of each column.

[0213] In one possible implementation, the determining module 1002 is configured to, in response to the existence of a fifth column in each column, wherein the coefficient of variation of the fifth column is greater than the target coefficient of variation, determine the fifth non-zero data, update all non-zero data in the fifth column except for the largest non-zero data to the target character, modify the largest non-zero data in the fifth column to the fifth non-zero data, wherein the fifth non-zero data is the sum of all non-zero data in the fifth column.

[0214] In one possible implementation, the determining module 1002 is configured to determine that the sixth column remains unchanged in response to the existence of a sixth column in each column, wherein the coefficient of variation of the sixth column is not greater than the target coefficient of variation.

[0215] In one possible implementation, the number of updated first crosstabs is at least two;

[0216] The determination module 1002 is used to determine the evaluation index of each updated first cross-tabulation, the evaluation index being used to characterize the accuracy of the updated first cross-tabulation; based on the evaluation index of each updated first cross-tabulation, the second cross-tabulation corresponding to the maximum evaluation index is determined from each updated first cross-tabulation; and multiple third clusters are determined based on the second cross-tabulation corresponding to the maximum evaluation index.

[0217] In one possible implementation, the determining module 1002 is used to determine the coefficient of variation of each row based on the non-zero data contained in each row of the first cross-tabulation, wherein the coefficient of variation of any row is used to characterize the dispersion of the non-zero data contained in any row; and to update the first cross-tabulation based on the coefficient of variation of each row.

[0218] In one possible implementation, the object data is the gene expression matrix of the cell;

[0219] The module 1001 is used to cluster the gene expression matrix of multiple cells using the Leiden algorithm to obtain multiple first clusters.

[0220] The acquisition module 1001 is used to cluster the gene expression matrix of multiple cells using a current-level algorithm based on deep learning feature expression to obtain multiple second clusters.

[0221] In one possible implementation, the acquisition module 1001 is further configured to acquire multiple fourth clusters obtained by clustering multiple object data based on the third clustering algorithm, wherein a fourth cluster includes at least one object data.

[0222] The determination module 1002 is also used to determine a third cross table based on multiple third clusters and multiple fourth clusters, where a row of data in the third cross table represents the data of each object in a third cluster, and a column of data in the third cross table represents the data of each object in a fourth cluster.

[0223] The determination module 1002 is also used to determine multiple fifth clusters based on the third cross-tabulation, wherein the fifth cluster includes at least one object data.

[0224] The aforementioned device determines a cross-tabulation based on multiple first clusters and multiple second clusters, and determines multiple third clusters based on this cross-tabulation. The first and second clusters are obtained by clustering multiple object data using different clustering algorithms. This achieves the use of two clustering algorithms to determine the clustering results of multiple object data, thereby improving the accuracy of the clustering results and the accuracy of subsequent data processing.

[0225] It should be understood that the above Figure 10The provided device, in implementing its functions, is only illustrated by the division of the above-described functional modules. In practical applications, the functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation processes are detailed in the method embodiments, and will not be repeated here.

[0226] Figure 11 A structural block diagram of a terminal device 1100 provided in an exemplary embodiment of this application is shown. The terminal device 1100 may be a portable mobile terminal, such as a smartphone, tablet computer, MP3 (Moving Picture Experts Group Audio Layer III) player, MP4 (Moving Picture Experts Group Audio Layer IV) player, laptop computer, or desktop computer. The terminal device 1100 may also be referred to as a user device, portable terminal, laptop terminal, desktop terminal, or other names.

[0227] Typically, terminal device 1100 includes a processor 1101 and a memory 1102.

[0228] Processor 1101 may include one or more processing cores, such as a quad-core processor, an octa-core processor, etc. Processor 1101 may be implemented using at least one hardware form selected from DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array). Processor 1101 may also include a main processor and a coprocessor. The main processor, also known as a CPU (Central Processing Unit), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, processor 1101 may integrate a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content required to be displayed on the screen. In some embodiments, processor 1101 may also include an AI (Artificial Intelligence) processor, which is used to handle computational operations related to machine learning.

[0229] The memory 1102 may include one or more computer-readable storage media, which may be non-transitory. The memory 1102 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In some embodiments, the non-transitory computer-readable storage media in the memory 1102 are used to store at least one instruction, which is executed by the processor 1101 to implement the clustering processing method provided in the method embodiments of this application.

[0230] In some embodiments, the terminal device 1100 may also optionally include: a peripheral device interface 1103 and at least one peripheral device. The processor 1101, memory 1102, and peripheral device interface 1103 can be connected via a bus or signal line. Each peripheral device can be connected to the peripheral device interface 1103 via a bus, signal line, or circuit board. Specifically, the peripheral device includes at least one of: a radio frequency circuit 1104, a display screen 1105, a camera assembly 1106, an audio circuit 1107, a positioning assembly 1108, and a power supply 1109.

[0231] Peripheral device interface 1103 can be used to connect at least one I / O (Input / Output) related peripheral device to processor 1101 and memory 1102. In some embodiments, processor 1101, memory 1102 and peripheral device interface 1103 are integrated on the same chip or circuit board; in some other embodiments, any one or two of processor 1101, memory 1102 and peripheral device interface 1103 can be implemented on separate chips or circuit boards, which is not limited in this embodiment.

[0232] The radio frequency (RF) circuit 1104 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. The RF circuit 1104 communicates with communication networks and other communication devices via electromagnetic signals. The RF circuit 1104 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals back into electrical signals. Optionally, the RF circuit 1104 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, etc. The RF circuit 1104 can communicate with other terminals via at least one wireless communication protocol. This wireless communication protocol includes, but is not limited to: the World Wide Web, metropolitan area networks, intranets, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area networks, and / or WiFi (Wireless Fidelity) networks. In some embodiments, the RF circuit 1104 may also include circuitry related to NFC (Near Field Communication), which is not limited in this application.

[0233] Display screen 1105 is used to display a UI (User Interface). This UI may include graphics, text, icons, videos, and any combination thereof. When display screen 1105 is a touch display screen, it also has the ability to collect touch signals on or above its surface. These touch signals can be input as control signals to processor 1101 for processing. In this case, display screen 1105 can also be used to provide virtual buttons and / or a virtual keyboard, also known as soft buttons and / or a soft keyboard. In some embodiments, there may be one display screen 1105, disposed on the front panel of terminal device 1100; in other embodiments, there may be at least two display screens, disposed on different surfaces of terminal device 1100 or in a folded design; in still other embodiments, display screen 1105 may be a flexible display screen, disposed on a curved or folded surface of terminal device 1100. Furthermore, display screen 1105 may be configured as a non-rectangular, irregular shape, i.e., a non-rectangular screen. The display screen 1105 can be made of materials such as LCD (Liquid Crystal Display) and OLED (Organic Light-Emitting Diode).

[0234] The camera assembly 1106 is used to acquire images or videos. Optionally, the camera assembly 1106 includes a front-facing camera and a rear-facing camera. Typically, the front-facing camera is located on the front panel of the terminal, and the rear-facing camera is located on the back of the terminal. In some embodiments, there are at least two rear-facing cameras, which are any one of a main camera, a depth-sensing camera, a wide-angle camera, and a telephoto camera, to achieve background blurring by fusion of the main camera and the depth-sensing camera, panoramic shooting by fusion of the main camera and the wide-angle camera, VR (Virtual Reality) shooting, or other fusion shooting functions. In some embodiments, the camera assembly 1106 may also include a flash. The flash can be a single-color temperature flash or a dual-color temperature flash. A dual-color temperature flash refers to a combination of a warm light flash and a cool light flash, which can be used for light compensation at different color temperatures.

[0235] The audio circuit 1107 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, converting the sound waves into electrical signals that are input to the processor 1101 for processing, or input to the radio frequency circuit 1104 for voice communication. For stereo sound acquisition or noise reduction purposes, multiple microphones may be used, each located at a different part of the terminal device 1100. The microphone may also be an array microphone or an omnidirectional microphone. The speaker is used to convert electrical signals from the processor 1101 or the radio frequency circuit 1104 into sound waves. The speaker may be a conventional diaphragm speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can convert electrical signals not only into audible sound waves but also into inaudible sound waves for purposes such as distance measurement. In some embodiments, the audio circuit 1107 may also include a headphone jack.

[0236] The positioning component 1108 is used to locate the current geographical location of the terminal device 1100 in order to enable navigation or LBS (Location Based Service). The positioning component 1108 can be a positioning component based on the US GPS (Global Positioning System), China's BeiDou system, or Russia's Galileo system.

[0237] Power supply 1109 is used to supply power to the various components in terminal device 1100. Power supply 1109 can be AC ​​power, DC power, a disposable battery, or a rechargeable battery. When power supply 1109 includes a rechargeable battery, the rechargeable battery can be a wired rechargeable battery or a wireless rechargeable battery. A wired rechargeable battery is a battery that is charged via a wired line, and a wireless rechargeable battery is a battery that is charged via a wireless coil. The rechargeable battery can also be used to support fast charging technology.

[0238] In some embodiments, the terminal device 1100 further includes one or more sensors 1110. The one or more sensors 1110 include, but are not limited to: an accelerometer 1111, a gyroscope 1112, a pressure sensor 1113, a fingerprint sensor 1114, an optical sensor 1115, and a proximity sensor 1116.

[0239] Accelerometer 1111 can detect the magnitude of acceleration along the three coordinate axes of a coordinate system established by terminal device 1100. For example, accelerometer 1111 can be used to detect the components of gravitational acceleration along the three coordinate axes. Processor 1101 can control display screen 1105 to display the user interface in either a landscape or portrait view based on the gravitational acceleration signal acquired by accelerometer 1111. Accelerometer 1111 can also be used for games or for acquiring user motion data.

[0240] The gyroscope sensor 1112 can detect the orientation and rotation angle of the terminal device 1100. The gyroscope sensor 1112 can work in conjunction with the accelerometer sensor 1111 to collect the user's 3D movements on the terminal device 1100. Based on the data collected by the gyroscope sensor 1112, the processor 1101 can perform the following functions: motion sensing (e.g., changing the UI based on the user's tilt), image stabilization during shooting, game control, and inertial navigation.

[0241] The pressure sensor 1113 can be disposed on the side bezel of the terminal device 1100 and / or on the lower layer of the display screen 1105. When the pressure sensor 1113 is disposed on the side bezel of the terminal device 1100, it can detect the user's grip signal on the terminal device 1100, and the processor 1101 can perform left / right hand recognition or quick operation based on the grip signal collected by the pressure sensor 1113. When the pressure sensor 1113 is disposed on the lower layer of the display screen 1105, the processor 1101 can control the operable controls on the UI interface based on the user's pressure operation on the display screen 1105. The operable controls include at least one of button controls, scroll bar controls, icon controls, and menu controls.

[0242] The fingerprint sensor 1114 is used to collect the user's fingerprint. The processor 1101 identifies the user's identity based on the fingerprint collected by the fingerprint sensor 1114, or the fingerprint sensor 1114 identifies the user's identity based on the collected fingerprint. When the user's identity is identified as trusted, the processor 1101 authorizes the user to perform relevant sensitive operations, including unlocking the screen, viewing encrypted information, downloading software, making payments, and changing settings. The fingerprint sensor 1114 can be located on the front, back, or side of the terminal device 1100. When the terminal device 1100 has a physical button or manufacturer logo, the fingerprint sensor 1114 can be integrated with the physical button or manufacturer logo.

[0243] An optical sensor 1115 is used to collect ambient light intensity. In one embodiment, the processor 1101 can control the display brightness of the display screen 1105 based on the ambient light intensity collected by the optical sensor 1115. Specifically, when the ambient light intensity is high, the display brightness of the display screen 1105 is increased; when the ambient light intensity is low, the display brightness of the display screen 1105 is decreased. In another embodiment, the processor 1101 can also dynamically adjust the shooting parameters of the camera assembly 1106 based on the ambient light intensity collected by the optical sensor 1115.

[0244] The proximity sensor 1116, also known as a distance sensor, is typically located on the front panel of the terminal device 1100. The proximity sensor 1116 is used to detect the distance between the user and the front of the terminal device 1100. In one embodiment, when the proximity sensor 1116 detects that the distance between the user and the front of the terminal device 1100 is gradually decreasing, the processor 1101 controls the display screen 1105 to switch from a screen-on state to a screen-off state; when the proximity sensor 1116 detects that the distance between the user and the front of the terminal device 1100 is gradually increasing, the processor 1101 controls the display screen 1105 to switch from a screen-off state to a screen-on state.

[0245] Those skilled in the art will understand that Figure 11 The structure shown does not constitute a limitation on the terminal device 1100, and may include more or fewer components than shown, or combine certain components, or use different component arrangements.

[0246] Figure 12This is a schematic diagram of the server structure provided in the embodiments of this application. The server 1200 can vary considerably due to different configurations or performance. It may include one or more processors 1201 and one or more memories 1202, wherein the one or more memories 1202 store at least one piece of program code. This at least one piece of program code is loaded and executed by the one or more processors 1201 to implement the clustering processing methods provided in the above-described method embodiments. For example, the processor 1201 is a CPU. Of course, the server 1200 may also have wired or wireless network interfaces, keyboards, and input / output interfaces for input and output. The server 1200 may also include other components for implementing device functions, which will not be elaborated here.

[0247] In an exemplary embodiment, a computer-readable storage medium is also provided, which stores at least one piece of program code that is loaded and executed by a processor to enable an electronic device to implement any of the clustering processing methods described above.

[0248] Optionally, the aforementioned computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a compact disc read-only memory (CD-ROM), magnetic tape, floppy disk, and optical data storage device, etc.

[0249] In an exemplary embodiment, a computer program or computer program product is also provided, which stores at least one computer instruction that is loaded and executed by a processor to enable the computer to implement any of the clustering processing methods described above.

[0250] It should be understood that "multiple" as used in this article refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.

[0251] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0252] The above description is merely an exemplary embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A clustering processing method, characterized in that, The method includes: Multiple first clusters are obtained by clustering multiple object data based on a first clustering algorithm. Each first cluster includes at least one object data. The object data includes a gene expression matrix of a cell. The gene expression matrix includes data with multiple rows and columns. The rows of the gene expression matrix represent the expression of a gene under different environmental conditions or at different time points. The columns of the gene expression matrix represent the expression of a gene under different conditions or samples. The data in any row and any column represents the expression level of a gene in a cell. Multiple second clusters are obtained by clustering the multiple object data based on the second clustering algorithm, and each second cluster includes at least one object data. A first cross-tabulation is determined based on the plurality of first clusters and the plurality of second clusters. A row of data in the first cross-tabulation represents the data of each object in a first cluster, and a column of data in the first cross-tabulation represents the data of each object in a second cluster. Based on the first cross-tabulation, multiple third clusters are determined, and each third cluster includes at least one object data.

2. The method according to claim 1, characterized in that, One first cluster corresponds to one first cluster identifier, one second cluster corresponds to one second cluster identifier, and one object data includes one object identifier; The step of determining the first cross-tabulation based on the plurality of first clusters and the plurality of second clusters includes: Based on the first cluster identifier of each first cluster, the object identifier of each object data contained in each first cluster, the second cluster identifier of each second cluster, and the object identifier of each object data contained in each second cluster, the object identifier corresponding to each cluster identifier set is determined. A cluster identifier set includes a first cluster identifier and a second cluster identifier. The first cross-tabulation is determined based on the number of object identifiers corresponding to each cluster identifier set.

3. The method according to claim 1, characterized in that, The first cross table includes multiple non-zero data, wherein the non-zero data represents the number of identical object data contained in the first cluster corresponding to the row containing the non-zero data and the second cluster corresponding to the column containing the non-zero data; The determination of multiple third clusters based on the first cross-tabulation includes: Update the first cross table based on each non-zero data in the first cross table; Multiple third clusters are determined based on the updated first cross-tabulation.

4. The method according to claim 3, characterized in that, Updating the first cross-tab based on each non-zero data in the first cross-tab includes: Based on the non-zero data contained in each column of the first crosstab, determine the non-zero data in each column that meets the conditions; The first cross table is updated based on the non-zero data contained in each column and the non-zero data in each column that meet the conditions.

5. The method according to claim 4, characterized in that, The non-zero data that meets the conditions in each column includes the largest non-zero data in each column and the second largest non-zero data in each column; The step of updating the first crosstab based on the non-zero data contained in each column and the non-zero data in each column that meets the conditions includes: In response to the existence of a first column in each column, where the largest non-zero data in the first column is greater than N times the second largest non-zero data in the first column, where N is a positive number greater than 1, a first non-zero data is determined, and all non-zero data in the first column except for the largest non-zero data in the first column are updated to the target character, and the largest non-zero data in the first column is modified to the first non-zero data, where the first non-zero data is the sum of all non-zero data in the first column.

6. The method according to claim 4, characterized in that, The non-zero data that meets the conditions in each column includes the largest non-zero data in each column and the second largest non-zero data in each column; The step of updating the first crosstab based on the non-zero data contained in each column and the non-zero data in each column that meets the conditions includes: In response to the existence of a second column in each column, wherein the largest non-zero data in the second column is not greater than N times the second largest non-zero data in the second column, where N is a positive number greater than 1, the second non-zero data is determined, and all non-zero data in the second column except for the largest non-zero data and the second largest non-zero data in the second column are updated to the target character, and the largest non-zero data in the second column is modified to the second non-zero data, which is the sum of all non-zero data in the second column except for the second largest non-zero data in the second column.

7. The method according to claim 4, characterized in that, The non-zero data in each column that meets the condition includes at least two non-zero data in each column that are greater than the reference value; The step of updating the first crosstab based on the non-zero data contained in each column and the non-zero data in each column that meets the conditions includes: The average value of each column is determined based on at least two non-zero data points in each column that are greater than the reference value. The first crosstab is updated based on the non-zero data in each column and the average value of each column.

8. The method according to claim 7, characterized in that, The step of updating the first crosstab based on the non-zero data in each column and the average value of each column includes: In response to the existence of a third column in each of the columns, where the largest non-zero data in the third column is greater than M times the average value of the third column, where M is a positive number greater than 1, a third non-zero data is determined. All non-zero data in the third column except for the largest non-zero data in the third column are updated to the target character. The largest non-zero data in the third column is modified to the third non-zero data, which is the sum of all non-zero data in the third column.

9. The method according to claim 7, characterized in that, The step of updating the first crosstab based on the non-zero data in each column and the average value of each column includes: In response to the existence of a fourth column in each of the columns, wherein the largest non-zero data in the fourth column is not greater than M times the average value of the fourth column, where M is a positive number greater than 1, a fourth non-zero data is determined. All non-zero data in the fourth column, excluding at least two non-zero data greater than a reference value, are updated to the target character. The largest non-zero data in the fourth column is modified to the fourth non-zero data, which is the sum of all non-zero data in the fourth column, excluding at least two non-zero data greater than a reference value, and the largest non-zero data in the fourth column.

10. The method according to claim 3, characterized in that, Updating the first cross-tab based on each non-zero data in the first cross-tab includes: Based on the non-zero data contained in each column of the first crosstab, the coefficient of variation of each column is determined. The coefficient of variation of any column is used to characterize the degree of dispersion of the non-zero data contained in any column. The first cross-tabulation is updated based on the coefficient of variation of each column.

11. The method according to claim 10, characterized in that, Updating the first cross-tabulation based on the coefficient of variation of each column includes: In response to the existence of a fifth column in each of the columns, where the coefficient of variation of the fifth column is greater than the target coefficient of variation, a fifth non-zero data is determined. All non-zero data in the fifth column except for the largest non-zero data are updated to the target character. The largest non-zero data in the fifth column is modified to the fifth non-zero data, where the fifth non-zero data is the sum of all non-zero data in the fifth column. If a sixth column exists in each of the columns, and the coefficient of variation of the sixth column is not greater than the target coefficient of variation, then the sixth column is determined to remain unchanged.

12. The method according to claim 3, characterized in that, Updating the first cross-tab based on each non-zero data in the first cross-tab includes: Based on the non-zero data contained in each row of the first crosstab, determine the non-zero data in each row that meets the conditions; The first cross table is updated based on the non-zero data contained in each row and the non-zero data in each row that meets the conditions.

13. The method according to claim 3, characterized in that, Updating the first cross-tab based on each non-zero data in the first cross-tab includes: Based on each non-zero data contained in each row of the first crosstab, the coefficient of variation of each row is determined, and the coefficient of variation of any row is used to characterize the degree of dispersion of each non-zero data contained in any row. The first cross-tabulation is updated based on the coefficient of variation of each row.

14. The method according to claim 3, characterized in that, The number of the updated first cross-tabs is at least two; The determination of multiple third clusters based on the updated first cross-tabulation includes: Determine the evaluation metrics for each updated first cross-tabulation, wherein the evaluation metrics are used to characterize the accuracy of the updated first cross-tabulation; Based on the evaluation metrics of each updated first cross-tabulation, determine the second cross-tabulation corresponding to the maximum evaluation metric from each updated first cross-tabulation. Multiple third clusters are determined based on the second cross-tabulation corresponding to the maximum evaluation index.

15. The method according to any one of claims 1 to 14, characterized in that, The step of obtaining multiple first clusters obtained by clustering multiple object data based on the first clustering algorithm includes: The gene expression matrix of multiple cells was clustered using the Leiden algorithm to obtain multiple first clusters; The step of obtaining multiple second clusters obtained by clustering the multiple object data based on the second clustering algorithm includes: The gene expression matrices of the multiple cells are clustered using a current-level algorithm based on deep learning feature representation to obtain multiple second clusters.

16. The method according to any one of claims 1 to 14, characterized in that, After determining multiple third clusters based on the first cross-tabulation, the process further includes: Obtain multiple fourth clusters obtained by clustering the multiple object data based on the third clustering algorithm, wherein each fourth cluster includes at least one object data; A third cross-tabulation is determined based on the plurality of third clusters and the plurality of fourth clusters. A row of data in the third cross-tabulation represents the data of each object in a third cluster, and a column of data in the third cross-tabulation represents the data of each object in a fourth cluster. Multiple fifth clusters are determined based on the third cross-tabulation, and each fifth cluster includes at least one object data.

17. A clustering processing apparatus, characterized in that, The device includes: The acquisition module is used to acquire multiple first clusters obtained by clustering multiple object data based on the first clustering algorithm. Each first cluster includes at least one object data. The object data includes a gene expression matrix of a cell. The gene expression matrix includes data with multiple rows and columns. The rows of the gene expression matrix represent the expression of a gene under different environmental conditions or at different time points. The columns of the gene expression matrix represent the expression of a gene under different conditions or samples. The data in any row and any column represents the expression level of a gene in a cell. The acquisition module is further configured to acquire multiple second clusters obtained by clustering the multiple object data based on the second clustering algorithm, wherein each second cluster includes at least one object data. The determination module is used to determine a first cross-tabulation based on the plurality of first clusters and the plurality of second clusters, wherein a row of data in the first cross-tabulation represents the data of each object in a first cluster, and a column of data in the first cross-tabulation represents the data of each object in a second cluster; The determining module is further configured to determine multiple third clusters based on the first cross-tabulation, wherein each third cluster includes at least one object data.

18. The apparatus according to claim 17, characterized in that, One first cluster corresponds to one first cluster identifier, one second cluster corresponds to one second cluster identifier, and one object data includes one object identifier; The determining module is used to determine the object identifier corresponding to each cluster identifier set based on the first cluster identifier of each first cluster, the object identifier of each object data contained in each first cluster, the second cluster identifier of each second cluster, and the object identifier of each object data contained in each second cluster, wherein a cluster identifier set includes one first cluster identifier and one second cluster identifier; and to determine the first cross-tabulation based on the number of object identifiers corresponding to each cluster identifier set.

19. The apparatus according to claim 17, characterized in that, The first cross table includes multiple non-zero data, wherein the non-zero data represents the number of identical object data contained in the first cluster corresponding to the row containing the non-zero data and the second cluster corresponding to the column containing the non-zero data; The determining module is used to update the first cross table based on each non-zero data in the first cross table; Multiple third clusters are determined based on the updated first cross-tabulation.

20. The apparatus according to claim 19, characterized in that, The determining module is used to determine the non-zero data that meets the conditions in each column based on the non-zero data contained in each column of the first cross table; The first cross table is updated based on the non-zero data contained in each column and the non-zero data in each column that meet the conditions.

21. The apparatus according to claim 20, characterized in that, The non-zero data that meets the conditions in each column includes the largest non-zero data in each column and the second largest non-zero data in each column; The determining module is configured to, in response to the existence of a first column in each column, wherein the largest non-zero data in the first column is greater than N times the second largest non-zero data in the first column, where N is a positive number greater than 1, determine the first non-zero data, update all non-zero data in the first column except for the largest non-zero data in the first column to the target character, and modify the largest non-zero data in the first column to the first non-zero data, wherein the first non-zero data is the sum of all non-zero data in the first column.

22. The apparatus according to claim 20, characterized in that, The non-zero data that meets the conditions in each column includes the largest non-zero data in each column and the second largest non-zero data in each column; The determining module is configured to, in response to the existence of a second column in each column, wherein the largest non-zero data in the second column is not greater than N times the second largest non-zero data in the second column, where N is a positive number greater than 1, determine the second non-zero data, update all non-zero data in the second column except for the largest non-zero data and the second largest non-zero data in the second column to the target character, and modify the largest non-zero data in the second column to the second non-zero data, wherein the second non-zero data is the sum of all non-zero data in the second column except for the second largest non-zero data in the second column.

23. The apparatus according to claim 20, characterized in that, The non-zero data in each column that meets the condition includes at least two non-zero data in each column that are greater than the reference value; The determining module is used to determine the average value of each column based on at least two non-zero data points in each column that are greater than a reference value; and to update the first cross-tabulation based on each non-zero data point contained in each column and the average value of each column.

24. The apparatus according to claim 23, characterized in that, The determining module is configured to, in response to the existence of a third column in each column, wherein the maximum non-zero data in the third column is greater than M times the average value of the third column, where M is a positive number greater than 1, determine the third non-zero data, update all non-zero data in the third column except for the maximum non-zero data in the third column to the target character, and modify the maximum non-zero data in the third column to the third non-zero data, wherein the third non-zero data is the sum of all non-zero data in the third column.

25. The apparatus according to claim 23, characterized in that, The determining module is configured to, in response to the existence of a fourth column in each column, wherein the maximum non-zero data in the fourth column is not greater than M times the average value of the fourth column, where M is a positive number greater than 1, determine the fourth non-zero data, update all non-zero data in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value to the target character, and modify the maximum non-zero data in the fourth column to the fourth non-zero data, wherein the fourth non-zero data is the sum of all non-zero data in the fourth column except for at least two non-zero data in the fourth column that are greater than a reference value and the maximum non-zero data in the fourth column.

26. The apparatus according to claim 19, characterized in that, The determining module is used to determine the coefficient of variation of each column based on the non-zero data contained in each column of the first cross-tabulation, wherein the coefficient of variation of any column is used to characterize the degree of dispersion of the non-zero data contained in any column. The first cross-tabulation is updated based on the coefficient of variation of each column.

27. The apparatus according to claim 26, characterized in that, The determining module is configured to, in response to the existence of a fifth column in each column, wherein the coefficient of variation of the fifth column is greater than the target coefficient of variation, determine the fifth non-zero data, update all non-zero data in the fifth column except for the largest non-zero data to the target character, modify the largest non-zero data in the fifth column to the fifth non-zero data, wherein the fifth non-zero data is the sum of all non-zero data in the fifth column; If a sixth column exists in each of the columns, and the coefficient of variation of the sixth column is not greater than the target coefficient of variation, then the sixth column is determined to remain unchanged.

28. The apparatus according to claim 19, characterized in that, The determining module is used to determine the non-zero data that meets the conditions in each row based on the non-zero data contained in each row of the first cross table; The first cross table is updated based on the non-zero data contained in each row and the non-zero data in each row that meets the conditions.

29. The apparatus according to claim 19, characterized in that, The determining module is used to determine the coefficient of variation of each row based on the non-zero data contained in each row of the first cross-tabulation, wherein the coefficient of variation of any row is used to characterize the degree of dispersion of the non-zero data contained in any row; and to update the first cross-tabulation based on the coefficient of variation of each row.

30. The apparatus according to claim 19, characterized in that, The number of the updated first cross-tabs is at least two; The determining module is used to determine the evaluation index of each updated first cross-tabulation, the evaluation index being used to characterize the accuracy of the updated first cross-tabulation; based on the evaluation index of each updated first cross-tabulation, the second cross-tabulation corresponding to the maximum evaluation index is determined from each updated first cross-tabulation. Multiple third clusters are determined based on the second cross-tabulation corresponding to the maximum evaluation index.

31. The apparatus according to any one of claims 17 to 30, characterized in that, The acquisition module is used to cluster the gene expression matrices of multiple cells using the Leiden algorithm to obtain multiple first clusters; The acquisition module is used to cluster the gene expression matrix of the multiple cells using a current-level algorithm based on deep learning feature expression to obtain multiple second clusters.

32. The apparatus according to any one of claims 17 to 30, characterized in that, The acquisition module is further configured to acquire multiple fourth clusters obtained by clustering the multiple object data based on the third clustering algorithm, wherein each fourth cluster includes at least one object data. The determining module is further configured to determine a third cross table based on the plurality of third clusters and the plurality of fourth clusters, wherein a row of data in the third cross table represents the data of each object in a third cluster, and a column of data in the third cross table represents the data of each object in a fourth cluster. The determining module is further configured to determine multiple fifth clusters based on the third cross-tabulation, wherein the fifth cluster includes at least one object data.

33. An electronic device, characterized in that, The electronic device includes a processor and a memory, the memory storing at least one piece of program code, which is loaded and executed by the processor to enable the electronic device to implement the clustering processing method as described in any one of claims 1 to 16.

34. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores at least one piece of program code, which is loaded and executed by a processor to enable the computer to implement the clustering processing method as described in any one of claims 1 to 16.

35. A computer program product, characterized in that, The computer program product stores at least one computer instruction, which is loaded and executed by a processor to enable the computer to implement the clustering processing method as described in any one of claims 1 to 16.

Citation Information

Patent Citations

  • Gene expression data cancer classification method fusing self-learning and low-rank expression

    CN107526946A

  • Data processing method and device, computer equipment and storage medium

    CN109933610A