Erkundung und Visualisierung von Filmdatensätzen
Sep 11, 2024 pm 04:15 PMEinführung
Übung macht den Meister.
Etwas, das viel mit dem Beruf eines Datenwissenschaftlers gemeinsam hat. Die Theorie ist nur ein Aspekt der Gleichung; Der wichtigste Aspekt ist die Umsetzung der Theorie in die Praxis. Ich werde mir die Mühe machen, den gesamten heutigen Entwicklungsprozess meines Abschlussprojekts aufzuzeichnen, zu dem auch das Studium eines Filmdatensatzes gehört.
Das sind die Ziele:
Ziel:
- Laden Sie einen Filmdatensatz von Kaggle herunter oder rufen Sie ihn mit der TMDb-API ab.
- Erkunden Sie verschiedene Aspekte wie Filmgenres, Bewertungen, Beliebtheit des Regisseurs und Trends im Erscheinungsjahr.
- Erstellen Sie Dashboards, die diese Trends visualisieren und optional Filme basierend auf Benutzerpräferenzen empfehlen.
1. Datenerfassung
Ich habe mich entschieden, Kaggle zu verwenden, um meinen Datensatz zu finden. Es ist wichtig, die entscheidenden Variablen im Auge zu behalten, die Sie für den Datensatz benötigen, mit dem Sie arbeiten. Wichtig ist, dass mein Datensatz Folgendes umfassen sollte: Trends im Erscheinungsjahr, Beliebtheit von Regisseuren, Einschaltquoten und Filmgenres. Daher muss ich sicherstellen, dass der von mir ausgewählte Datensatz mindestens Folgendes aufweist:
Mein Datensatz befand sich auf Kaggle und ich werde den Link unten bereitstellen. Sie können die CSV-Version der Datei erhalten, indem Sie den Datensatz herunterladen, ihn entpacken und extrahieren. Sie können einen Blick darauf werfen, um zu verstehen, was Sie bereits haben, und um wirklich zu erkennen, welche Erkenntnisse Sie aus den zu untersuchenden Daten gewinnen möchten.
2. Beschreiben der Daten
Zuerst müssen wir die erforderlichen Bibliotheken importieren und die erforderlichen Daten laden. Ich verwende für mein Projekt die Programmiersprache Python und Jupyter Notebooks, damit ich meinen Code effizienter schreiben und anzeigen kann.
Sie importieren die Bibliotheken, die wir verwenden werden, und laden die Daten wie unten gezeigt.
Wir führen dann den folgenden Befehl aus, um weitere Details zu unserem Datensatz zu erhalten.
data.head() # dispalys the first rows of the dataset. data.tail() # displays the last rows of the dataset. data.shape # Shows the total number of rows and columns. len(data.columns) # Shows the total number of columns. data.columns # Describes different column names. data.dtypes # Describes different data types.
Nachdem wir alle benötigten Beschreibungen erhalten haben, wissen wir jetzt, was der Datensatz umfasst und welche Erkenntnisse wir gewinnen möchten. Beispiel: Mithilfe meines Datensatzes möchte ich Muster in der Beliebtheit von Regisseuren, der Einschaltquotenverteilung und den Filmgenres untersuchen. Ich möchte auch Filme vorschlagen, die auf den vom Benutzer ausgewählten Vorlieben basieren, z. B. bevorzugten Regisseuren und Genres.
3. Datenbereinigung
In dieser Phase geht es darum, alle Nullwerte zu finden und zu entfernen. Um mit der Datenvisualisierung fortzufahren, werden wir unseren Datensatz auch auf Duplikate untersuchen und alle gefundenen Duplikate entfernen. Dazu führen wir den folgenden Code aus:
1. data['show_id'].value_counts().sum() # Checks for the total number of rows in my dataset 2. data.isna().sum() # Checks for null values(I found null values in director, cast and country columns) 3. data[['director', 'cast', 'country']] = data[['director', 'cast', 'country']].replace(np.nan, "Unknown ") # Fill null values with unknown.
Wir löschen dann die Zeilen mit unbekannten Werten und bestätigen, dass wir sie alle gelöscht haben. Wir prüfen auch die Anzahl der verbleibenden Zeilen mit bereinigten Daten.
Der folgende Code sucht nach eindeutigen Merkmalen und Duplikaten. Obwohl mein Datensatz keine Duplikate enthält, müssen Sie ihn möglicherweise dennoch verwenden, falls dies in zukünftigen Datensätzen der Fall sein sollte.
data.duplicated().sum() # Checks for duplicates data.nunique() # Checks for unique features data.info # Confirms if nan values are present and also shows datatypes.
Mein Datums-/Uhrzeitdatentyp ist ein Objekt und ich möchte, dass es im richtigen Datums-/Uhrzeitformat vorliegt, das ich verwendet habe
data['date_added']=data['date_added'].astype('datetime64[ms]'), um es in das richtige Format zu konvertieren.
4. Datenvisualisierung
Mein Datensatz enthält zwei Arten von Variablen, nämlich die Typen „TV-Sendungen“ und „Filme“, und ich habe ein Balkendiagramm verwendet, um die kategorialen Daten mit den Werten darzustellen, die sie darstellen.
Ich habe auch ein Kreisdiagramm verwendet, um das Gleiche wie oben darzustellen. Der verwendete Code ist wie folgt und das erwartete Ergebnis wird unten angezeigt.
## Pie chart display plt.figure(figsize=(8, 8)) data['type'].value_counts().plot( kind='pie', autopct='%1.1f%%', colors=['skyblue', 'lightgreen'], startangle=90, explode=(0.05, 0) ) plt.title('Distribution of Content Types (Movies vs. TV Shows)') plt.ylabel('') plt.show()
- Ich habe dann einen tabellarischen Vergleich mit pd.crossstab(data.type, data.country) durchgeführt, um einen tabellarischen Vergleich der Typen basierend auf Veröffentlichungsdaten, Ländern und anderen Faktoren zu erstellen (Sie können versuchen, die Spalten im Code zu ändern unabhängig). Nachfolgend finden Sie den zu verwendenden Code und den erwarteten Vergleich. Ich habe auch die ersten 20 Länder überprüft, die bei der Produktion von Fernsehsendungen führend sind, und sie in einem Balkendiagramm visualisiert. Sie können den Code im Bild kopieren und sicherstellen, dass das Ergebnis fast meinem ähnelt.
- I then checked for the top 10 movie genre as shown below. You can also use the code to check for TV shows. Just substitute with proper variable names.
- I extracted months and years separately from the dates provided so that I could visualize some histogram plots over the years.
- Checked for the top 10 directors with the most movies and compared them using a bar graph.
- Checked for the cast with the highest rating and visualized them.
5. Recommendation System
I then built a recommendation system that takes in genre or director's name as input and produces a list of movies as per the user's preference. If the input cannot be matched by the algorithm then the user is notified.
The code for the above is as follows:
def recommend_movies(genre=None, director=None): recommendations = data if genre: recommendations = recommendations[recommendations['listed_in'].str.contains(genre, case=False, na=False)] if director: recommendations = recommendations[recommendations['director'].str.contains(director, case=False, na=False)] if not recommendations.empty: return recommendations[['title', 'director', 'listed_in', 'release_year', 'rating']].head(10) else: return "No movies found matching your preferences." print("Welcome to the Movie Recommendation System!") print("You can filter movies by Genre or Director (or both).") user_genre = input("Enter your preferred genre (or press Enter to skip): ") user_director = input("Enter your preferred director (or press Enter to skip): ") recommendations = recommend_movies(genre=user_genre, director=user_director) print("\nRecommended Movies:") print(recommendations)
Conclusion
My goals were achieved, and I had a great time taking on this challenge since it helped me realize that, even though learning is a process, there are days when I succeed and fail. This was definitely a success. Here, we celebrate victories as well as defeats since, in the end, each teach us something. Do let me know if you attempt this.
Till next time!
Note!!
The code is in my GitHub:
https://github.com/MichelleNjeri-scientist/Movie-Dataset-Exploration-and-Visualization
The Kaggle dataset is:
https://www.kaggle.com/datasets/shivamb/netflix-shows
Das obige ist der detaillierte Inhalt vonErkundung und Visualisierung von Filmdatensätzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

So herunterladen Sie Dateien in Python

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Einführung des natürlichen Sprach -Toolkits (NLTK)

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?
