Loading...

Movies Scoring and Clustering

This example uses the filmtv_movies dataset to evaluate the quality of the movies and create clusters of similar movies.

The columns provided include:

  • year: Movie’s release year.

  • filmtv_id: Movie ID.

  • title: Movie title.

  • genre: Movie genre.

  • country: Movie’s country of origin.

  • description: Movie description.

  • notes: Information about the movie.

  • duration: Movie duration.

  • votes: Number of votes.

  • avg_vote: Average score.

  • director: Movie director.

  • actors: Actors in the movie.

We will follow the data science cycle (Data Exploration - Data Preparation - Data Modeling - Model Evaluation - Model Deployment) to solve this problem.

Initialization

This example uses the following version of vastorbit:

import vastorbit as vo

vo.__version__

Connect to VAST. This example uses an existing connection called VASTDSN. For details on how to create a connection, see the Connection tutorial. You can skip the below cell if you already have an established connection.

vo.connect("VASTDSN")

Let’s create a new schema and assign the data to a VastFrame object.

filmtv_movies = vo.read_csv("movies.csv")
filmtv_movies.head(5)

Let’s take a look at the first few entries in the dataset.

123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
99%
Abc
genre
Varchar(50)
99%
123
duration
Integer
100%
Abc
country
Varchar(154)
99%
Abc
director
Varchar(632)
99%
Abc
actors
Varchar(1196)
94%
123
avg_vote
Double
100%
123
votes
Integer
100%
Abc
description
Varchar(1213)
0%
Abc
notes
Varchar(626)
0%
12774À bout de souffle1960Drama90FranceJean-Luc GodardHenri Jacques Huet, Jean-Paul Belmondo, Jean Seberg, Van Doude8.3252[null][null]
22775To the Death1992Action90United States[null]John Barrett, Michel Quissi4.01[null][null]
32776Il fiore delle Mille e una notte1974Drama130ItalyPier Paolo PasoliniNinetto Davoli, Franco Citti, Tessa Bouché, Franco Merli7.482[null][null]
42777Steel Magnolias1989Drama119United StatesHerbert RossShirley MacLaine, Sally Field, Julia Roberts, Olympia Dukakis, Daryl Hannah, Dolly Parton, Sam Shepard, Tom Skerritt, Dylan McDermott6.262[null][null]
52778Kaagaz ke phool1959Drama138IndiaGuru DuttGuru Dutt, Waheeda Rehman, Baby Naaz, Mahesh Kaul, Mehmood7.04[null][null]

Data Exploration and Preparation

One of the biggest challenges for any streaming platform is to find a good catalog of movies.

First, let’s explore the dataset.

filmtv_movies.describe(method = "categorical", unique = True)
dtypecounttoptop_percentunique
"filmtv_id"integer53497434760.00253497.0
"title"varchar(255)53497Les Vampires0.01950681.0
"year"integer5348520163.086111.0
"genre"varchar(50)53294Drama30.10627.0
"duration"integer534979011.801283.0
"country"varchar(154)53446United States41.1482396.0
"director"varchar(632)53433Mario Mattòli0.13619179.0
"actors"varchar(1196)50462[null]5.67350208.0
"avg_vote"double534976.015.01289.0
"votes"integer53497122.99588.0
"description"varchar(1213)439[null]99.179434.0
"notes"varchar(626)170[null]99.682169.0

We can drop the description and notes columns since these fields are empty for most of our dataset.

filmtv_movies.drop(["description", "notes"])
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
99%
Abc
genre
Varchar(50)
99%
123
duration
Integer
100%
Abc
country
Varchar(154)
99%
Abc
director
Varchar(632)
99%
Abc
actors
Varchar(1196)
94%
123
avg_vote
Double
100%
123
votes
Integer
100%
12774À bout de souffle1960Drama90FranceJean-Luc GodardHenri Jacques Huet, Jean-Paul Belmondo, Jean Seberg, Van Doude8.3252
22775To the Death1992Action90United States[null]John Barrett, Michel Quissi4.01
32776Il fiore delle Mille e una notte1974Drama130ItalyPier Paolo PasoliniNinetto Davoli, Franco Citti, Tessa Bouché, Franco Merli7.482
42777Steel Magnolias1989Drama119United StatesHerbert RossShirley MacLaine, Sally Field, Julia Roberts, Olympia Dukakis, Daryl Hannah, Dolly Parton, Sam Shepard, Tom Skerritt, Dylan McDermott6.262
52778Kaagaz ke phool1959Drama138IndiaGuru DuttGuru Dutt, Waheeda Rehman, Baby Naaz, Mahesh Kaul, Mehmood7.04
62779Firefox1982Action135United StatesClint EastwoodClint Eastwood, Freddie Jones, David Huffman, Warren Clarke5.884
72780Firenze d'allora[null]History67ItalySandro SequiA. Bianchini, Marisa Fabbri6.01
82781Il fischio al naso1967Grotesque113ItalyUgo TognazziUgo Tognazzi, Tina Louise, Olga Villi, Franca Bettoja, Riccardo Garrone6.856
92782Body Waves1992Comedy78United StatesP. J. PesceBill Calvert, Leah Lail, Larry Linville, Dick Miller5.02
102783Fitzcarraldo1982Adventure158GermanyWerner HerzogKlaus Kinski, Claudia Cardinale, José Lewgoy, Miguel Angel Fuentes8.4168
112784Il fiume del grande caimano1979Adventure90ItalySergio MartinoBarbara Bach, Claudio Cassinelli, Mel Ferrer, Richard Johnson5.124
122786The River1984Drama122United StatesMark RydellMel Gibson, Sissy Spacek, Scott Glenn, Shane Bailey6.030
132787River of Death1989Adventure111United StatesSteve CarverMichael Dudikoff8.03
142789Red River1988Western100United StatesRichard MichaelsJames Arness, Bruce Boxleitner, Ty Hardin, Guy Madison, Ray Walston6.24
152790The Flamingo Kid1984Comedy99United StatesGarry MarshallMatt Dillon, Hector Elizondo, Richard Crenna, Jessica Walter, Joe Grifasi, Janet Jones5.56
162791Flash Gordon1980Fantasy100Great BritainMike HodgesSam Jones, Max Von Sydow, Ornella Muti, Mariangela Melato5.7106
172792Flashback1990Comedy103United StatesFranco AmurriKiefer Sutherland, Dennis Hopper, Carol Kane5.99
182793Flashdance1983Musical89United StatesAdrian LyneJennifer Beals, Michael Nouri, Belinda Bauer, Lilia Skala6.0131
192794La flûte à six schtroumpfs1976Animation80BelgiumEddie Lateste, Peyo[null]6.47
202795Trollflöjten1974Musical135SwedenIngmar BergmanUlrik Cold, Josef Köstlinger, Birgit Nordin, Håkan Hagegård7.929

We have access to more than 50000 movies in 27 different genres. Let’s organize our list by their average rating.

filmtv_movies.sort({"avg_vote" : "desc"})
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
99%
Abc
genre
Varchar(50)
99%
123
duration
Integer
100%
Abc
country
Varchar(154)
99%
Abc
director
Varchar(632)
99%
Abc
actors
Varchar(1196)
94%
123
avg_vote
Double
100%
123
votes
Integer
100%
1162375City of Joy2018Documentary74United States, Republic of the CongoMadeleine GavinChristine Schuler-Deschryver, Denis Mukwege Mukengere, Eve Ensler, Jane Mukunilwa10.01
2163599Degrees of Fear2018Thriller90United StatesDamián RomayClaire Blackwelder, Bryan Lillis, Tim Bensch, William DeAtley, Vergena Fields, Lacy Hartselle, Kelly Heyer, Denise Johnson, Jasmine Johnson, Airica Kraehmer10.01
3162377Te lo dico pianissimo2018Comedy90ItalyPasquale MarrazzoLucia Vasini, Stefano Chiodaroli, Pietro Pignatelli, Cinzia Marseglia, Corinna Agustoni, Tatiana Winteler, Luisa Vernelli, Jacopo Costantini, Renato Cortesi, Luca Torraca, Daniele Squassina, Giorgio Rosa10.01
435311Quem És Tu?2001Drama112PortugalJoão BotelhoPatrícia Guerreiro, Suzana Borges, Rui Morisson, Rogério Samora10.01
534206Banovic Strahinja1981Drama105Yugoslavia, GermanyVatroslav MimicaFranco Nero, Dragan Nikolic, Rade Serbedzija, Sanja Vejnovic10.02
6162017Love in Design2018Romantic90United StatesSteven R. MonroeDanica McKellar, Andrew W. Walker, Alvina August, Jan Skene, Eric Pollins, Brenda Gorlick, Paul Essiembre, Adam Hurtig10.01
735014Der Letzte Akt1955Drama113GermanyGeorg Wilhelm PabstAlbin Skoda, Oskar Werner, Lotte Tobisch, Willy Krause, Erich Stuckmann, Erland Erlandsen, Erik Frey10.01
833964Snow White and Three Stooges1961Comedy107United StatesWalter LangCarol Heiss, Edson Stroll, Patricia Medina, Larry Fine, Joe DeRita10.01
935277Stiletto Dance2001Action97United StatesMario AzzopardiEric Roberts, Shawn Doyle, Romano Orzari, Brett Porter, Yaphet Kotto10.01
1034730The Human Shield1992Action88United StatesTed PostMichael Dudikoff, Tommy Hinkley, Hana Azoulay-Hasfari, Steve Inwood10.01
1135275Expect No Mercy1996Action91United StatesZale DalenAnthony DeLongis, Billy Blanks, Jalal Merhi, Wolf Larson, Laurie Holden10.01
1235049Project Shadowchaser II1995Fantasy94United StatesJohn EyresFrank Zagarino, Bryan Genesse, Beth Toussaint, Danny Hill, Todd Jensen10.01
1334159Donne proibite1954Drama94ItalyGiuseppe AmatoLea Padovani, Valentina Cortese, Linda Darnell, Giulietta Masina, Anthony Quinn, Carlo Dapporto, Rossella Falk, Tino Buazzelli10.01
1433880Angela1955Drama81United States, ItalyEdoardo Anton, Dennis O'KeefeDennis O'Keefe, Rossano Brazzi, Arnaldo Foà, Mara Lane10.01
1533954Strafbataillon 9991959War109GermanyHarald PhilippErnst Schroeder, Werner Peters, Heinz Weiss, Sonja Ziemann10.01
1634645Le défroqué1954Drama107FranceLéo JannonPierre Fresnay, Léo Jannon, René Blancard, Jacques Fabbri10.01
17164301Camminando sull'acqua2016Documentary50ItalyGianmarco D'Agostino[null]10.02
18164063Ostwind - Aris Ankunft2019Adventure104GermanyTheresa von EltzLuna Paiano, Hanna Binke, Marvin Linke, Amber Bongard, Tilo Prückner, Cornelia Froboess, Lili Epply, Sabin Tambrea, Meret Becker, Nina Kronjäger10.01
19164227The Girl1988Drama105Sweden, Great Britain, ItalyArne MattssonFranco Nero, Clare Powney, Bernice Stegers, Frank Brennan, Christopher Lee, Mark Robinson, Derek Benfield, Clifford Rose, Rosie Jauckens, Lenore Zann10.01
20162235Les requins de la colère2015Documentary90FranceJérôme DelafosseRomain Chabrol, Maria Damanaki, Claire Nouvian10.01

