Joonas' Note
Content-based File Format Detection (ํ์ผ ํ์ฅ์ ์์ธก) ๋ณธ๋ฌธ
Content-based File Format Detection (ํ์ผ ํ์ฅ์ ์์ธก)
2022. 5. 18. 23:29 joonasDataset
https://www.kaggle.com/datasets/joonasyoon/file-format-detection
Code
https://www.kaggle.com/code/joonasyoon/ml-content-based-file-format-detection
Context
๋ฐ์ดํฐ์ ์ ๋ง๋๋ ๊ฒ๋ถํฐ, ML ๋ชจ๋ธ๊น์ง ์ ๋ถ ๋ง๋ค์ด์ ํ์ธํด๋ดค๋ค.
์ฒ์๋ถํฐ ML ๋ชจ๋ธ๊น์ง ์์ฑํ ์๊ฐ์ ์๋์๊ณ , ํ์ผ์ ํ์ฅ์๋ ๋จ์ํ ์ด๋ฆ์ ์ผ๋ถ์ผ ๋ฟ์ด๋๊น,
ํ์ฅ์๊ฐ ์๋ ์ํ์์ ํ์ผ ๋ด์ฉ๋ง ๋ณด๊ณ ์ด๋ค ์ธ์ด๋ก ์์ฑ๋์๋ ์ง ์์ธกํ ์ ์์๊น? ํ๋ ์๋ฌธ์์ ์ถ๋ฐํ๋ค.
GitHub์๋ ์๋ง์ ์ฝ๋๋ค์ด ์๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๋ก, ๊ทธ๋ฆฌ๊ณ ์๋ง์ ์ฝ๋ ์คํ์ผ๋ก ์์ฑ๋์ด ์๊ณ ๊ณต๊ฐ๋์ด ์๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ ์์งํด์ ๋ฐ์ดํฐ ์ ์ ๋ง๋ค์๋ค.
30๊ฐ๊ฐ ๋๋ ๋ ํฌ์งํ ๋ฆฌ์์ 8๋ง๊ฐ๊ฐ ๋๋ ํ ์คํธ ํ์ผ์ ๋ชจ์๋ค. ๋๋ค์ผ๋ก ๋ชจ์ผ๋ค๋ณด๋ Dart, Rust, C#, Go๋ฅผ ๊ฐ์ฅ ๋ง์ด ๋ชจ์๋ค. ๋๋จธ์ง ์ธ์ด๋ค๋ ํ์ผ ์ฌ์ด์ฆ๋ฅผ ์๊ฐํ๋ฉด ์ ์ ์์ ์๋๋ผ์ ํ์ต์ด ์ด๋ ค์๋ณด์ด์ง๋ ์์๋ค.
๊ทธ๋๋ ํ์ผ์ด 500๊ฐ๋ ๋๋ ์ธ์ด๋ค๋ง ํ์ตํด์ ์์ธกํด๋ณด๊ธฐ๋ก ํ๊ณ , ์ธ์ด๋ค์ ์๋์ ๊ฐ๋ค.
- C
- C#
- C++
- Dart
- Diff
- Elixir
- GAS
- GLSL
- Go
- JSON
- Java
- Javascript
- Julia
- Kotlin
- Markdown
- PHP
- Ruby
- Rust
- SQL
- Text
- YAML
JSON, Text, YAML ๋ ์์ผ๋ ์ด๋ค ํน์ ์ธ์ด๋ผ๊ธฐ๋ณด๋ค๋ ๋ฐ์ดํฐ ํฌ๋งท์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ด ๋ง์๋ณด์ธ๋ค.
ํ ๊ฐ์ง ๊ฑฑ์ ๋๋ ๊ฒ์ ์ ๋ง ์์ ํ ๋๋ค์ธ Text๋ฅผ ์ ๊ฑธ๋ฌ๋ผ ์ ์์ ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ ๊ฒ์ด๋ค.
๋์ ์ ํ๋๋ฅผ ๋ฐ๋ผ์ง ์๊ณ ๋จ์ํ๊ฒ CountVectorizer๋ก ๋ฒกํฐํํด์ ์ ๋ถ ํ์ต์์ผฐ๋๋ฐ, ์์ธ๋ก ์ ๋์จ๋ค. ์์ฃผ ์กฐ๊ธ๋ง ํ์ตํด๋ 80%๋ ์ฝ๊ฒ ๋์ด๊ฐ๋ค.
8๋ง๊ฐ ํ์ผ(์ฝ 1GB)์ ์ ๋ถ ์ฝ์ผ๋ฉด ๋ฒกํฐ ํฌ๊ธฐ๊ฐ 400๋ง ์ ๋๋ ๋๋ค.
Conclusion
LinearSVC:
elapsed time: 0:06:04.338887
accuracy: 94.61%
roc_auc: 0.9877388985308935
LogisticRegression:
elapsed time: 1:06:56.671633
accuracy: 97.02%
roc_auc: 0.9882273614011244
RidgeClassifier:
elapsed time: 0:04:10.478925
accuracy: 55.39%
roc_auc: None
random_forest:
elapsed time: 0:05:06.379483
accuracy: 93.68%
roc_auc: 0.9825555088479243
k_neighbors:
elapsed time: 0:00:33.741252
accuracy: 87.67%
roc_auc: 0.9706357200070198
SGD:
elapsed time: 0:01:24.359626
accuracy: 88.76%
roc_auc: None
์ ๋ฐ์ ์ผ๋ก ์ค์ฝ์ด๊ฐ ๋ฌด์ฒ ๋์ ํธ์ด๋ค. ์ค์ ๋ก ๋ช ๊ฐ๋ฅผ ๋ฝ์์ ๋ชจ๋ธ์ ์ฝ๋๋ฅผ ๋ฃ๊ณ ์์ธก ํด๋์ค๋ฅผ ํ์ธํด๋ณด๋ฉด ์ ๋์จ๋ค.
CountVectorizer์์ ํน์๊ธฐํธ๋ ๊ณต๋ฐฑ, stop words๋ค์ด ์ ๊ฑฐ๋ ํ ๋ฐ ๋จ์ ๋จ์ด๋ค๋ง์ผ๋ก๋ ์ธ์ด๋ฅผ ๊ตฌ๋ถํ ๋งํผ์ ์ ์๋ฏธํ ์ ๋ณด๊ฐ ์๋ ๋ชจ์์ด๋ค. ์์์ปจ๋, ๊ฐ ์ธ์ด๋ง๋ค ์ฐ์ด๋ ์์ฝ์ด๋ค๋ก ๊ตฌ๋ถํ ์ ์๋ ๊ฒ ๊ฐ๋ค.
๊ธ ์๋จ์ ์ฒจ๋ถ๋ ์บ๊ธ ๋ ธํธ๋ถ์์ ์ ์ฒด ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์๋ค.
์ด๊ฑธ ์ด๋๋ค ์จ๋จน์ ์ ์๋ ํ๊ฒ ์ง๋ง, VSCode์์ ์ฌ์ฉํ๊ธฐ๋ ํ๊ณ , Slack์ snippet์์๋ ์ฐ์ด๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
'AI > ๋จธ์ ๋ฌ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๊ตญ ๊ฐ์(1964~2023)๋ฅผ ์ฃผ์ ๋ณ๋ก ๋ชจ์๋ณด๊ธฐ (0) | 2024.03.03 |
---|---|
[ML] ์ฌ์ดํท๋ฐ(scikit-learn) ํด๋ฌ์คํฐ๋ง ๋น๊ต (0) | 2022.05.29 |
[ML/Sklearn] ROC Curve visualization (0) | 2022.04.08 |