WEB를 좋아하는 엔지니어가 데이터 과학에 들어가기 위해 통계 지령을 만들었다면

개요


제목과 같이 csv 파일과 tsv 파일의 몇 열만 지정합니다
나는 그 열의 통계 정보를 간단하게 확인할 수 있는 명령을 만들었다.

Colc ( Co lumn x Ca lc ulation)


https://github.com/solaoi/colc

모티프


평소 인터넷 세계에서 생활하는 엔지니어지만 AI와 데이터의 시대!감화되다
데이터 과학을 깨달았기 때문에 데이터와 좋은 친구가 되는 방법을 생각했다.
먼저 통계와 기계 학습을 봤는데 아무리 해도 손가락을 움직일 수가 없어요...
Excel과 Pythhon이랑 사이가 안 좋아요. orz.
따라서 최근 감정을 기탁한 WEB의 선봉장 디노 선생으로 통계 지령을 만들면 좋은 친구가 될 수 있지 않을까?
그런 디렉터리에서 이 Colc 명령을 만들었습니다.

규격.


bash의 head|tail|cut|sort|awk 명령 그룹의 잠금 메모리 동작입니다.
큰 수치를 JavaScript로 처리하기가 힘들기 때문에 맡깁니다.
또한 Deno 파이프에서 명령을 수행하는 것은 이해하기 어렵다
파이프가 있든 없든 실행하고 싶은 명령을 런 방법에 전달하면 실행 결과를 직접 얻을 수 있습니다.
(실행에 시간이 걸리는 경우 회전하는 대기 애니메이션이 중점 w)
https://github.com/solaoi/colc/blob/main/lib/common.ts

사용법


설치 방법


Mac 사용자라면 홈brew를 통해 간단하게 설치할 수 있습니다.
brew install solaoi/tap/colc

실행 예

  • 테스트 결과가 있는 csv 파일을 가정합니다.
  • some.csv)
    Student,Reading,Writing,Math,Science,Social Studies
    A,90,74,33,73,59
    B,83,67,84,41,61
    C,73,72,80,12,93
    D,43,87,67,55,63
    E,33,89,97,76,66
    
  • 두 번째 열의 Reading 통계 정보를 알고 싶으면 다음 명령을 실행하십시오.
  • # colc 何列目か ファイル名
    colc 2 some.csv
    

    some.csv 제2열의 통계 정보
  • 다음에 도수 분포표나 직사각형을 원할 때
    상기 통계 정보를 참고하는binsize는 -b 또는 --binsize 옵션으로 등급 폭을 지정하여 실행합니다.
  • colc 2 some.csv -b 25
    
  • 지정한 열에 수치 이외의 데이터가 섞여 있는지 걱정할 때-c 또는 --check 옵션을 지정하여 수행해도 확인할 수 있습니다.
  • colc 2 some.csv -c
    

    통계 정보


    Colc의 기록
    설명
    count
    행수
    sum
    합계
    range
    최대값-최소값
    zeros
    0개 개수
    zeros(%)
    전체 줄의 0을 차지하는 비율
    negatives
    마이너스의 개수
    negatives(%)
    모든 행의 음수 비율
    min
    최소값
    25%(Q1)
    1,4분위
    median
    중간값
    mean
    평균치
    75%(Q3)
    서너 자리
    max
    최대치
    IQR(Q3-Q1)
    4분위 범위
    Q1–(1.5*IQR)
    편차치 검측이 있는 상자수염도 하한선
    Q3+(1.5*IQR)
    편차치가 검출된 상자수염 상한선
    skewness
    실진도
    kurtosis
    첨도
    SD(σ)
    표준 편차
    SE
    표준 오차
    CV(σ/mean)
    파동 계수
    variance(σ^2)
    편차
    mean±σ(≒68%)
    정적 분포 상황에서 전체 68%의 범위를 포함한다
    mean±2σ(≒95%)
    정규 분포된 상황에서 전체 95%의 범위를 포함한다
    mean±3σ(≒99%)
    정규 분포된 상황에서 전체 99퍼센트의 범위를 포함한다
    binsize(Square-root)
    레벨 너비 참조값(제곱 루트 선택)
    binsize(Sturges')
    레벨 너비 참조값(요약 공식)
    binsize(Scott's)
    레벨 너비 참조값(스콧 공식)
    insize(FD)
    계급폭의 참고치 (프리드만 = 인디언스의 공식)

    후기


    Deno CLI에서 이렇게 간단하게 할 수 있어서 정말 감동적이었습니다.deno compile 지령만으로 2진법으로 토해내서 너무 편해요.
    창고에서GiitHubActions의Workflow를 사용하여Release의Assets에 자동으로 등록
    홈brew tap도 등록했으니까 가능하면 보세요.
    https://github.com/solaoi/colc/blob/main/.github/workflows/release.yml
    또한, 파이톤의 JupytherLab 내에서 EDA를 진행하기 위해
    판다스-profiling과pivottablejs 등을 만져보았지만 대체로 코드를 쓰지 않고 표와 도표로 통계 정보를 보고 다시 감동했다.(처음에 matlibplot을 보더니 코드를 쓰는 게 귀찮은 사람이 됐어요...반성)
    다른 개발에서도 필요한 step API를 간단하게 만드는 도구를 만들었습니다.
    가능하면 이쪽 기사를 보세요.
    https://zenn.dev/aota/articles/49410ad98b33c7

    참고 자료


    https://numb86-tech.hatenablog.com/entry/2020/08/25/213828
    https://stackoverflow.com/questions/62088065/how-do-you-connect-two-pipe-stdin-and-stdout-deno-subprocesses

    좋은 웹페이지 즐겨찾기