Since we want properly averaged scores, let’s just consider the top 10 movies that have at least 10 votes.

filmtv_movies.search(
    conditions = [filmtv_movies["votes"] > 10],
    order_by = {"avg_vote" : "desc" },
)
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
genre
Varchar(50)
99%
123
duration
Integer
100%
Abc
country
Varchar(154)
99%
Abc
director
Varchar(632)
99%
Abc
actors
Varchar(1196)
96%
123
avg_vote
Double
100%
123
votes
Integer
100%
125980The Godfather Trilogy: 1901-19801992Drama583United StatesFrancis Ford CoppolaMarlon Brando, Al Pacino, Robert Duvall, James Caan, Diane Keaton9.833
229136Shoah1985Documentary544FranceClaude Lanzmann[null]9.624
316567Greed1924Drama100United StatesErich Von StroheimGibson Gowland, Jean Hersholt, Chester Conklyn9.658
47753Sunset Boulevard1950Drama100United StatesBilly WilderGloria Swanson, William Holden, Erich Von Stroheim, Nancy Olson, Fred Clark, Cecil B. DeMille, Hedda Hopper, Buster Keaton, Lloyd Gough, Jack Webb9.4535
516584La maman et la putain1973Comedy208FranceJean EustacheJean-Pierre Léaud, Bernadette Lafont, Francoise Lebrun, Isabelle Weingarten9.430
65648Citizen Kane1941Drama119United StatesOrson WellesOrson Welles, Joseph Cotten, Dorothy Comingore9.4588
723395Shichi-nin no Samurai1954Adventure200JapanAkira KurosawaTakashi Shimura, Toshiro Mifune, Yoshio Inaba, Seiji Miyaguchi9.4325
83831Ladri di biciclette1948Drama90ItalyVittorio De SicaLamberto Maggiorani, Enzo Staiola, Lianella Carell, Elena Altieri9.4477
927908Seppuku1962Drama135JapanMasaki KobayashiTatsuya Nakadai, Akira Ishihama, Shima Iwashita, Akira Ishihama9.468
1012135Sátántángo1994Drama450HungaryBéla TarrMihaly Vig, Putyi Horvath, János Derzsi, Miklós Székely B., László feLugossy, Éva Almássy Albert, Irén Szajki, Alfréd Járai, Erzsébet Gaál, Péter Dobai, Zoltán Kamondi, Barna Mihók9.472
117042Modern Times1936Comedy83United StatesCharles ChaplinCharles Chaplin, Paulette Goddard, Henry Bergman9.4427
1210423The Wind1928Drama75United StatesVictor SjöströmLillian Gish, Lars Harson9.329
1326035Zemlja1930Drama84Soviet UnionAleksandr P. DovzenkoStepan Shkurat, Semen Svasenko9.331
1427984Die Zweite Heimat - Chronik einer Jugend1992Drama1525GermanyEdgar ReitzHenry Arnold, Salome Kammer, Anke Sevenich, Noemi Steuer9.318
155580Psycho1960Thriller108United StatesAlfred HitchcockAnthony Perkins, Janet Leigh, Vera Miles, John Gavin, Martin Balsam9.3789
1610559Sherlock Junior1924Comedy42United StatesBuster KeatonBuster Keaton, Kathrin McGuire, Ward Crane9.3123
1718173Ordet1955Drama119DenmarkCarl Theodor DreyerPreben Lendorff Rye, Henrik Malberg, Birgitte Federspiel, Ann Elisabeth Rud9.3148
1828382Tasogare seibei2002Action129JapanYoji YamadaHiroyuki Sanada, Rie Miyazawa, Nenji Kobayashi, Ren Osugi9.317
1912730Paths of Glory1957War86United StatesStanley KubrickGeorge Macready, Timothy Carey, Kirk Douglas, Ralph Meeker, Adolphe Menjou9.3514
2023023Chikamatsu Monogatari1954Drama110JapanKenji MizoguchiKazuo Hasegawa, Yoko Minamida, Eitaro Shindo, Kyôko Kagawa9.350

We can see classic movies like The Godfather and Greed. Let’s smooth the avg_vote using a linear regression to make it more representative.

To create our model we could use the votes, the category, the duration, etc. but let’s go with the director and main actors.

We can extract the five main actors for each movie with regular expressions.

for i in range(1, 5):
    filmtv_movies2 = vo.VastFrame("movies")
    filmtv_movies2.regexp(
        column = "actors",
        method = "substr",
        pattern = '[^,]+',
        occurrence = i,
        name = "actor",
    )
    if i == 1:
        filmtv_movies = filmtv_movies2.copy()
    else:
        filmtv_movies = filmtv_movies.append(filmtv_movies2)
filmtv_movies["actor"].topk(100)
countpercent
Totò1000.047
Ciccio Ingrassia910.043
John Wayne850.04
Franco Franchi830.039
Marcello Mastroianni790.037
Alberto Sordi790.037
Pierre Mondy750.035
David Suchet710.033
Gérard Depardieu700.033
Ugo Tognazzi700.033
Antonella Lualdi670.031
Christopher Lee660.031
Vittorio De Sica660.031
Donald Sutherland660.031
Franco Nero650.03
Harvey Keitel630.029
Nicolas Cage610.029
Bruno Madinier610.029
Sylva Koscina610.029
Burt Lancaster600.028
Christopher Plummer590.028
Michael Caine590.028
Ernest Borgnine590.028
Jackie Chan590.028
Peppino De Filippo580.027
Philippe Leroy570.027
Robert De Niro570.027
Max Von Sydow570.027
Gabriele Ferzetti570.027
Stefania Sandrelli570.027
Martin Sheen560.026
Heide Keller560.026
Adolfo Celi540.025
Giancarlo Giannini540.025
Enrico Maria Salerno540.025
Steven Seagal540.025
Mario Carotenuto540.025
Andrea Checchi530.025
Shelley Winters530.025
Gary Cooper520.024
Alain Delon520.024
Vittorio Gassman520.024
Susan Sarandon520.024
Morgan Freeman520.024
Paolo Stoppa520.024
Gérard Depardieu520.024
Donald Pleasence510.024
Ugo Tognazzi510.024
Carlo Campanini510.024
Glenn Ford510.024
Michel Piccoli510.024
Kirk Douglas500.023
George Sanders500.023
Massimo Serato500.023
Burt Reynolds500.023
Christopher Walken500.023
Mario Adorf490.023
Michele Placido490.023
Anthony Quinn490.023
Isabelle Huppert490.023
Luca Zingaretti490.023
Samuel L. Jackson490.023
Renzo Montagnani480.022
Fernando Rey480.022
Paolo Villaggio480.022
James Mason480.022
Robert Mitchum480.022
Robert Duvall480.022
Alessandro Haber480.022
Vittorio Gassman480.022
Nino Manfredi470.022
James Stewart470.022
Ornella Muti470.022
Bernard Blier470.022
Bruce Willis470.022
Malcolm McDowell470.022
Bruce Dern470.022
Virna Lisi460.021
John Malkovich460.021
Rutger Hauer460.021
Martin Balsam460.021
Jean Gabin460.021
Dennis Hopper460.021
Charlton Heston460.021
Walter Chiari460.021
Ellen Burstyn450.021
Christopher Lloyd450.021
Paul Newman450.021
Charles Bronson450.021
Marcello Mastroianni450.021
Lino Banfi450.021
Charles Durning440.021
Francisco Rabal440.021
Willem Dafoe440.021
Catherine Deneuve440.021
Alberto Sordi440.021
Rod Steiger440.021
Franco Nero440.021
Sophia Loren440.021
Amedeo Nazzari430.02

