# Is it possible to normalize features by one specific feature?

I have a dataset of genes with features that describe the genes at different scales (epigenetic, protein, cell, drug data etc. all numeric data). I use this dataset in supervised ML with a xgboost regression model scoring the genes between 0 to 1 (with 1 being most likely to cause a disease and 0 being least likely).

However, for genes of longer lengths they are more likely to have more data only due to their gene size and not due to them truly being more causal to the disease. This is problematic as when I condense data by taking the most significant data point per gene the longer genes will be biased due to their length (having more data points to choose from in order to have the 1 value per gene for each feature).

I am looking to regulate all my features by gene length, however I am not sure how to do this. By using xgboost I cannot normalize my features as tree-based models are invariant to monotone transformations.

Are there any methods of regulating/normalizing features by another specific feature? I have also tried just including gene length as a feature for the ML model to use itself but this is a difficult blackbox to interpret if the model is truly considering gene length correlations with other features as it should.

edit:

If I were to simply do normalization of gene length such as:

genetic_feature_column_normalised = genetic_feature_column / gene_length_column

Doing this so I normalise each gene's features row by row by each gene's gene length - would that be problematic at all? If this is acceptable would it mean I should or shouldn't include gene length as a feature - as maybe this normalisation could be just a preprocessing step only?

• I'm not sure what them problem is. Re. "likely to have more data only due to their gene size and not due to them truly being more causal to the disease. This is problematic as when I condense data by taking the most significant data point per gene the longer genes will be biased due to their length " - what significant data point are you taking? Why does the gene size mean more data? You mean the values get bigger (e.g. the protein feature might have a higher value because a longer gene produces more types of proteins)? Sep 10, 2020 at 5:07
• Putting a critical part of the above comment another way: just what do you mean by "when I condense data by taking the most significant data point per gene"? Please add that explanation to the question rather than as a comment, as comments can get lost. A bit of biological background with respect to what you are trying to accomplish by "condensing data" would help, too.
– EdM
Sep 14, 2020 at 14:31