|
|
4 weeks ago | |
|---|---|---|
| .. | ||
| R | 11 months ago | |
| README.md | 4 weeks ago | |
| assignment.md | 6 months ago | |
| notebook-covidspread.ipynb | 6 months ago | |
| notebook-papers.ipynb | 11 months ago | |
| notebook.ipynb | 11 months ago | |
README.md
Εργασία με Δεδομένα: Python και η Βιβλιοθήκη Pandas
![]() |
|---|
| Εργασία με Python - Σχεδιάγραμμα από @nitya |
Ενώ οι βάσεις δεδομένων προσφέρουν πολύ αποδοτικούς τρόπους αποθήκευσης και ερωτηματολογίας των δεδομένων χρησιμοποιώντας γλώσσες ερωτημάτων, ο πιο ευέλικτος τρόπος επεξεργασίας δεδομένων είναι να γράψετε το δικό σας πρόγραμμα για να χειριστείτε τα δεδομένα. Σε πολλές περιπτώσεις, η εκτέλεση ενός ερωτήματος σε βάση δεδομένων είναι πιο αποτελεσματική. Ωστόσο, σε κάποιες περιπτώσεις που απαιτείται πιο πολύπλοκη επεξεργασία δεδομένων, αυτό δεν μπορεί να γίνει εύκολα με SQL. Η επεξεργασία δεδομένων μπορεί να προγραμματιστεί σε οποιαδήποτε γλώσσα προγραμματισμού, αλλά υπάρχουν ορισμένες γλώσσες υψηλότερου επιπέδου όσον αφορά την εργασία με δεδομένα. Οι επιστήμονες δεδομένων προτιμούν τυπικά μία από τις ακόλουθες γλώσσες:
- Python, μια γλώσσα προγραμματισμού γενικού σκοπού, που συχνά θεωρείται μία από τις καλύτερες επιλογές για αρχάριους λόγω της απλότητάς της. Η Python έχει πολλές επιπλέον βιβλιοθήκες που μπορούν να σας βοηθήσουν να λύσετε πολλά πρακτικά προβλήματα, όπως η εξαγωγή των δεδομένων σας από αρχείο ZIP ή η μετατροπή εικόνας σε κλίμακα του γκρίζου. Εκτός από την επιστήμη δεδομένων, η Python χρησιμοποιείται συχνά και για ανάπτυξη ιστοσελίδων.
- R είναι ένα παραδοσιακό σύνολο εργαλείων που αναπτύχθηκε με γνώμονα την στατιστική επεξεργασία δεδομένων. Περιέχει επίσης μεγάλο αποθετήριο βιβλιοθηκών (CRAN), καθιστώντας το καλή επιλογή για επεξεργασία δεδομένων. Ωστόσο, το R δεν είναι γλώσσα προγραμματισμού γενικού σκοπού και σπάνια χρησιμοποιείται εκτός του τομέα της επιστήμης δεδομένων.
- Julia είναι μια άλλη γλώσσα που αναπτύχθηκε ειδικά για την επιστήμη δεδομένων. Έχει σκοπό να προσφέρει καλύτερη απόδοση από την Python, καθιστώντας την εξαιρετικό εργαλείο για επιστημονικά πειράματα.
Σ' αυτό το μάθημα θα επικεντρωθούμε στη χρήση της Python για απλή επεξεργασία δεδομένων. Θα υποθέσουμε βασική εξοικείωση με τη γλώσσα. Αν θέλετε μια πιο βαθιά εξερεύνηση της Python, μπορείτε να ανατρέξετε σε έναν από τους παρακάτω πόρους:
- Μάθε Python με Διασκεδαστικό Τρόπο με Turtle Graphics και Fractals - Γρήγορο εισαγωγικό μάθημα για Python στο GitHub
- Κάνε τα Πρώτα σου Βήματα με την Python Μονοπάτι Μάθησης στο Microsoft Learn
Τα δεδομένα μπορούν να έχουν πολλές μορφές. Σ' αυτό το μάθημα θα μελετήσουμε τρεις μορφές δεδομένων - δομημένα δεδομένα σε πίνακες, κείμενο και εικόνες.
Θα επικεντρωθούμε σε λίγα παραδείγματα επεξεργασίας δεδομένων, αντί να σας δώσουμε μια πλήρη εικόνα όλων των σχετικών βιβλιοθηκών. Αυτό θα σας επιτρέψει να πάρετε την κεντρική ιδέα του τι είναι δυνατόν, και να σας αφήσει με την κατανόηση του που να βρείτε λύσεις στα προβλήματά σας όταν τις χρειαστείτε.
Πιο χρήσιμη συμβουλή. Όταν χρειάζεται να εκτελέσετε κάποια λειτουργία σε δεδομένα που δεν ξέρετε πώς να κάνετε, δοκιμάστε να την αναζητήσετε στο διαδίκτυο. Το Stackoverflow συνήθως περιέχει πολλά χρήσιμα παραδείγματα κώδικα σε Python για πολλές τυπικές εργασίες.
Προ-μάθημα Κουίζ
Δομημένα Δεδομένα και Dataframes
Έχετε ήδη συναντήσει τα δομημένα δεδομένα όταν μιλήσαμε για σχεσιακές βάσεις δεδομένων. Όταν έχετε πολλά δεδομένα, και αυτά περιέχονται σε πολλούς διαφορετικούς συνδεδεμένους πίνακες, σίγουρα έχει νόημα να χρησιμοποιείτε SQL για να δουλέψετε με αυτά. Ωστόσο, υπάρχουν πολλές περιπτώσεις όπου έχουμε ένα πίνακα δεδομένων και χρειαζόμαστε να αποκτήσουμε κάποια κατανόηση ή ενδείξεις για αυτά τα δεδομένα, όπως η διανομή, η συσχέτιση μεταξύ τιμών κτλ. Στην επιστήμη δεδομένων, υπάρχουν πολλές περιπτώσεις όπου χρειάζεται να εκτελέσουμε κάποιες μετασχηματισμούς στα αρχικά δεδομένα, ακολουθούμενα από οπτικοποίηση. Και τα δύο αυτά βήματα μπορούν εύκολα να γίνουν με Python.
Υπάρχουν δύο πιο χρήσιμες βιβλιοθήκες στην Python που μπορούν να σας βοηθήσουν να χειριστείτε δομημένα δεδομένα:
- Pandas σας επιτρέπει να χειριστείτε τις λεγόμενες Dataframes, που είναι ανάλογα με πίνακες σχεσιακών βάσεων δεδομένων. Μπορείτε να έχετε ονοματισμένες στήλες, και να εκτελείτε διάφορες λειτουργίες σε γραμμές, στήλες και γενικά στα dataframes.
- Numpy είναι μια βιβλιοθήκη για εργασία με τεντώσεις (tensors), δηλαδή πολυδιάστατους πίνακες (arrays). Ο πίνακας έχει τιμές ίδιου τύπου, και είναι πιο απλός από το dataframe, αλλά προσφέρει περισσότερες μαθηματικές λειτουργίες και δημιουργεί λιγότερο overhead.
Υπάρχουν επίσης μερικές άλλες βιβλιοθήκες που πρέπει να γνωρίζετε:
- Matplotlib είναι βιβλιοθήκη που χρησιμοποιείται για οπτικοποίηση δεδομένων και σχεδίαση γραφημάτων
- SciPy είναι βιβλιοθήκη με επιπλέον επιστημονικές συναρτήσεις. Την έχουμε συναντήσει ήδη όταν μιλούσαμε για πιθανότητες και στατιστική
Εδώ είναι ένα κομμάτι κώδικα που συνήθως χρησιμοποιείτε για να εισάγετε αυτές τις βιβλιοθήκες στην αρχή του προγράμματος Python σας:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # πρέπει να καθορίσετε τα ακριβή υποπακέτα που χρειάζεστε
Η Pandas βασίζεται σε μερικές βασικές έννοιες.
Series
Series είναι μια ακολουθία τιμών, ανάλογη με μια λίστα ή numpy array. Η βασική διαφορά είναι ότι η σειρά έχει και ένα ευρετήριο (index), και όταν δουλεύουμε με σειρές (π.χ., τις προσθέτουμε), το ευρετήριο λαμβάνεται υπόψη. Το ευρετήριο μπορεί να είναι τόσο απλό όσο ο αριθμός γραμμής ακεραίου τύπου (είναι το προεπιλεγμένο ευρετήριο κατά τη δημιουργία σειράς από λίστα ή array), ή μπορεί να έχει πιο σύνθετη δομή, όπως χρονικό διάστημα.
Σημείωση: Υπάρχει κάποιος εισαγωγικός κώδικας Pandas στο συνοδευτικό notebook
notebook.ipynb. Εδώ παρουσιάζουμε κάποιες από τις περιπτώσεις, και σίγουρα μπορείτε να δείτε το πλήρες notebook.
Ας δούμε ένα παράδειγμα: θέλουμε να αναλύσουμε τις πωλήσεις της παγωταρίας μας. Ας δημιουργήσουμε μια σειρά με αριθμούς πωλήσεων (αριθμός ειδών που πωλούνται κάθε μέρα) για κάποιο χρονικό διάστημα:
start_date = "Jan 1, 2020"
end_date = "Mar 31, 2020"
idx = pd.date_range(start_date,end_date)
print(f"Length of index is {len(idx)}")
items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx)
items_sold.plot()
Τώρα υποθέστε ότι κάθε εβδομάδα οργανώνουμε πάρτυ για φίλους, και παίρνουμε επιπλέον 10 πακέτα παγωτό για το πάρτυ. Μπορούμε να δημιουργήσουμε μια άλλη σειρά, με ευρετήριο εβδομάδας, για να το δείξουμε:
additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W"))
Όταν προσθέτουμε δύο σειρές μεταξύ τους, παίρνουμε το συνολικό αριθμό:
total_items = items_sold.add(additional_items,fill_value=0)
total_items.plot()
Σημείωση ότι δεν χρησιμοποιούμε τη απλή σύνταξη
total_items+additional_items. Αν το κάναμε, θα λάβαμε πολλάNaN(Not a Number) τιμές στη σειρά που προκύπτει. Αυτό συμβαίνει επειδή λείπουν τιμές για κάποια σημεία ευρετηρίου στη σειράadditional_items, και η πρόσθεσηNaNσε οτιδήποτε δίνειNaN. Έτσι, πρέπει να καθορίσουμε την παράμετροfill_valueκατά την πρόσθεση.
Με τις χρονικές σειρές μπορούμε επίσης να κάνουμε επαναδειγματοληψία (resample) της σειράς με διαφορετικά χρονικά διαστήματα. Για παράδειγμα, υποθέστε ότι θέλουμε να υπολογίσουμε τον μέσο όρο των πωλήσεων ανά μήνα. Μπορούμε να χρησιμοποιήσουμε τον παρακάτω κώδικα:
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
DataFrame
Ένα DataFrame είναι ουσιαστικά μια συλλογή από σειρές με το ίδιο ευρετήριο. Μπορούμε να συνδυάσουμε πολλές σειρές σε ένα DataFrame:
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])
Αυτό θα δημιουργήσει έναν οριζόντιο πίνακα όπως ο παρακάτω:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | I | like | to | use | Python | and | Pandas | very | much |
Μπορούμε επίσης να χρησιμοποιήσουμε Series σαν στήλες, και να ορίσουμε ονόματα στηλών χρησιμοποιώντας λεξικό:
df = pd.DataFrame({ 'A' : a, 'B' : b })
Αυτό θα μας δώσει έναν πίνακα όπως ο παρακάτω:
| A | B | |
|---|---|---|
| 0 | 1 | I |
| 1 | 2 | like |
| 2 | 3 | to |
| 3 | 4 | use |
| 4 | 5 | Python |
| 5 | 6 | and |
| 6 | 7 | Pandas |
| 7 | 8 | very |
| 8 | 9 | much |
Σημείωση ότι μπορούμε επίσης να πάρουμε αυτή τη διάταξη πίνακα μεταφέροντας (transposing) τον προηγούμενο πίνακα, π.χ. γράφοντας
df = pd.DataFrame([a,b]).T.rename(columns={ 0 : 'A', 1 : 'B' })
Εδώ .T σημαίνει την λειτουργία μεταφοράς του DataFrame, δηλαδή αλλαγή γραμμών και στηλών, και η λειτουργία rename μας επιτρέπει να μετονομάσουμε τις στήλες ώστε να ταιριάζουν με το προηγούμενο παράδειγμα.
Εδώ είναι μερικές από τις πιο σημαντικές λειτουργίες που μπορούμε να εκτελέσουμε στα DataFrames:
Επιλογή στήλης. Μπορούμε να επιλέξουμε μεμονωμένες στήλες γράφοντας df['A'] - αυτή η πράξη επιστρέφει μια Series. Μπορούμε επίσης να επιλέξουμε υπό-σύνολο στηλών σε άλλο DataFrame γράφοντας df[['B','A']] - αυτό επιστρέφει άλλο DataFrame.
Φιλτράρισμα μόνο ορισμένων γραμμών βάσει κριτηρίων. Για παράδειγμα, για να αφήσουμε μόνο γραμμές όπου η στήλη A είναι μεγαλύτερη του 5, μπορούμε να γράψουμε df[df['A']>5].
Σημείωση: Ο τρόπος που δουλεύει το φιλτράρισμα είναι ο ακόλουθος. Η έκφραση
df['A']<5επιστρέφει μία boolean σειρά, που δείχνει αν η έκφραση είναιTrueήFalseγια κάθε στοιχείο της αρχικής σειράςdf['A']. Όταν η boolean σειρά χρησιμοποιείται ως ευρετήριο, επιστρέφει ένα υποσύνολο γραμμών του DataFrame. Επομένως, δεν είναι δυνατό να χρησιμοποιηθούν αυθαίρετες boolean εκφράσεις της Python, π.χ. τοdf[df['A']>5 and df['A']<7]θα ήταν λάθος. Αντίθετα, θα πρέπει να χρησιμοποιήσετε την ειδική λειτουργία&στις boolean σειρές, γράφονταςdf[(df['A']>5) & (df['A']<7)](οι παρενθέσεις είναι σημαντικές εδώ).
Δημιουργία νέων υπολογιζόμενων στηλών. Μπορούμε εύκολα να δημιουργήσουμε νέες υπολογιζόμενες στήλες στο DataFrame μας χρησιμοποιώντας εκφράσεις όπως η εξής:
df['DivA'] = df['A']-df['A'].mean()
Αυτό το παράδειγμα υπολογίζει τη διαφορά της στήλης A από την μέση τιμή της. Στην ουσία υπολογίζουμε μια σειρά, και μετά την αναθέτουμε στην αριστερή πλευρά, δημιουργώντας άλλη μια στήλη. Επομένως, δεν μπορούμε να χρησιμοποιήσουμε λειτουργίες που δεν είναι συμβατές με σειρές, π.χ., ο παρακάτω κώδικας είναι λάθος:
# Λανθασμένος κώδικας -> df['ADescr'] = "Low" αν df['A'] < 5 αλλιώς "Hi"
df['LenB'] = len(df['B']) # <- Λανθασμένο αποτέλεσμα
Το τελευταίο παράδειγμα, ενώ είναι συντακτικά σωστό, παράγει λάθος αποτέλεσμα, γιατί αναθέτει το μήκος της σειράς B σε όλες τις τιμές της στήλης, και όχι το μήκος των μεμονωμένων στοιχείων όπως θέλαμε.
Αν χρειάζεται να υπολογίσουμε σύνθετες εκφράσεις όπως αυτή, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση apply. Το τελευταίο παράδειγμα μπορεί να γραφεί ως εξής:
df['LenB'] = df['B'].apply(lambda x : len(x))
# ή
df['LenB'] = df['B'].apply(len)
Μετά τις παραπάνω λειτουργίες, το DataFrame θα έχει ως εξής:
| A | B | DivA | LenB | |
|---|---|---|---|---|
| 0 | 1 | I | -4.0 | 1 |
| 1 | 2 | like | -3.0 | 4 |
| 2 | 3 | to | -2.0 | 2 |
| 3 | 4 | use | -1.0 | 3 |
| 4 | 5 | Python | 0.0 | 6 |
| 5 | 6 | and | 1.0 | 3 |
| 6 | 7 | Pandas | 2.0 | 6 |
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
Επιλογή γραμμών με βάση αριθμούς μπορεί να γίνει χρησιμοποιώντας iloc. Για παράδειγμα, για να επιλέξουμε τις πρώτες 5 γραμμές από το DataFrame:
df.iloc[:5]
Ομαδοποίηση χρησιμοποιείται συχνά για να προκύψει αποτέλεσμα παρόμοιο με pivot tables στο Excel. Υποθέστε ότι θέλουμε να υπολογίσουμε τη μέση τιμή της στήλης A για κάθε πιθανό αριθμό LenB. Τότε μπορούμε να ομαδοποιήσουμε το DataFrame μας κατά LenB, και να καλέσουμε τη μέθοδο mean:
df.groupby(by='LenB')[['A','DivA']].mean()
Αν θέλουμε να υπολογίσουμε τον μέσο όρο και τον αριθμό των στοιχείων στην ομάδα, μπορούμε να χρησιμοποιήσουμε πιο σύνθετη μέθοδο aggregate:
df.groupby(by='LenB') \
.aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \
.rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'})
Αυτό μας δίνει τον παρακάτω πίνακα:
| LenB | Count | Mean |
|---|---|---|
| 1 | 1 | 1.000000 |
| 2 | 1 | 3.000000 |
| 3 | 2 | 5.000000 |
| 4 | 3 | 6.333333 |
| 6 | 2 | 6.000000 |
Λήψη Δεδομένων
Έχουμε δει πόσο εύκολο είναι να δημιουργήσουμε Series και DataFrames από αντικείμενα Python. Ωστόσο, τα δεδομένα συνήθως προέρχονται σε μορφή αρχείου κειμένου ή πίνακα Excel. Ευτυχώς, το Pandas μας προσφέρει έναν απλό τρόπο για να φορτώνουμε δεδομένα από τον δίσκο. Για παράδειγμα, το διάβασμα ενός αρχείου CSV είναι τόσο απλό όσο το εξής:
df = pd.read_csv('file.csv')
Θα δούμε περισσότερα παραδείγματα φόρτωσης δεδομένων, συμπεριλαμβανομένης της ανάκτησής τους από εξωτερικούς ιστότοπους, στην ενότητα "Challenge"
Εκτύπωση και Σχεδίαση
Ένας Data Scientist συχνά πρέπει να εξερευνά τα δεδομένα, γι' αυτό είναι σημαντικό να μπορεί να τα οπτικοποιεί. Όταν το DataFrame είναι μεγάλο, πολλές φορές θέλουμε απλώς να βεβαιωθούμε ότι κάνουμε τα πάντα σωστά εκτυπώνοντας τις πρώτες λίγες γραμμές. Αυτό μπορεί να γίνει καλώντας τη μέθοδο df.head(). Αν το τρέχετε από το Jupyter Notebook, θα εμφανίσει το DataFrame σε όμορφη πίνακα μορφή.
Έχουμε επίσης δει τη χρήση της συνάρτησης plot για να οπτικοποιήσουμε κάποιες στήλες. Ενώ το plot είναι πολύ χρήσιμο για πολλές εργασίες και υποστηρίζει πολλούς διαφορετικούς τύπους γραφημάτων μέσω της παραμέτρου kind=, μπορείτε πάντα να χρησιμοποιήσετε την ακατέργαστη βιβλιοθήκη matplotlib για να σχεδιάσετε κάτι πιο σύνθετο. Θα καλύψουμε την οπτικοποίηση δεδομένων αναλυτικά σε ξεχωριστά μαθήματα.
Αυτή η επισκόπηση καλύπτει τις πιο σημαντικές έννοιες του Pandas, ωστόσο η βιβλιοθήκη είναι πολύ πλούσια και δεν υπάρχει όριο σε ό,τι μπορείτε να κάνετε με αυτήν! Ας εφαρμόσουμε τώρα αυτή τη γνώση για την επίλυση ενός συγκεκριμένου προβλήματος.
🚀 Πρόκληση 1: Ανάλυση της Εξάπλωσης του COVID
Το πρώτο πρόβλημα στο οποίο θα εστιάσουμε είναι η μοντελοποίηση της επιδημικής εξάπλωσης του COVID-19. Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε τα δεδομένα σχετικά με τον αριθμό των μολυσμένων ατόμων σε διάφορες χώρες, που παρέχονται από το Center for Systems Science and Engineering (CSSE) στο Johns Hopkins University. Το σύνολο δεδομένων είναι διαθέσιμο στο Aποθετήριο GitHub.
Επειδή θέλουμε να δείξουμε πώς να χειριστείτε δεδομένα, σας προσκαλούμε να ανοίξετε το notebook-covidspread.ipynb και να το διαβάσετε από πάνω προς τα κάτω. Μπορείτε επίσης να εκτελέσετε cells και να κάνετε ορισμένες προκλήσεις που σας αφήσαμε στο τέλος.
Αν δεν ξέρετε πώς να τρέξετε κώδικα στο Jupyter Notebook, ρίξτε μια ματιά σε αυτό το άρθρο.
Εργασία με Μη Δομημένα Δεδομένα
Ενώ τα δεδομένα πολύ συχνά έρχονται σε πίνακα μορφή, σε ορισμένες περιπτώσεις πρέπει να ασχοληθούμε με λιγότερο δομημένα δεδομένα, για παράδειγμα, κείμενο ή εικόνες. Σε αυτήν την περίπτωση, για να εφαρμόσουμε τις τεχνικές επεξεργασίας δεδομένων που έχουμε δει παραπάνω, πρέπει κάπως να εξάγουμε δομημένα δεδομένα. Εδώ είναι μερικά παραδείγματα:
- Εξαγωγή λέξεων-κλειδιών από το κείμενο και παρατήρηση της συχνότητας εμφάνισής τους
- Χρήση νευρωνικών δικτύων για εξαγωγή πληροφοριών σχετικά με αντικείμενα στην εικόνα
- Απόκτηση πληροφοριών για τα συναισθήματα των ανθρώπων σε βίντεο
🚀 Πρόκληση 2: Ανάλυση Επιστημονικών Εργασιών για τον COVID
Σε αυτή την πρόκληση, θα συνεχίσουμε με το θέμα της πανδημίας COVID και θα εστιάσουμε στην επεξεργασία επιστημονικών εργασιών πάνω στο θέμα. Υπάρχει το CORD-19 Dataset με πάνω από 7000 (τη στιγμή που γράφεται) εργασίες για τον COVID, διαθέσιμες με μεταδεδομένα και περιλήψεις (και για περίπου τις μισές υπάρχει επίσης παρεχόμενο πλήρες κείμενο).
Ένα πλήρες παράδειγμα ανάλυσης αυτού του συνόλου δεδομένων χρησιμοποιώντας την υπηρεσία Text Analytics for Health περιγράφεται σε αυτή την ανάρτηση ιστολογίου. Θα συζητήσουμε μια απλοποιημένη έκδοση αυτής της ανάλυσης.
ΣΗΜΕΙΩΣΗ: Δεν παρέχουμε αντίγραφο του συνόλου δεδομένων ως μέρος αυτού του αποθετηρίου. Πιθανόν να χρειαστεί πρώτα να κατεβάσετε το αρχείο
metadata.csvαπό αυτό το dataset στο Kaggle. Η εγγραφή στο Kaggle μπορεί να απαιτείται. Μπορείτε επίσης να κατεβάσετε το σύνολο δεδομένων χωρίς εγγραφή από εδώ, αλλά θα περιλαμβάνει όλα τα πλήρη κείμενα επιπλέον του αρχείου μεταδεδομένων.
Ανοίξτε το notebook-papers.ipynb και διαβάστε το από πάνω προς τα κάτω. Μπορείτε επίσης να εκτελέσετε κελιά και να κάνετε μερικές προκλήσεις που σας αφήσαμε στο τέλος.
Επεξεργασία Δεδομένων Εικόνας
Πρόσφατα, έχουν αναπτυχθεί πολύ ισχυρά μοντέλα τεχνητής νοημοσύνης που μας επιτρέπουν να κατανοούμε εικόνες. Υπάρχουν πολλές εργασίες που μπορούν να λυθούν χρησιμοποιώντας προεκπαιδευμένα νευρωνικά δίκτυα ή υπηρεσίες στο νέφος. Μερικά παραδείγματα περιλαμβάνουν:
- Κατηγοριοποίηση Εικόνας, η οποία μπορεί να σας βοηθήσει να κατηγοριοποιήσετε την εικόνα σε μία από τις προεπιλεγμένες κλάσεις. Μπορείτε εύκολα να εκπαιδεύσετε τους δικούς σας ταξινομητές εικόνας χρησιμοποιώντας υπηρεσίες όπως το Custom Vision
- Ανίχνευση Αντικειμένων για την ανίχνευση διαφορετικών αντικειμένων σε μια εικόνα. Υπηρεσίες όπως το computer vision μπορούν να εντοπίσουν έναν αριθμό κοινών αντικειμένων, και μπορείτε να εκπαιδεύσετε το μοντέλο Custom Vision για να ανιχνεύσει ορισμένα συγκεκριμένα αντικείμενα ενδιαφέροντος.
- Ανίχνευση Προσώπου, συμπεριλαμβανομένης της ανίχνευσης Ηλικίας, Φύλου και Συναισθήματος. Αυτό μπορεί να γίνει μέσω του Face API.
Όλες αυτές οι υπηρεσίες στο νέφος μπορούν να κληθούν χρησιμοποιώντας Python SDKs, και έτσι μπορούν εύκολα να ενσωματωθούν στη ροή εργασίας εξερεύνησης δεδομένων σας.
Ακολουθούν μερικά παραδείγματα εξερεύνησης δεδομένων από πηγές Δεδομένων Εικόνας:
- Στην ανάρτηση ιστολογίου Πώς να μάθετε Data Science χωρίς κωδικοποίηση εξερευνούμε φωτογραφίες του Instagram, προσπαθώντας να καταλάβουμε τι κάνει τους ανθρώπους να δίνουν περισσότερα likes σε μια φωτογραφία. πρώτα εξάγουμε όσες περισσότερες πληροφορίες από τις εικόνες μπορούμε χρησιμοποιώντας το computer vision και μετά χρησιμοποιούμε το Azure Machine Learning AutoML για να χτίσουμε ένα ερμηνεύσιμο μοντέλο.
- Στο Facial Studies Workshop χρησιμοποιούμε το Face API για να εξάγουμε συναισθήματα σε άτομα σε φωτογραφίες από εκδηλώσεις, με σκοπό να καταλάβουμε τι κάνει τους ανθρώπους χαρούμενους.
Συμπέρασμα
Είτε έχετε ήδη δομημένα είτε μη δομημένα δεδομένα, χρησιμοποιώντας Python μπορείτε να εκτελέσετε όλα τα βήματα που σχετίζονται με την επεξεργασία και κατανόηση δεδομένων. Προφανώς είναι ο πιο ευέλικτος τρόπος επεξεργασίας δεδομένων, και αυτός είναι ο λόγος που η πλειονότητα των data scientists χρησιμοποιεί την Python ως το βασικό τους εργαλείο. Η εκμάθηση Python σε βάθος είναι πιθανώς καλή ιδέα αν είστε σοβαροί για το ταξίδι σας στην επιστήμη δεδομένων!
Κουίζ μετά το μάθημα
Επανεξέταση & Αυτοδιδασκαλία
Βιβλία
Διαδικτυακοί Πόροι
Εκμάθηση Python
- Μάθετε Python με διασκεδαστικό τρόπο με το Turtle Graphics και Fractals
- Κάντε τα πρώτα σας βήματα με Python Μονοπάτι μάθησης στο Microsoft Learn
Εργασία
Κάντε πιο λεπτομερείς μελέτες δεδομένων για τις παραπάνω προκλήσεις
Ευχαριστίες
Αυτό το μάθημα έχει συγγραφεί με ♥️ από τον Dmitry Soshnikov
Αποποίηση ευθυνών: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης με τεχνητή νοημοσύνη Co-op Translator. Ενώ επιδιώκουμε την ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.