By aggregating the data, we can find the number of actors and the number of votes by actor. We can then normalize the data using the min-max method and quantify the notoriety of the actors.

import vastorbit.sql.functions as fun

actors_stats = filmtv_movies.groupby(
    columns = ["actor"],
    expr = [
        fun.sum(filmtv_movies["votes"])._as("notoriety_actors"),
        fun.count(filmtv_movies["actors"])._as("castings_actors"),
    ],
)
actors_stats["actor"].dropna()
actors_stats["notoriety_actors"].normalize(method = "minmax")
Abc
actor
Varchar(1196)
100%
123
notoriety_actors
Real
100%
123
castings_actors
Bigint
100%
1 Lorraine Bracco0.1098912313
2 Erminio Macario0.0345633812
3 Eric Walker0.000304971
4 Tim Thomerson0.0063027310
5 Forbes Murray0.004269591
6 Annibale Betrone0.003862973
7 Sergio Fantoni0.0289722517
8 Dean Jagger0.0265324826
9 Frank Baker0.000101662
10 Sherry Buchanan0.007522624
11 Jeff Cameron0.004371253
12 Marisa Merlini0.0941343940
13 Barbara Turner0.000101662
14 Daniel Gélin0.0467622219
15 Raul Julia0.089153220
16 Katherine Helmond0.006506056
17 Beau Bridges0.0422893234
18 Salvatore Borgese0.011487241
19 Judge Reinhold0.0553014124
20 Klaus Kinski0.1098912339

Let’s look at the top ten actors by notoriety.

actors_stats.search(
    order_by = {
        "notoriety_actors" : "desc",
        "castings_actors" : "desc",
    },
).head(10)
Abc
actor
Varchar(1196)
100%
123
notoriety_actors
Decimal(29,8)
100%
123
castings_actors
Bigint
100%
1Robert De Niro1.057
2 Morgan Freeman0.861441552
3Clint Eastwood0.856460343
4Tom Cruise0.8203720634
5Johnny Depp0.8148825934
6Tom Hanks0.7718816737
7 Samuel L. Jackson0.742502849
8Brad Pitt0.7277625326
9Leonardo DiCaprio0.7154620320
10Al Pacino0.6483684140

As expected, we get a list of very popular actors like Robert De Niro, Morgan Freeman, and Clint Eastwood.

Let’s do the same for the directors.

director_stats = filmtv_movies.groupby(
    columns = ["director"],
    expr = [
        fun.sum(filmtv_movies["votes"])._as("notoriety_director"),
        fun.count(filmtv_movies["director"])._as("castings_director"),
    ],
)
director_stats["notoriety_director"].normalize(method = "minmax")
Abc
director
Varchar(632)
99%
123
notoriety_director
Real
100%
123
castings_director
Bigint
100%
1David Lynch0.36759098860
2Rosalia Polizzi0.000173318
3Gabriele Salvatores0.21837088480
4Wisit Sasanatieng0.00216637816
5Chen Kaige0.01256499140
6Peter Docter0.0414211444
7Penny Marshall0.0381282528
8Tamra Davis0.00441941124
9Steve Barron0.01074523436
10Eric Hendershot0.00086655128
11John McTiernan0.14185441944
12Wes Anderson0.20381282536
13David Elvin0.04
14Joris Ivens0.00051993112
15Dennis Dugan0.07894280868
16Andrew Dominik0.04124783416
17Richard Wilson0.00424610120
18Drummond Challis, David Wooster8.6655e-054
19Martin Scorsese0.829289428140
20Roberta Torre0.0115251324

Now let’s look at the top 10 movie directors.

director_stats.search(
    order_by = {
        "notoriety_director" : "desc",
        "castings_director" : "desc",
    },
).head(10)
Abc
director
Varchar(632)
99%
123
notoriety_director
Decimal(30,9)
100%
123
castings_director
Bigint
100%
1Steven Spielberg1.0132
2Woody Allen0.962045061192
3Clint Eastwood0.893067591152
4Martin Scorsese0.829289428140
5Alfred Hitchcock0.753379549208
6Ridley Scott0.693500867112
7Quentin Tarantino0.68674176840
8Stanley Kubrick0.64991334548
9Tim Burton0.58821490572
10David Cronenberg0.51343154284

Again, we get a list of popular directors like Steven Spielberg, Woody Allen, and Clint Eastwood.

Let’s join our notoriety metrics for actors and directors with the main dataset.

filmtv_movies_director = filmtv_movies.join(
    director_stats,
    on = {"director": "director"},
    how = "left",
    expr1 = ["*"],
    expr2 = [
        "notoriety_director",
        "castings_director",
    ],
)
filmtv_movies_director_actors = filmtv_movies_director.join(
    actors_stats,
    on = {"actor": "actor"},
    how = "left",
    expr1 = ["*"],
    expr2 = [
        "notoriety_actors",
        "castings_actors",
    ],
)

As we did many operation, it can be nice to save the VastFrame as a table in the VAST DataBase.

vo.drop("filmtv_movies_director_actors", method = "table")
filmtv_movies_director_actors.to_db(
    name = "filmtv_movies_director_actors",
    relation_type = "table",
    inplace = True,
)

We can aggregate the data to get metrics on each movie.

filmtv_movies_complete = filmtv_movies_director_actors.groupby(
    columns = [
        "filmtv_id",
        "title",
        "year",
        "genre",
        "country",
        "avg_vote",
        "votes",
        "duration",
        "director",
        "notoriety_director",
        "castings_director",
    ],
    expr = [
        fun.sum(filmtv_movies_director_actors["notoriety_actors"])._as("notoriety_actors"),
        fun.sum(filmtv_movies_director_actors["castings_actors"])._as("castings_actors"),
    ],
)

Let’s compute some statistics on our dataset.

filmtv_movies_complete.describe(method = "all")
"filmtv_id""year""avg_vote""votes""duration""notoriety_director""castings_director""notoriety_actors""castings_actors""title""genre""country""director"
dtypeintegerintegerdoubleintegerintegerdecimal(30,9)bigintdecimal(38,8)bigintvarchar(255)varchar(50)varchar(154)varchar(632)
percent100.099.978100.0100.0100.099.8899.8894.32794.327100.099.62199.90599.88
count53497534855349753497534975343353433504625046253497532945344653433
top3412420166.01900.04[null]4Les VampiresDramaUnited StatesMario Mattòli
top_percent0.0023.08615.01222.9911.8017.9822.2975.6736.0360.01930.10641.1480.136
avg44432.839729330621990.9537627372165.844912798848513424.5593584686991898.472026468773950.03035842741.7229053206819740.1517776239.1562958265625617.5171691870572176.514448155514692511.49820379448415214.98412965770217
stddev42399.8854357969322.905567741623351.52459165997518661.0202561195350235.324682991090150.0814243464215096148.100520567945610.2291049603163878834.1932464644624059.6830244791882941.78514130923424236.3615420668071467.952945139332811
min218970.51400.040.011343
approx_25%1510119754.9118156862523962890.000577223170.01003442611115612
approx_50%3144519975.99847540867581855950.0043295827230.05898159301661314
approx_75%5731220106.940050299994486181050.021892866600.20034872582281316
max179937201910.0122252801.02922.2314730126724311104532
range1799351229.5122152401.02882.231473012662428100529
empty[null][null][null][null][null][null][null][null][null]0000

We can use the movie’s release year to get create three categories.

filmtv_movies_complete.case_when(
    "period",
    filmtv_movies_complete["year"] < 1990, "Old",
    filmtv_movies_complete["year"] >= 2000, "Recent", "90s",
)
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
99%
Abc
genre
Varchar(50)
99%
Abc
country
Varchar(154)
99%
123
avg_vote
Double
100%
123
votes
Integer
100%
123
duration
Integer
100%
Abc
director
Varchar(632)
99%
123
notoriety_director
Decimal(30,9)
99%
123
castings_director
Bigint
99%
123
notoriety_actors
Decimal(38,8)
94%
123
castings_actors
Bigint
94%
Abc
period
Varchar(6)
100%
13073Dangerous Game1987ThrillerAustralia6.0198Stephen Hopkins, David Lewis0.040.007725936Old
23076The Falcon and the Snowman1984SpyUnited States6.631127John Schlesinger0.070710572800.4801260674Old
33079Il gioco delle spie1966SpyItaly, France3.5286Paolo Bianchini0.005719237480.0908813764Old
43080Que les gros salaires lèvent le doigt1982ComedyFrance6.01106Denys Granier-Deferre8.6655e-0580.3384161898Old
53090Days of Heaven1978DramaUnited States8.123295Terrence Malick0.190987868400.4834807374Old
63097Giorni felici1942ComedyItaly6.3485Gianni Franciolini0.017417678600.24245197131Old
73131Giovanna d'Arco al rogo1954DramaItaly, France, Great Britain6.02670Roberto Rossellini0.1415077991360.1835925736Old
83152Julia1977DramaUnited States7.753118Fred Zinnemann0.065164645720.37694418117Old
93153Giulietta degli spiriti1965DramaItaly7.3128137Federico Fellini0.283968804880.34248246117Old
103164El Zorro cabalga otra vez1965AdventureItaly, Spain4.0596Ricardo Blasco0.001213172120.004981211Old
113178Il giustiziere dei mari1961AdventureItaly4.9685Domenico Paolella0.0259965341280.1024702791Old
123180Death Wish II1982ActionUnited States5.53692Michael Winner0.038734835880.1739351482Old
133185Gladiator1986AdventureUnited States7.311120Abel Ferrara0.1378682841040.1033851747Old
143207Sitting Pretty1948ComedyUnited States7.4884Walter Lang0.015511265920.099318966Old
153259The Great Scout & Cathouse Thursday1976WesternUnited States6.33102Don Taylor0.020450607640.1737318461Old
163276Grazie nonna1975ComedyItaly3.72690Franco Martinelli0.011265165200.128189538Old
173280Green Card1991ComedyUnited States, France7.096108Peter Weir0.231975737560.3845684710290s
183281Gremlins1984FantasyUnited States7.6272105Joe Dante0.127036395600.1466910720Old
193283A Cry for Love1980DramaUnited States6.01100Paul Wendkos0.0059792031200.0576395217Old
203288El aventurero de Guaynas1967WesternItaly, Spain3.8388Joaquin Luis Romero Marchent0.002859619360.0480837632Old

Now, let’s look at the countries that made the most movies.

filmtv_movies_complete.groupby(
    columns = ["country"],
    expr = ["COUNT(*) AS count"]
).sort({"count" : "desc"}).head(10)
Abc
country
Varchar(154)
99%
123
count
Bigint
100%
1United States22013
2Italy9089
3France3051
4Great Britain2531
5Germany1705
6Japan1133
7Canada1054
8Spain563
9Italy, France403
10Hong Kong380

We can use this variable to create language groups.

# Language Discretization
Arabic_Middle_Est = [
    "Arab", "Iran", "Turkey", "Egypt", "Tunisia",
    "Lebanon", "Palestine", "Morocco", "Iraq",
    "Sudan", "Algeria", "Yemen", "Afghanistan",
    "Azerbaijan", "Kazakhstan", "Kyrgyzstan",
    "Kurdistan", "Syria", "Uzbekistan",
]
Chinese_Japan_Asian = [
    "Japan", "Hong Kong", "China", "South Korea",
    "Thailand", "Philippines", "Taiwan", "Indonesia",
    "Singapore", "Malaysia", "Vietnam", "Laos", "Cambodia",
    "Bhutan",
]
Indian = ["India", "Pakistan", "Nepal", "Sri Lanka", "Bangladesh",]
Hebrew = ["Israel",]
Spanish_Portuguese = [
    "Spain", "Portugal", "Mexico", "Brasil", "Chile",
    "Argentina", "Colombia", "Cuba", "Venezuela", "Peru",
    "Uruguay", "Dominican Republic", "Ecuador", "Guatemala",
    "Costa Rica", "Paraguay", "Bolivia",
]
English = [
    "United States", "England", "Great Britain", "Ireland",
    "Australia", "New Zealand", "South Africa",
]

French = ["France", "Canada", "Belgium", "Switzerland", "Luxembourg",]
Italian = ["Italy",]
German_North_Europe = [
    "German", "Austria", "Holland", "Netherlands", "Denmark",
    "Norway", "Iceland", "Finland", "Sweden", "Greenland",
]

Russian_Est_Europe = ["Russia", "Soviet Union", "Yugoslavia", "Czechoslovakia", "Poland", "Bulgaria", "Croatia", "Czech Republic", "Serbia", "Ukraine", "Slovenia", "Lithuania", "Latvia", "Estonia", "Bosnia and Herzegovina", "Georgia"]

Grec_Balkan = [
    "Greece", "Macedonia", "Cyprus", "Romania", "Armenia", "Hungary",
    "Albania", "Malta",
]
# Creation of the new feature
filmtv_movies_complete.case_when('language_area',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Arabic_Middle_Est))), 'Arabic_Middle_Est',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Chinese_Japan_Asian))), 'Chinese_Japan_Asian',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Indian))), 'Indian',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Hebrew))), 'Hebrew',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Spanish_Portuguese))), 'Spanish_Portuguese',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(English))), 'English',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(French))), 'French',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Italian))), 'Italian',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(German_North_Europe))), 'German_North_Europe',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Russian_Est_Europe))), 'Russian_Est_Europe',
    vo.StringSQL("REGEXP_LIKE(Country, '{}')".format("|".join(Grec_Balkan))), 'Grec_Balkan',
    'Others'
)
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
99%
Abc
genre
Varchar(50)
99%
Abc
country
Varchar(154)
99%
123
avg_vote
Double
100%
123
votes
Integer
100%
123
duration
Integer
100%
Abc
director
Varchar(632)
99%
123
notoriety_director
Decimal(30,9)
99%
123
castings_director
Bigint
99%
123
notoriety_actors
Decimal(38,8)
94%
123
castings_actors
Bigint
94%
Abc
period
Varchar(6)
100%
Abc
language_area
Varchar(19)
100%
125132Buongiorno, notte2003DramaItaly7.5242105Marco Bellocchio0.1820623921200.3366880153RecentItalian
225136Raja2003ComedyFrance, Morocco8.01112Jacques Doillon0.002253033440.00142326RecentArabic_Middle_Est
325162Um filme falado2003DramaPortugal, France, Italy7.37596Manoel de Oliveira0.0551993071320.89620819150RecentSpanish_Portuguese
425164Vozvraschenie2003DramaRussia7.198105Andrej Zvyagintsev0.025563258200.039646236RecentRussian_Est_Europe
525181Lost in Translation2003ComedyUnited States7.3488105Sofia Coppola0.147487002281.0947443375RecentEnglish
625209Ballo a tre passi2003DramaItaly6.727106Salvatore Mereu0.011005199160.0280573310RecentItalian
725221The Lizzie McGuire Movie2003ComedyUnited States4.33793Jim Fall0.005805893160.0507268527RecentEnglish
825234Betty Fisher et autres histoires2001DramaFrance, Canada6.54103Claude Miller0.006499133480.0273457330RecentFrench
925246Rosamunde Pilcher - Mit den Augen der Liebe2002RomanticGermany6.0188Richard Engel8.6655e-0580.0079292552RecentGerman_North_Europe
1025251Maa Bhoomi1979DramaIndia8.01136Goutam Ghose0.00355286520.04OldIndian
1125340The Mummy's Hand1940HorrorUnited States6.5567Christy Cabanne0.000953206160.0526583322OldEnglish
1225351Hurlements en faveur de Sade1952SperimentalFrance7.0775Guy Debord0.00294627416[null][null]OldFrench
1325381Tutto Totò - Premio Nobel1967ComedyItaly5.81047Daniele D'Anza0.009878683720.72227305161OldItalian
1425412Cantando dietro i paraventi2003AdventureItaly7.084100Ermanno Olmi0.1237435011240.2411304226RecentItalian
1525417Deathline1997ActionCanada, Holland4.8393Tibor Takacs0.011265165760.087628354790sFrench
1625420Jason and the Argonauts2000MythologyUnited States5.95175Nick Willing0.007365685320.2587170956RecentEnglish
1725421Zong heng si hai1990ActionHong Kong6.627103John Woo0.149913345800.101352042790sChinese_Japan_Asian
1825430Daddy Day Care2003ComedyUnited States4.46692Steve Carr, Steve Carr0.00563258240.3694215858RecentEnglish
1925433Sabrina, Down Under1999FantasyUnited States6.04120Kenneth R. Koch0.00025996540.007624271590sEnglish
2025435Razzia sur la Chnouf1954CrimeFrance7.120105Henri Decoin0.004592721560.159601569OldFrench

We can do the same for the genres.

filmtv_movies_complete.case_when(
    'Category',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Drama|Noir')"), 'Drama',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Comedy|Grotesque')"), 'Comedy',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Fantasy|Super-hero')"), 'Fantasy',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Romantic|Sperimental|Mélo')"), 'Romantic',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Thriller|Crime|Gangster')"), 'Thriller',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Action|Western|War|Spy')"), 'Action',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Adventure')"), 'Adventure',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Animation')"), 'Animation',
    vo.StringSQL("REGEXP_LIKE(Genre, 'Horror')"), 'Horror',
    'Others'
)
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
99%
Abc
genre
Varchar(50)
99%
Abc
country
Varchar(154)
99%
123
avg_vote
Double
100%
123
votes
Integer
100%
123
duration
Integer
100%
Abc
director
Varchar(632)
99%
123
notoriety_director
Decimal(30,9)
99%
123
castings_director
Bigint
99%
123
notoriety_actors
Decimal(38,8)
94%
123
castings_actors
Bigint
94%
Abc
period
Varchar(6)
100%
Abc
language_area
Varchar(19)
100%
Abc
Category
Varchar(9)
100%
134799Appetite1998HorrorGreat Britain4.2997George Milton0.00069324140.008437531290sEnglishHorror
234838Deceit2004DramaUnited States5.0390John Sacret Young0.00034662120.009454121RecentEnglishDrama
334842Epoch2000FantasyUnited States4.0493Matt Codd0.00077989680.0386296629RecentEnglishFantasy
434847Belle toujours2006ComedyPortugal, France6.94568Manoel de Oliveira0.0551993071320.163159554RecentSpanish_PortugueseComedy
534934A Good Woman2004ComedySpain, Italy, Great Britain, Luxembourg, United States5.92793Mike Barker0.009878683280.7827589763RecentSpanish_PortugueseComedy
635013The Bribe1949NoirUnited States6.0198Robert Z. Leonard0.011178511200.26725627117OldEnglishDrama
735024The Virginian1929WesternUnited States6.5291Victor Fleming0.058925477600.1911151878OldEnglishAction
835106Hell Is a City1960ThrillerGreat Britain4.0188Val Guest0.012218371720.47046864103OldEnglishThriller
935183Vice Squad1982CrimeUnited States5.8497Gary Sherman0.006845754280.0067093612OldEnglishThriller
1035184Tourist Trap1979HorrorUnited States7.51390David Schmoeller0.003032929200.0271424218OldEnglishHorror
1135187Haunted1995HorrorUnited States, Great Britain4.97108Lewis Gilbert0.043154246840.283216425990sEnglishHorror
1235231The Spoilers1930AdventureUnited States6.0186Rex Beach0.040.1613296762OldEnglishAdventure
134887Right to Kill?1985DramaUnited States6.01100John Erman0.002253033480.0093524411OldEnglishDrama
144911Diamond Skull1989DramaGreat Britain6.0184Nick Broomfield0.00025996580.0401545215OldEnglishDrama
154923Orders Are Orders1954ComedyGreat Britain6.0178David Paltenghi0.040.1791196533OldEnglishComedy
164943Caribbean Gold1952AdventureUnited States8.0294Edward Ludwig0.00407279480.0584527864OldEnglishAdventure
174958Oscar1991ComedyUnited States5.570110John Landis0.255372617800.8552404211190sEnglishComedy
184959Young Doctors in Love1982ComedyUnited States4.51695Garry Marshall0.076516464680.3310968782OldEnglishComedy
194963Banco à Bangkok pour Oss 1171963SpyFrance5.84113André Hunebelle0.009098787560.0172816914OldFrenchAction
204974The Osterman Weekend1983ThrillerUnited States7.284101Sam Peckinpah0.152599653560.79882078162OldEnglishThriller

Since we’re more concerned with the Category at this point, we can drop genre.

filmtv_movies_complete.drop(columns = ["genre"])

Let’s look at the missing values.

filmtv_movies_complete.count_percent()
countpercent
"filmtv_id"53497.0100.0
"title"53497.0100.0
"avg_vote"53497.0100.0
"votes"53497.0100.0
"duration"53497.0100.0
"period"53497.0100.0
"language_area"53497.0100.0
"Category"53497.0100.0
"year"53485.099.978
"country"53446.099.905
"director"53433.099.88
"notoriety_director"53433.099.88
"castings_director"53433.099.88
"notoriety_actors"50462.094.327
"castings_actors"50462.094.327

Let’s impute the missing values for notoriety_actors and castings_actors using different techniques.

We can then drop the few remaining missing values.

filmtv_movies_complete["notoriety_actors"].fillna(
    method = "mean",
    by = [
        "director",
        "Category",
    ],
)
filmtv_movies_complete["castings_actors"].fillna(
    method = "mean",
    by = [
        "director",
        "Category",
    ],
)
filmtv_movies_complete.dropna()
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
123
avg_vote
Double
100%
123
votes
Integer
100%
123
duration
Integer
100%
Abc
director
Varchar(632)
100%
123
notoriety_director
Decimal(30,9)
100%
123
castings_director
Bigint
100%
123
notoriety_actors
Real
100%
123
castings_actors
Real
100%
Abc
period
Varchar(6)
100%
Abc
language_area
Varchar(19)
100%
Abc
Category
Varchar(9)
100%
183903Uncle Howard2016Great Britain, United States, Czech Republic, France, Germany5.0496Aaron Brookner0.00025996540.0842736621.0RecentEnglishOthers
217196City Limits1985United States4.0190Aaron Lipstadt0.001559792160.19650355.0OldEnglishAction
322704Ten2002Iran, France6.82294Abbas Kiarostami0.034228769640.00853924.0RecentArabic_Middle_EstComedy
413720Zire derakhatan zeyton1994Iran8.025103Abbas Kiarostami0.034228769640.007319313.090sArabic_Middle_EstComedy
514151Zendegi edame darad1992Iran8.52891Abbas Kiarostami0.034228769640.010978964.090sArabic_Middle_EstComedy
642948Vénus noire2010France6.779159Abdellatif Kechiche0.067590988280.1420148433.0RecentFrenchOthers
773239Yeti2014India8.0162Abhijit Mazumdar0.040.04.0RecentIndianDrama
850405Dabangg2010India6.37126Abhinav Kashyap0.00051993140.0036596510.0RecentIndianAction
976112Standoff2015United States5.61386Adam Alleca0.00103986140.112534334.0RecentEnglishThriller
1085493The Arbalest2016United States6.0273Adam Pinney8.6655e-0540.00284646.0RecentEnglishDrama
11137776iBoy2017Great Britain5.11991Adam Randall0.00155979240.1940632437.0RecentEnglishAction
1269139The Nutt House1992United States1.0194Adam Rifkin0.005112652280.0624174119.090sEnglishComedy
1320170Detroit Rock City1997United States5.62794Adam Rifkin0.005112652280.0528616417.090sEnglishComedy
1414252The Chase1994United States4.32488Adam Rifkin0.005112652280.1147707748.090sEnglishComedy
1539950Homo Erectus2007United States4.5388Adam Rifkin0.005112652280.2934837842.0RecentEnglishComedy
1626677Carnosaur1993United States3.9883Adam Simon0.002512998120.010877316.090sEnglishHorror
174200The Kid from Left Field1979United States6.0192Adell Aldrich0.00025996580.005896119.0OldEnglishComedy
1886411My Name is Adil2016Italy, Morocco7.5274Adil Azzab, Magda Rezene, Andrea Pellizzer8.6655e-0540.000406644.0RecentArabic_Middle_EstDrama
1942618Merlín1991Spain5.7558Adolfo Arrieta0.001993068240.002134816.090sSpanish_PortugueseFantasy
2038001Via del corso2000Italy2.51396Adolfo Lippi0.00103986140.0603842614.0RecentItalianComedy

Before we export the data, we should normalize the numerical columns to get the dummies of the different categories.

filmtv_movies_complete.normalize(
    method = "minmax",
    columns = [
        "votes",
        "duration",
        "notoriety_director",
        "castings_director",
        "notoriety_actors",
        "castings_actors",
    ],
)
for elem in ["category", "period", "language_area"]:
    filmtv_movies_complete[elem].one_hot_encode(drop_first = True)

We can export the results to our VAST DataBase.

filmtv_movies_complete.to_db(
    name = "filmtv_movies_complete",
    relation_type = "table",
    inplace = True,
)
filmtv_movies_complete.to_db(
    name = "filmtv_movies_mco",
    relation_type = "view",
    db_filter = "votes > 0.02",
)

Machine Learning : Adjusting the Films Rates

Let’s create a model to evaluate an unbiased score for each different movie.

from vastorbit.machine_learning.vast.linear_model import LinearRegression

predictors = filmtv_movies_complete.get_columns(
    exclude_columns = [
        "avg_vote",
        "period",
        "director",
        "language_area",
        "title",
        "year",
        "country",
        "Category",
    ],
)
model = LinearRegression()
model.fit("filmtv_movies_mco", predictors, "avg_vote")
model.report()
value
explained_variance0.4648606660056842
max_error4.907322219438494
median_absolute_error0.6189516265121349
mean_absolute_error0.7159402797457688
mean_squared_error6.55535105679041
root_mean_squared_error0.912400705676939
r20.4648606660056843
r2_adj0.4633564457201521
aic19515.629242198807
bic19732.608010569173

The model is good. Let’s add it in our VastFrame.

