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
GNU: GNU Not Unix

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

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: Tux

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/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;

  1. wget
  2. cat
  3. tac
  4. head
  5. tail
  6. wc
  7. cut
  8. tr
  9. sort
  10. 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
wget komutu

cat Komutu

Bir dosyanın içeriğini komut satırında görüntülemek için en basit yoldur.

cat iris.data
cat komutu

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
tac komutu

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.

sed + tac komutu

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
head komutu [1]

İ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
head komutu [2]

tail Komutu

Veri setine ait son 10 satır görmek için:

tail iris.data yada cat iris.data | tail 
tail komutu [1]

İ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
tail komutu [2]

wc Komutu

Veri setinie ait satır sayısını görmek için:

 wc -l iris.data yada cat iris.data | wc -l 
wc komutu

cut Komutu

Veri seti içerisindeki ilk ve ikinci sütunu seçmek isterseniz:

cut -d ',' -f 1,2 iris.data
cut komutu

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
tr komutu

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
sort komutu
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
shuf komutu

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

Yazar Hakkında
Toplam 7 yazı
Metin USLU
Metin USLU
Veri Bilimci @ LC Waikiki#Programmer #Statistician #ComEngStudent
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara