#csv #数据分析 #PCA #命令行工具 #CLI #变体

应用 pcacsv

使用 pca 库分析 CSV 文件数据的命令行工具

1 个不稳定版本

0.1.0 2023 年 9 月 26 日

#4#变体

MIT/ApacheGPL-3.0-only

24KB
148

pcacsv

读取 CSV 文件,对指定列执行主成分分析(PCA),并将结果输出为包含 PCA 结果的附加列,即线性映射的指定输入值,早期坐标的变异比后期坐标更大,并且坐标是正交的。

示例

使用 80 种谷物 数据集。

$ wget https://gist.github.com/kcoltenbradley/1e8672cb5dff4a4a5e8dbef27ac185f6/raw/9a311a88d5aabdfddd4c9f0d1316612ec33d3d5e/cereal.csv

$ pcacsv 4:15 cereal.csv -o output.csv  -t 0.8

$ xsv table output.csv | head -n5 | cut -c 1-70
coord1   coord2   Cereal Name                  Manufacturer
4.7320   -1.9756  100%_Bran                    Nabisco
2.1465   -1.4111  100%_Natural_Bran            Quaker Oats
4.2294   -2.2574  All-Bran                     Kelloggs
6.1734   -1.7179  All-Bran_with_Extra_Fiber    Kelloggs

$ tail -n +2 output.csv | tr ',_' ' .' | awk '{print $1, $2, $3}' | feedgnuplot --domain --style 0 'with labels' --rangesize 0 2

Visualisation of dimreduced cereal.csv.

安装

使用 cargo install --path .cargo install pcacsv 从源代码安装。

它依赖于 OpenBLAS,(交叉) 编译起来比较麻烦,所以这次在 GitHub 发布版中没有资源。

CLI 选项

pcacsv --help 输出
Usage: pcacsv [OPTIONS]

Positional arguments:
  columns                    List of columns to use as coordinates. First column is number 1. Parsing support ranges with steps like 3,4,10:5:100.
  input_path                 Input CSV file

Optional arguments:
  -o, --output OUTPUT        Save file there instead of stdout
  -n, --no-header            First line of the CSV is not headers
  -N, --no-output-header     Do not output CSV header even though input has headers
  -d, --delimiter DELIMITER  Field delimiter in CSV files. Comma by default.
  -r, --record-delimiter RECORD-DELIMITER
                             Override line delimiter in CSV files.
  -t, --tolerance TOLERANCE  Tolerance for excluding low variance components. If not specified, all components are kept.
  -h, --help

另请参阅

依赖项

~68MB
~879K SLoC