Book contents
- Frontmatter
- Contents
- Preface
- Acknowledgements
- 1 Prologue
- 2 A beginners’ guide
- 3 Python basics
- 4 Program control and logic
- 5 Functions
- 6 Files
- 7 Object orientation
- 8 Object data modelling
- 9 Mathematics
- 10 Coding tips
- 11 Biological sequences
- 12 Pairwise sequence alignments
- 13 Multiple-sequence alignments
- 14 Sequence variation and evolution
- 15 Macromolecular structures
- 16 Array data
- 17 High-throughput sequence analyses
- 18 Images
- 19 Signal processing
- 20 Databases
- 21 Probability
- 22 Statistics
- 23 Clustering and discrimination
- 24 Machine learning
- 25 Hard problems
- 26 Graphical interfaces
- 27 Improving speed
- Appendices
- Glossary
- Index
- Plate section
- References
23 - Clustering and discrimination
Published online by Cambridge University Press: 05 February 2015
- Frontmatter
- Contents
- Preface
- Acknowledgements
- 1 Prologue
- 2 A beginners’ guide
- 3 Python basics
- 4 Program control and logic
- 5 Functions
- 6 Files
- 7 Object orientation
- 8 Object data modelling
- 9 Mathematics
- 10 Coding tips
- 11 Biological sequences
- 12 Pairwise sequence alignments
- 13 Multiple-sequence alignments
- 14 Sequence variation and evolution
- 15 Macromolecular structures
- 16 Array data
- 17 High-throughput sequence analyses
- 18 Images
- 19 Signal processing
- 20 Databases
- 21 Probability
- 22 Statistics
- 23 Clustering and discrimination
- 24 Machine learning
- 25 Hard problems
- 26 Graphical interfaces
- 27 Improving speed
- Appendices
- Glossary
- Index
- Plate section
- References
Summary
Separating and grouping data
When dealing with biological information, the question at hand often relates to the ability to separate a pool of data into different groups. This may be a simple two-way split, for example between people who do or do not have a disease, or it may involve many more data categories. Sometimes, however, the number of groups may not be known and it may not even be appropriate to think in terms of rigidly defined groups. Rather, it might be better to first determine the most discriminating features that separate the data and then investigate afterwards whether groups are present, and if so how many. Any kind of discrimination exercise naturally requires some form of information on which a judgement may be based, such as the results from an experiment, which can even include things like DNA sequences. Implicit in this sort of analysis is the notion that units of data are being separated, but each unit may relate to several pieces of information. For example, if a unit of data corresponds to a person they may be diagnosed by several different parameters and test measurements, or if a unit is a biological molecule it may be categorised by many different properties and experimental results.
Whatever the situation and type of data, sometimes the question being asked tries to place each unit of data in one group or another, where there is no possibility of something being in more than one group. Naturally, whether this is a valid assumption will depend on context and the formulation of the problem. In reality, a hard boundary between groups might not actually be as useful as a more fuzzy membership. Referring again to the problem of diagnosing a condition in people using experimental test results, it may be that two people with identical test results have different outcomes; there may not be a simple dividing line between groups. We may have official values to distinguish between ‘underweight’, ‘normal’ and ‘overweight’ people to help guide healthcare, but of course it is a continuous scale, so it may be sufficient to merely separate people (e.g. using height, weight and gender information) and be able to make more flexible decisions, not based on rigid categories.
- Type
- Chapter
- Information
- Python Programming for BiologyBioinformatics and Beyond, pp. 486 - 510Publisher: Cambridge University PressPrint publication year: 2015