model.predict(
    filmtv_movies_complete,
    name = "unbiased_vote",
)
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
123
avg_vote
Double
100%
123
votes
Decimal(20,8)
100%
123
duration
Decimal(20,8)
100%
Abc
director
Varchar(632)
100%
123
notoriety_director
Decimal(36,13)
100%
123
castings_director
Decimal(28,7)
100%
123
notoriety_actors
Decimal(38,6)
100%
123
castings_actors
Double
100%
Abc
period
Varchar(6)
100%
Abc
language_area
Varchar(19)
100%
Abc
category
Varchar(9)
100%
123
category_action
Integer
100%
123
category_adventure
Integer
100%
123
category_animation
Integer
100%
123
category_comedy
Integer
100%
123
category_drama
Integer
100%
123
category_fantasy
Integer
100%
123
category_horror
Integer
100%
123
category_others
Integer
100%
123
category_romantic
Integer
100%
123
period_90s
Integer
100%
123
period_old
Integer
100%
123
language_area_arabic_middle_est
Integer
100%
123
language_area_chinese_japan_asian
Integer
100%
123
language_area_english
Integer
100%
123
language_area_french
Integer
100%
123
language_area_german_north_europe
Integer
100%
123
language_area_grec_balkan
Integer
100%
123
language_area_hebrew
Integer
100%
123
language_area_indian
Integer
100%
123
language_area_italian
Integer
100%
123
language_area_others
Integer
100%
123
language_area_russian_est_europe
Integer
100%
123
unbiased_vote
Double
100%
156292Thuppakki2012India8.00.00.02099237A.R. Murugadoss8.6655e-050.01388894.6e-050.015037593984962405RecentIndianAction10000000000000000010005.772842753487896
263738Ghajini2008India8.00.00.02729008A.R. Murugadoss8.6655e-050.01388890.0010480.03007518796992481RecentIndianAction10000000000000000010005.869764070990654
31285223-D Rarities2015United States7.00.00.02041985AA.VV.0.0023396880.13888890.0131660.10526315789473684RecentEnglishOthers00000001000001000000006.27590764358197
4134196Il racconto del reale - L'ultimo stadio2016Italy6.00.00.0019084AA.VV.0.0023396880.13888890.0131660.10526315789473684RecentItalianOthers00000001000000000001005.450112055237488
537966Paris, je t'aime2006France, Liechtenstein7.20.009828010.01526718AA.VV.0.0023396880.13888890.2583030.33458646616541354RecentFrenchRomantic00000000100000100000005.854306366077978
676066Urge2016United States3.20.015561020.00935115Aaron Kaufman0.0016464470.00.1347090.14285714285714285RecentEnglishThriller00000000000001000000005.435518318981543
778243Walker, Texas Ranger: The Final Showdown2001United States5.50.0008190.00954198Aaron Norris0.0088388210.13888890.0228690.2781954887218045RecentEnglishAction10000000000001000000005.309695603219519
877190Walker, Texas Ranger: Sons of Thunder1997United States5.50.0008190.01087786Aaron Norris0.0088388210.13888890.0216850.251879699248120390sEnglishAction10000000010001000000005.8431005860282
947566Walker, Texas Ranger: Trial by Fire2005United States6.00.0024570.01526718Aaron Norris0.0088388210.13888890.0228690.2781954887218045RecentEnglishAction10000000000001000000005.376466610095055
1010345Delta Force 2: The Colombian Connection1990United States4.60.014742010.01335878Aaron Norris0.0088388210.13888890.0473330.259398496240601590sEnglishAction10000000010001000000005.873247683652636
1111387Hellbound1993United States3.70.016380020.01145038Aaron Norris0.0088388210.13888890.0226410.2218045112781954890sEnglishAction10000000010001000000005.880430908303579
121644Platoon Leader1988United States4.90.0049140.01145038Aaron Norris0.0088388210.13888890.0074260.10526315789473684OldEnglishAction10000000001001000000006.564184814945444
1351383Sidekicks1992United States6.00.0008190.01164122Aaron Norris0.0088388210.13888890.0435060.3496240601503759590sEnglishAction10000000010001000000005.816466999368496
144882On the Edge - The Hitman1991United States5.10.009009010.01049618Aaron Norris0.0088388210.13888890.0359440.274436090225563990sEnglishAction10000000010001000000005.809980836604728
1523470Top Dog1995United States5.20.0049140.00877863Aaron Norris0.0088388210.13888890.0193610.1729323308270676690sEnglishAction10000000010001000000005.788219840155414
1615924Forest Warrior1996United States5.30.0049140.0101145Aaron Norris0.0088388210.13888890.0266050.2443609022556390890sEnglishAction10000000010001000000005.798945511507094
1733320Date Movie2006United States4.10.059787060.00820611Aaron Seltzer0.0063258230.00.02460.03007518796992481RecentEnglishComedy00010000000001000000005.587598422774075
1861969L’Armée du salut2013France, Morocco7.00.0016380.00839695Abdellah Taïa0.000173310.00.0002730.007518796992481203RecentArabic_Middle_EstDrama00001000000100000000006.4490471028719005
194856Cat Chaser1989United States5.50.016380020.00877863Abel Ferrara0.1378682840.34722220.1922010.4398496240601504OldEnglishAction10000000001001000000006.449600447028341
2047425Fear City1984United States5.10.009828010.01068702Abel Ferrara0.1378682840.34722220.1189470.3533834586466165OldEnglishOthers00000001001001000000007.32730788962519

Since a score can’t be greater than 10 or less than 0, we need to adjust the unbiased_vote.

filmtv_movies_complete["unbiased_vote"] = fun.case_when(
    filmtv_movies_complete["unbiased_vote"] > 10, 10,
    filmtv_movies_complete["unbiased_vote"] < 0, 0,
    filmtv_movies_complete["unbiased_vote"],
)

Let’s look at the top movies.

filmtv_movies_complete.search(
    usecols = [
        "filmtv_id",
        "title",
        "year",
        "country",
        "avg_vote",
        "unbiased_vote",
        "votes",
        "duration",
        "director",
        "notoriety_director",
        "castings_director",
        "notoriety_actors",
        "castings_actors",
        "period",
        "language_area",
    ],
    order_by = {
        "unbiased_vote" : "desc",
        "avg_vote" : "desc",
    },
).head(10)
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
123
avg_vote
Double
100%
123
unbiased_vote
Double
100%
123
votes
Decimal(20,8)
100%
123
duration
Decimal(20,8)
100%
Abc
director
Varchar(632)
100%
123
notoriety_director
Decimal(36,13)
100%
123
castings_director
Decimal(28,7)
100%
123
notoriety_actors
Decimal(38,6)
100%
123
castings_actors
Double
100%
Abc
period
Varchar(6)
100%
Abc
language_area
Varchar(19)
100%
15580Psycho1960United States9.310.00.645372650.0129771Alfred Hitchcock0.7533795490.70833330.2455010.33458646616541354OldEnglish
227984Die Zweite Heimat - Chronik einer Jugend1992Germany9.310.00.013923010.28339695Edgar Reitz0.0410745230.54166670.0191790.2030075187969924790sGerman_North_Europe
317065A Clockwork Orange1971Great Britain9.210.00.889434890.01851145Stanley Kubrick0.6499133450.15277780.2546580.15037593984962405OldEnglish
419632001: A Space Odyssey1968Great Britain9.110.00.806715810.01927481Stanley Kubrick0.6499133450.15277780.1388090.041353383458646614OldEnglish
54991The Godfather1972United States9.110.00.684684680.02633588Francis Ford Coppola0.4342287690.34722220.5666710.4924812030075188OldEnglish
66476The Shining1980United States, Great Britain9.110.00.955773960.01507634Stanley Kubrick0.6499133450.15277780.415790.16917293233082706OldEnglish
77025Taxi Driver1976United States9.110.00.709254710.01335878Martin Scorsese0.8292894280.47222220.8328090.5864661654135338OldEnglish
8868Barry Lyndon1975Great Britain, United States9.010.00.489762490.02748092Stanley Kubrick0.6499133450.15277780.1922460.17669172932330826OldEnglish
927983Heimat - Eine Chronik in elf Teilen1984Germany9.010.00.033579030.16870229Edgar Reitz0.0410745230.54166670.0119810.041353383458646614OldGerman_North_Europe
101152Once Upon a Time in America1984United States9.010.00.665028670.03435115Sergio Leone0.2904679380.08333330.6673040.42105263157894735OldEnglish

Great, our results are more consistent. Psycho, Pulp Fiction, and The Godfather are among the top movies.

Machine Learning : Creating Movie Clusters

Since KMeans clustering is sensitive to unnormalized data, let’s normalize our new predictors.

