GNU/Linux üzerinde Bash Komutları ile Veri Seti Keşfi ve Ön İşleme-1
Merhaba,
Bugün sizlerle birlikte Ubuntu GNU/Linux üzerinde Bash komutları ile veri setini inceleme ve bazı önişleme süreçlerini birlikte gerçekleştiriyor olacağız. Ama önce;
GNU (GNU Not Unix)
Richard Stallman 1983’de GNU projesini ilan etti. Amacı tamamen açık kaynak kodlu bir UNIX (işletim sistemi) oluşturmaktı. Çalışmalar 1984 yılında başladı. 1990’da çekirdek hariç neredeyse her şey hazırdı. GNU’nun açılımı, ‘GNU is Not Unix’tir. Yani GNU, ‘GNU, Unix değildir’ anlamına gelmekte olan öz yinelemeli (recursive) bir kelimedir. Daha fazlası için https://www.gnu.org/gnu/manifesto.html
GPL (General Public License)
Yazılan özgür yazılımların bir şemsiye altında toplanması için 1985 yılında yine Richard Stallman tarafından FSF (Free Software Foundation) kuruldu, GPL (General Public Licence), GNU yazılımların özgürlüklerini korumak üzere FSF tarafından duyurulmuş bir yazılım lisansıdır.
Linux
Linus Torvalds adında Finlandiya’lı bir bilgisayar mühendisinin 1991 yılında Helsinki Üniversitesi’nde bir öğrenci iken kişisel bilgisayarında kullanmak üzere geliştirmeye başladığı bir işletim sistemi çekirdeğidir (işletim sisteminin çekirdeği, işletim sisteminin beyni diye tabir edebileceğimiz kısmıdır). İnternette yaptığı duyuru sonucunda tüm dünyadan birçok programcının da desteği ile hızla gelişmiş ve halen aynı destek ile gelişmekte olan açık kaynak kodlu, özgür bir yazılımdır.
GNU/Linux
GNU, GPL ve Linux çekirdeğinin bir araya gelmesi ile GNU/Linux oluştu. Çoğunlukla Linux olarak ifade edilse de daha doğrusu GNU/Linux demektir. Çünkü, Linux çekirdeğin adıdır, geri kalan her şey GNU projesi ile başlamıştır.
“Kimi insanlar milyonlara önderlik etmek için doğar. Kimileri dünyaya, onu değiştiren yazılımlar yazmak için gelir. Tek bir insan bunların ikisini birden yaptı: Torvalds.”
Time
Hazırsanız başlıyorum. Menümüze bakacak olursak;
- wget
- cat
- tac
- head
- tail
- wc
- cut
- tr
- sort
- shuf
shell komutları inceleyeceğiz. Kemelerinizi bağlayın, başlıyoruz 🙂
Ön Bilgi
Bu çalışmayı Ubuntu Desktop 18.04 [Bionic Beaver] https://ubuntu.com/ işletim sistemi üzerinde gerçekleştirmekteyim. Farklı bir distro ya da sürümde üzerinde aynı çıktıları alabilirsiniz. Komutlar hakkında daha fazla bilgi almak isterseniz man command ya da command –help komutlarını inceleyebilirsiniz.
wget Komutu
GNU Wget, internet ağı üzerinden dosyalar indirmeye yarayan, komut satırı üzerinden kullanılan bir indirme yöneticisi. GNU tasarısının parçasıdır. Adı World Wide Web ve get’ten türetilmiştir. HTTP, HTTPS, FTP iletişim kurallarından indirmeyi destekler. Kaynak: https://tr.wikipedia.org/wiki/Wget
Öncelikle public bir veri seti download edelim.
İris Dataset: https://archive.ics.uci.edu/ml/datasets/iris
wget https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
cat Komutu
Bir dosyanın içeriğini komut satırında görüntülemek için en basit yoldur.
cat iris.data
tac Komutu
Bir dosyanın içeriğini komut satırında ters sıralı (reverse) olarak görüntülemek için en basit yoldur.
tac iris.data
Ters (Reserve) olarak sıraladığımızda ilk satırın boş olduğunu tespit ettik. Bu satırı ileride göreceğimiz bir komut olan sed komutu ile silelim.
sed -i '$d' iris.data
-i parametresinin Inplace yani değişikliği üzerine yazacağını ve $d paremetresinin Footer yani son satırı temsil ettiğini belirtelim. Eğer $1 olarak belirtilse idi 1. satırı silecekti.
head Komutu
Verisetine ait varsayılan olarak ilk 10 satırı görmek için kullanılır.
head iris.data yada cat iris.data | head
İstenilen sayıda satırı görmek için -n parametresi kullanılır.
head -n 15 iris.data yada cat iris.data | head -n 15
tail Komutu
Veri setine ait son 10 satır görmek için:
tail iris.data yada cat iris.data | tail
İstenilen sayıda satırı görmek için -n parametresi kullanılır.
tail-n 15 iris.data yada cat iris.data | tail-n 15
wc Komutu
Veri setinie ait satır sayısını görmek için:
wc -l iris.data yada cat iris.data | wc -l
cut Komutu
Veri seti içerisindeki ilk ve ikinci sütunu seçmek isterseniz:
cut -d ',' -f 1,2 iris.data
1. ve 2. sütunları bir dosyaya yazdırmak > redirection ifadesini kullanarak:
cut -d ',' -f 1,2 iris.data > iris_sutun1-2.csv
tr Komutu
Veri setine içerisinde gözlemleri birbirinden ayıran [,] virgül ayırıcısını [;] noktalı virgül olarak değiştirmemizi sağlar.
tr ',' ';' < iris.data
Eğer çıktıyı yeni bir dosyaya yazmak isterseniz > redirection ifadesi ile:
tr ',' ';' < iris.data > iris-2.data
sort komutu
Veri seti içerisindeki üç ve dördüncü sütunlara göre sıralamak isterseniz:
sort -k3 -k4 < iris.data
Reverse Sort için:
sort -r -k3 -k4 < iris.data
Numerik Sort için:
sort -n -k3 -k4 < iris.data
10. shuf Komutu
Veri seti içerisinden 25 adet rastgele gözlem seçmek isterseniz:
shuf -n 25 iris.data
Eğer çıktıyı yeni bir dosyaya yazmak isterseniz > redirection ifadesi ile:
shuf -n 25 iris.data > iris-shuf25.data
Kaynaklar:
https://www.gnu.org/gnu/thegnuproject.tr.html
https://linux.org.tr/
Veri seti üzerinde hızlıca uygulayabileceğimiz 10 adet GNU/Linux komutu yolculuğumuza başladık. Görüş, öneri ve katkıda bulunmak isterseniz uslumetin@gmail.com üzerinden bana ulaşabilirsiniz. Devamı gelecek…
Görüşmek üzere, selamlar ✋✋✋
Saygılarımla,
Metin USLU | Veri Bilimci @ LC Waikiki