pkfsann(1)

πŸ’– NAME πŸ’–

pkfsann β€” feature selection for an nn classifier 🧠✨ (yes that's the whole name, it's giving "short and iconic")


🌸 SYNOPSIS 🌸

pkfsann -t training -n number [options] [advanced options]

✨ DESCRIPTION ✨

okay so real talk bestie 🫢 β€” classification problems with high dimensional input data can be challenging because of the Hughes phenomenon. hyperspectral data, for instance, can have hundreds of spectral bands and needs special attention when it's being classified. and like, especially when you only have limited training data available, classifying that kind of data can be problematic unless you reduce the dimension first. it's giving "too much of a good thing" πŸ’€

pkfsann implements a number of feature selection techniques, and among them is a sequential floating forward search (SFFS) πŸ’…

also go look at the SVM classifier implemented in pksvm(1) β€” it has been shown to be more robust to this type of problem than others πŸ‘‘

πŸŽ€ OPTIONS πŸŽ€

  • -t filename, --training filename β€” the training vector file πŸ“„. a single vector file contains all training features (must be set as: B0, B1, B2,...) for all classes (class numbers get identified by the label option). use multiple training files if you're doing bootstrap aggregation β€” that's the alternative to the bag and bsize options, where a random subset is taken from a single training file 🎲
  • -n number, --nf number β€” number of features to select. set it to 0 to select the optimal number, see also the --ecost option πŸ”’
  • -i filename, --input filename β€” input test set. leave it empty to perform a cross validation based on training only 🌈
  • -v level, --verbose level β€” set to: 0 (results only), 1 (confusion matrix), 2 (debug) πŸ—£οΈ

πŸ¦‹ Advanced options πŸ¦‹

  • -tln layer, --tln layer β€” training layer name(s) 🏷️
  • -label attribute, --label attribute β€” identifier for the class label in the training vector file. (default: label) πŸ”–
  • --balance size β€” balance the input data to this number of samples for each class (default: 0) βš–οΈ
  • -random, --random β€” in case of balance, randomize the input data 🎰
  • -min number, --min number β€” if the number of training pixels is less then min, do not take this class into account πŸ™…
  • -b band, --band band β€” band index (starting from 0, either use the band option or use start to end) 🎚️
  • -sband band, --startband band β€” start band sequence number ▢️
  • -eband band, --endband band β€” end band sequence number ⏹️
  • -offset value, --offset value β€” offset value for each spectral band input features: refl[band]=(DN[band]-offset[band])/scale[band] πŸ“
  • -scale value, --scale value β€” scale value for each spectral band input features: refl=(DN[band]-offset[band])/scale[band] (use 0 if you want scale min and max in each band to -1.0 and 1.0) πŸ“
  • -a 0|1|2, --aggreg 0|1|2 β€” how to combine aggregated classifiers, see also the --rc option (0: no aggregation, 1: sum rule, 2: max rule). 🀝
  • -sm method, --sm method β€” feature selection method (sffs=sequential floating forward search, sfs=sequential forward search, sbs, sequential backward search, bfs=brute force search) πŸ”
  • -ecost value, --ecost value β€” epsilon for the stopping criterion in the cost function, used to determine the optimal number of features πŸ›‘
  • -cv value, --cv value β€” n-fold cross validation mode (default: 0) πŸ”
  • -c name, --class name β€” list of class names. πŸ“›
  • -r value, --reclass value β€” list of class values (use the same order as in the --class option). πŸ”„
  • -n number, --nneuron number β€” number of neurons in the hidden layers in the neural network (multiple hidden layers are set by defining multiple number of neurons: -nn 15 -nn 1, default is one hidden layer with 5 neurons). 🧠
  • --connection 0|1 β€” connection rate (default: 1.0 for a fully connected network) πŸ•ΈοΈ
  • -w weights, --weights weights β€” weights for the neural network. applies to a fully connected network only, starting from the first input neuron to the last output neuron, including the bias neurons (the last neuron in each but the last layer) πŸ‹οΈ
  • -l rate, --learning rate β€” learning rate (default: 0.7) πŸ“ˆ
  • --maxit number β€” number of maximum iterations (epoch) (default: 500) ⏳
ngl bestie, -n really does show up twice in this list β€” once for --nf and once for --nneuron. that's literally what the page says, so I'm not touching it πŸ’€

πŸ‘€ SEE ALSO πŸ‘€

pksvm(1) β€” go read it, it's the moment 🫢


and that's the whole page, you ate it πŸ’…βœ¨ this was pkfsann(1) from 01 January 2025 β€” mwah, go select some features bestie, ily, bye πŸŽ€πŸ¦‹πŸ’–

πŸ“¦ where this page comes from