filmtv_movies_complete["unbiased_vote"].normalize(method = "minmax")
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
123
avg_vote
Double
100%
123
votes
Decimal(20,8)
100%
123
duration
Decimal(20,8)
100%
Abc
director
Varchar(632)
100%
123
notoriety_director
Decimal(36,13)
100%
123
castings_director
Decimal(28,7)
100%
123
notoriety_actors
Decimal(38,6)
100%
123
castings_actors
Double
100%
Abc
period
Varchar(6)
100%
Abc
language_area
Varchar(19)
100%
Abc
category
Varchar(9)
100%
123
category_action
Integer
100%
123
category_adventure
Integer
100%
123
category_animation
Integer
100%
123
category_comedy
Integer
100%
123
category_drama
Integer
100%
123
category_fantasy
Integer
100%
123
category_horror
Integer
100%
123
category_others
Integer
100%
123
category_romantic
Integer
100%
123
period_90s
Integer
100%
123
period_old
Integer
100%
123
language_area_arabic_middle_est
Integer
100%
123
language_area_chinese_japan_asian
Integer
100%
123
language_area_english
Integer
100%
123
language_area_french
Integer
100%
123
language_area_german_north_europe
Integer
100%
123
language_area_grec_balkan
Integer
100%
123
language_area_hebrew
Integer
100%
123
language_area_indian
Integer
100%
123
language_area_italian
Integer
100%
123
language_area_others
Integer
100%
123
language_area_russian_est_europe
Integer
100%
123
unbiased_vote
Real
100%
156292Thuppakki2012India8.00.00.02099237A.R. Murugadoss8.6655e-050.01388894.6e-050.015037593984962405RecentIndianAction10000000000000000010000.2712328132171071
263738Ghajini2008India8.00.00.02729008A.R. Murugadoss8.6655e-050.01388890.0010480.03007518796992481RecentIndianAction10000000000000000010000.2879421693580591
31285223-D Rarities2015United States7.00.00.02041985AA.VV.0.0023396880.13888890.0131660.10526315789473684RecentEnglishOthers00000001000001000000000.3579618283313675
4134196Il racconto del reale - L'ultimo stadio2016Italy6.00.00.0019084AA.VV.0.0023396880.13888890.0131660.10526315789473684RecentItalianOthers00000001000000000001000.21559363791874508
537966Paris, je t'aime2006France, Liechtenstein7.20.009828010.01526718AA.VV.0.0023396880.13888890.2583030.33458646616541354RecentFrenchRomantic00000000100000100000000.2852772417326138
676066Urge2016United States3.20.015561020.00935115Aaron Kaufman0.0016464470.00.1347090.14285714285714285RecentEnglishThriller00000000000001000000000.2130776595683602
778243Walker, Texas Ranger: The Final Showdown2001United States5.50.0008190.00954198Aaron Norris0.0088388210.13888890.0228690.2781954887218045RecentEnglishAction10000000000001000000000.1913856662849467
877190Walker, Texas Ranger: Sons of Thunder1997United States5.50.0008190.01087786Aaron Norris0.0088388210.13888890.0216850.251879699248120390sEnglishAction10000000010001000000000.2833453512619381
947566Walker, Texas Ranger: Trial by Fire2005United States6.00.0024570.01526718Aaron Norris0.0088388210.13888890.0228690.2781954887218045RecentEnglishAction10000000000001000000000.20289707123197015
1010345Delta Force 2: The Colombian Connection1990United States4.60.014742010.01335878Aaron Norris0.0088388210.13888890.0473330.259398496240601590sEnglishAction10000000010001000000000.2885427485301749
1111387Hellbound1993United States3.70.016380020.01145038Aaron Norris0.0088388210.13888890.0226410.2218045112781954890sEnglishAction10000000010001000000000.2897811454280468
121644Platoon Leader1988United States4.90.0049140.01145038Aaron Norris0.0088388210.13888890.0074260.10526315789473684OldEnglishAction10000000001001000000000.40766117258018497
1351383Sidekicks1992United States6.00.0008190.01164122Aaron Norris0.0088388210.13888890.0435060.3496240601503759590sEnglishAction10000000010001000000000.27875368767053843
144882On the Edge - The Hitman1991United States5.10.009009010.01049618Aaron Norris0.0088388210.13888890.0359440.274436090225563990sEnglishAction10000000010001000000000.27763546511227727
1523470Top Dog1995United States5.20.0049140.00877863Aaron Norris0.0088388210.13888890.0193610.1729323308270676690sEnglishAction10000000010001000000000.2738838421564376
1615924Forest Warrior1996United States5.30.0049140.0101145Aaron Norris0.0088388210.13888890.0266050.2443609022556390890sEnglishAction10000000010001000000000.27573296128815933
1733320Date Movie2006United States4.10.059787060.00820611Aaron Seltzer0.0063258230.00.02460.03007518796992481RecentEnglishComedy00010000000001000000000.23929645932982702
1861969L’Armée du salut2013France, Morocco7.00.0016380.00839695Abdellah Taïa0.000173310.00.0002730.007518796992481203RecentArabic_Middle_EstDrama00001000000100000000000.3878112872725852
194856Cat Chaser1989United States5.50.016380020.00877863Abel Ferrara0.1378682840.34722220.1922010.4398496240601504OldEnglishAction10000000001001000000000.38790668449598975
2047425Fear City1984United States5.10.009828010.01068702Abel Ferrara0.1378682840.34722220.1189470.3533834586466165OldEnglishOthers00000001001001000000000.5392245433921767

Let’s compute the elbow() curve to find a suitable number of clusters.

predictors = filmtv_movies_complete.get_columns(
    exclude_columns = [
        "avg_vote",
        "period",
        "director",
        "language_area",
        "title",
        "year",
        "country",
        "Category",
        "filmtv_id",
    ],
)

from vastorbit.machine_learning.model_selection import elbow

elbow_chart = elbow(
    filmtv_movies_complete,
    predictors,
    n_clusters = (1, 60),
    show = True
)
elbow_chart

By looking at the elbow curve, we can choose 4 clusters. Let’s create a KMeans model.

from vastorbit.machine_learning.vast.cluster import KMeans

model_kmeans = KMeans(n_clusters = 4)
model_kmeans.fit(filmtv_movies_complete, predictors)
model_kmeans.clusters_

Let’s add the clusters in the VastFrame.

model_kmeans.predict(
    filmtv_movies_complete,
    name = "movies_cluster",
)
123
filmtv_id
Integer
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
123
avg_vote
Double
100%
123
votes
Decimal(20,8)
100%
123
duration
Decimal(20,8)
100%
Abc
director
Varchar(632)
100%
123
notoriety_director
Decimal(36,13)
100%
123
castings_director
Decimal(28,7)
100%
123
notoriety_actors
Decimal(38,6)
100%
123
castings_actors
Double
100%
Abc
period
Varchar(6)
100%
Abc
language_area
Varchar(19)
100%
Abc
category
Varchar(9)
100%
123
category_action
Integer
100%
123
category_adventure
Integer
100%
123
category_animation
Integer
100%
123
category_comedy
Integer
100%
123
category_drama
Integer
100%
123
category_fantasy
Integer
100%
123
category_horror
Integer
100%
123
category_others
Integer
100%
123
category_romantic
Integer
100%
123
period_90s
Integer
100%
123
period_old
Integer
100%
123
language_area_arabic_middle_est
Integer
100%
123
language_area_chinese_japan_asian
Integer
100%
123
language_area_english
Integer
100%
123
language_area_french
Integer
100%
123
language_area_german_north_europe
Integer
100%
123
language_area_grec_balkan
Integer
100%
123
language_area_hebrew
Integer
100%
123
language_area_indian
Integer
100%
123
language_area_italian
Integer
100%
123
language_area_others
Integer
100%
123
language_area_russian_est_europe
Integer
100%
123
unbiased_vote
Real
100%
123
movies_cluster
Integer
100%
156292Thuppakki2012India8.00.00.02099237A.R. Murugadoss8.6655e-050.01388894.6e-050.015037593984962405RecentIndianAction10000000000000000010000.27123281321710711
263738Ghajini2008India8.00.00.02729008A.R. Murugadoss8.6655e-050.01388890.0010480.03007518796992481RecentIndianAction10000000000000000010000.28794216935805911
31285223-D Rarities2015United States7.00.00.02041985AA.VV.0.0023396880.13888890.0131660.10526315789473684RecentEnglishOthers00000001000001000000000.35796182833136752
4134196Il racconto del reale - L'ultimo stadio2016Italy6.00.00.0019084AA.VV.0.0023396880.13888890.0131660.10526315789473684RecentItalianOthers00000001000000000001000.215593637918745081
537966Paris, je t'aime2006France, Liechtenstein7.20.009828010.01526718AA.VV.0.0023396880.13888890.2583030.33458646616541354RecentFrenchRomantic00000000100000100000000.28527724173261381
676066Urge2016United States3.20.015561020.00935115Aaron Kaufman0.0016464470.00.1347090.14285714285714285RecentEnglishThriller00000000000001000000000.21307765956836022
778243Walker, Texas Ranger: The Final Showdown2001United States5.50.0008190.00954198Aaron Norris0.0088388210.13888890.0228690.2781954887218045RecentEnglishAction10000000000001000000000.19138566628494672
877190Walker, Texas Ranger: Sons of Thunder1997United States5.50.0008190.01087786Aaron Norris0.0088388210.13888890.0216850.251879699248120390sEnglishAction10000000010001000000000.28334535126193812
947566Walker, Texas Ranger: Trial by Fire2005United States6.00.0024570.01526718Aaron Norris0.0088388210.13888890.0228690.2781954887218045RecentEnglishAction10000000000001000000000.202897071231970152
1010345Delta Force 2: The Colombian Connection1990United States4.60.014742010.01335878Aaron Norris0.0088388210.13888890.0473330.259398496240601590sEnglishAction10000000010001000000000.28854274853017492
1111387Hellbound1993United States3.70.016380020.01145038Aaron Norris0.0088388210.13888890.0226410.2218045112781954890sEnglishAction10000000010001000000000.28978114542804682
121644Platoon Leader1988United States4.90.0049140.01145038Aaron Norris0.0088388210.13888890.0074260.10526315789473684OldEnglishAction10000000001001000000000.407661172580184970
1351383Sidekicks1992United States6.00.0008190.01164122Aaron Norris0.0088388210.13888890.0435060.3496240601503759590sEnglishAction10000000010001000000000.278753687670538432
144882On the Edge - The Hitman1991United States5.10.009009010.01049618Aaron Norris0.0088388210.13888890.0359440.274436090225563990sEnglishAction10000000010001000000000.277635465112277272
1523470Top Dog1995United States5.20.0049140.00877863Aaron Norris0.0088388210.13888890.0193610.1729323308270676690sEnglishAction10000000010001000000000.27388384215643762
1615924Forest Warrior1996United States5.30.0049140.0101145Aaron Norris0.0088388210.13888890.0266050.2443609022556390890sEnglishAction10000000010001000000000.275732961288159332
1733320Date Movie2006United States4.10.059787060.00820611Aaron Seltzer0.0063258230.00.02460.03007518796992481RecentEnglishComedy00010000000001000000000.239296459329827022
1861969L’Armée du salut2013France, Morocco7.00.0016380.00839695Abdellah Taïa0.000173310.00.0002730.007518796992481203RecentArabic_Middle_EstDrama00001000000100000000000.38781128727258521
194856Cat Chaser1989United States5.50.016380020.00877863Abel Ferrara0.1378682840.34722220.1922010.4398496240601504OldEnglishAction10000000001001000000000.387906684495989750
2047425Fear City1984United States5.10.009828010.01068702Abel Ferrara0.1378682840.34722220.1189470.3533834586466165OldEnglishOthers00000001001001000000000.53922454339217670

Let’s look at the different clusters.

