1 个不稳定版本
0.1.0 | 2023 年 9 月 26 日 |
---|
#4 在 #变体
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
.
安装
使用 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