filmtv_movies_complete.search(
    filmtv_movies_complete["movies_cluster"] == 0,
    usecols=[
        "avg_vote",
        "period",
        "director",
        "language_area",
        "title",
        "year",
        "country",
        "Category",
    ]
)
123
avg_vote
Double
100%
Abc
period
Varchar(6)
100%
Abc
director
Varchar(632)
100%
Abc
language_area
Varchar(19)
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
Abc
category
Varchar(9)
100%
17.2OldAaron LipstadtEnglishAndroid1982United StatesFantasy
23.5OldAaron LipstadtEnglishCity Limits1985United StatesFantasy
39.4OldAkira KurosawaChinese_Japan_AsianShichi-nin no Samurai1954JapanAdventure
48.4OldAkira KurosawaChinese_Japan_AsianDersu Uzala1975Soviet Union, JapanAdventure
58.6OldAkira KurosawaChinese_Japan_AsianYojimbo1961JapanAdventure
68.3OldAkira KurosawaChinese_Japan_AsianKakushi toride no san-akunin1958JapanAdventure
77.7OldAkira KurosawaChinese_Japan_AsianTsubaki Sanjuro1962JapanAdventure
84.2OldAl Bagran (Alfonso Balcázar)Spanish_PortugueseCon la muerte a la espalda1967Spain, France, ItalyAction
94.5OldAl Bagran (Alfonso Balcázar)Spanish_PortugueseI bandoleros della dodicesima ora1973Spain, ItalyAction
106.1OldAlan CroslandEnglishThe Jazz Singer1927United StatesOthers
115.2OldAlan JohnsonEnglishSolarbabies1986United StatesFantasy
125.0OldAlan Le MayEnglishHigh Lonesome1950United StatesAction
136.8OldAlexander HallEnglishMy Sister Eileen1942United StatesComedy
146.0OldAlexander HallEnglishGoin' to Town1935United StatesComedy
156.0OldAlexander HallEnglishDown to Earth1947United StatesComedy
166.0OldAlexander HallEnglishTogether Again1953United StatesComedy
176.0OldAlexander HallEnglishGood Girls Go to Paris1939United StatesComedy
185.5OldAlexander HallEnglishBecause You're Mine1952United StatesComedy
196.0OldAlexander HallEnglishThe Heavenly Body1943United StatesComedy
206.0OldAlexander HallEnglishForever Darling1956United StatesComedy
filmtv_movies_complete.search(
    filmtv_movies_complete["movies_cluster"] == 1,
    usecols=[
        "avg_vote",
        "period",
        "director",
        "language_area",
        "title",
        "year",
        "country",
        "Category",
    ],
)
123
avg_vote
Double
100%
Abc
period
Varchar(6)
100%
Abc
director
Varchar(632)
100%
Abc
language_area
Varchar(19)
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
Abc
category
Varchar(9)
100%
18.090sAbdoulaye AscofareOthersFaraw! Une mere des sables1997MaliDrama
25.6RecentAdam Brooks, Matthew KennedyFrenchThe Editor2014CanadaComedy
33.4RecentAdam MasseyFrenchThe Intruders2015CanadaThriller
44.0RecentAdam WeissmanFrenchLife in the Balance2001CanadaThriller
56.2OldAglauco CasadioItalianUn ettaro di cielo1959ItalyComedy
67.0RecentAgustin ToscanoSpanish_PortugueseEl Motoarrebatador2018Argentina, UruguayDrama
72.0RecentAgustina MacriSpanish_PortugueseSoledad2018Argentina, ItalyDrama
87.5RecentAitor Merino, Amaia MerinoSpanish_PortugueseAsier ETA biok2013Spain, EcuadorOthers
96.0RecentAkira OgataChinese_Japan_AsianDokuritsu shonen gasshoudan2000JapanDrama
105.0RecentAkizGerman_North_EuropeDer Nachtmahr2015GermanyDrama
116.0RecentAktan Arym KubatArabic_Middle_EstMaimil2002France, Kyrgyzstan, JapanOthers
126.0RecentAlanté KavaïtéFrenchSangaïlé2014France, LithuaniaDrama
135.090sAlbert PyunChinese_Japan_AsianHeatseeker1995United States, PhilippinesFantasy
147.590sAlberto BaderItalianA casa di Irma1999ItalyComedy
151.5OldAlberto CavalloneItalianIl padrone del mondo1983ItalyDrama
167.4OldAlberto CavalloneItalianSpell - Dolce mattatoio1977ItalyDrama
173.0OldAlberto CavalloneItalianZelda1974ItalyDrama
186.7OldAlberto CavalloneItalianL'uomo, la donna e la bestia - Spell (Dolce mattatoio)1977ItalyDrama
196.5OldAlberto CavalloneItalianBlue Movie1978ItalyThriller
207.2RecentAlberto FasuloItalianMenocchio2018Italy, RomaniaDrama
filmtv_movies_complete.search(
    filmtv_movies_complete["movies_cluster"] == 2,
    usecols=[
        "avg_vote",
        "period",
        "director",
        "language_area",
        "title",
        "year",
        "country",
        "Category",
    ],
)
123
avg_vote
Double
100%
Abc
period
Varchar(6)
100%
Abc
director
Varchar(632)
100%
Abc
language_area
Varchar(19)
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
Abc
category
Varchar(9)
100%
17.0RecentAJ SchnackEnglishKurt Cobain About a Son2006United StatesOthers
26.0RecentAaron KatzEnglishGemini2017United StatesThriller
35.590sAbel FerraraEnglishNew Rose Hotel1998United StatesThriller
46.0RecentAdam CiancioEnglishVessel2013AustraliaFantasy
54.0RecentAdam CollisEnglishSunset Strip2000United StatesComedy
65.8RecentAdam WeissmanEnglishHenry Danger: One Henry, Three Girls: Part 1 & 22015United StatesComedy
74.8RecentAdam WeissmanEnglishHenry Danger: Live & Dangerous2017United StatesComedy
85.090sAlan RobertsEnglishSave Me1993United StatesThriller
95.0RecentAlex Brewer, Benjamin BrewerEnglishThe Trust2016Great BritainThriller
104.5RecentAlex Helfrecht, Jörg TittelEnglishThe White King2016Great BritainAdventure
115.3RecentAlex RichanbachEnglishIbiza2018United StatesComedy
126.090sAlexander RamatiEnglishAnd the Violins Stopped Playing1995United StatesDrama
135.3RecentAlexandre Bustillo, Julien MauryEnglishLeatherface2017United StatesHorror
145.390sAlfonso ArauEnglishA Walk in the Clouds1994United StatesRomantic
157.1RecentAlfonso CuarónEnglishChildren of Men2006Great Britain, United StatesFantasy
166.8RecentAlfonso CuarónEnglishGravity2013United StatesFantasy
177.2RecentAlfonso CuarónEnglishHarry Potter and the Prisoner of Azkaban2004United StatesFantasy
186.0RecentAlin BijanEnglishBells of Innocence2003United StatesHorror
195.490sAllan MoyleEnglishThe Gun in Betty Lou's Handbag1992United StatesThriller
204.990sAllen Hughes, Albert HughesEnglishMenace II Society1994United StatesDrama
filmtv_movies_complete.search(
    filmtv_movies_complete["movies_cluster"] == 3,
    usecols=[
        "avg_vote",
        "period",
        "director",
        "language_area",
        "title",
        "year",
        "country",
        "Category",
    ],
)
123
avg_vote
Double
100%
Abc
period
Varchar(6)
100%
Abc
director
Varchar(632)
100%
Abc
language_area
Varchar(19)
100%
Abc
title
Varchar(255)
100%
123
year
Integer
100%
Abc
country
Varchar(154)
100%
Abc
category
Varchar(9)
100%
15.2RecentAdrian LyneEnglishUnfaithful2002United StatesDrama
26.1OldAdrian LyneEnglishFoxes1980United StatesDrama
35.4OldAdrian LyneEnglishNine And Half Weeks1986United StatesDrama
46.9OldAdrian LyneEnglishFatal Attraction1987United StatesDrama
56.8OldAlain ResnaisFrenchMuriel ou le temps d'un retour1963FranceDrama
67.5OldAlain ResnaisFrenchMélo1986FranceDrama
77.9OldAlain ResnaisFrenchL'amour à mort1984FranceDrama
87.2OldAlain ResnaisFrenchJe t'aime, je t'aime1968FranceDrama
98.4OldAlain ResnaisFrenchProvidence1977France, SwitzerlandDrama
106.1OldAlain ResnaisFrenchStavisky1974FranceDrama
117.0OldAlain ResnaisFrenchLa guerre est finie1966FranceDrama
128.8OldAlain ResnaisChinese_Japan_AsianHiroshima, mon amour1959France, JapanDrama
137.9OldAlain ResnaisFrenchL'année dernière à Marienbad1961FranceDrama
147.4OldAlan ParkerEnglishMississippi Burning1988United StatesDrama
156.6OldAlan ParkerEnglishBirdy1984United StatesDrama
167.7OldAlan ParkerEnglishMidnight Express1978Great BritainDrama
173.7OldAlan ParkerEnglishShoot the Moon1982United StatesDrama
187.5RecentAlan ParkerEnglishThe Life of David Gale2003United StatesDrama
197.0OldAleksandr MittaRussian_Est_EuropeEkipazh1980Soviet UnionDrama
207.2OldAleksandr SokurovRussian_Est_EuropeSpasi i sochrani1989Soviet UnionDrama

Each cluster consists of similar movies. These clusters can be used to give movie recommendations or help streaming platforms group movies together.

Conclusion

We’ve solved our problem in a pandas-like way, all without ever loading data into memory!