From 6a61346d21961e90915caf16fbb07f0bdbdfef9c Mon Sep 17 00:00:00 2001 From: Vishist16 <101823906+Vishist16@users.noreply.github.com> Date: Mon, 31 Oct 2022 23:36:57 +0530 Subject: [PATCH 1/7] Add files via upload --- .../imbd.py | 37 +++ .../imdb_top_250_movies.csv | 251 ++++++++++++++++++ .../requirements.txt | 3 + 3 files changed, 291 insertions(+) create mode 100644 scripts/Script to fetch top IMBD listed movies/imbd.py create mode 100644 scripts/Script to fetch top IMBD listed movies/imdb_top_250_movies.csv create mode 100644 scripts/Script to fetch top IMBD listed movies/requirements.txt diff --git a/scripts/Script to fetch top IMBD listed movies/imbd.py b/scripts/Script to fetch top IMBD listed movies/imbd.py new file mode 100644 index 0000000..28b3440 --- /dev/null +++ b/scripts/Script to fetch top IMBD listed movies/imbd.py @@ -0,0 +1,37 @@ +from bs4 import BeautifulSoup +import requests +import re +import pandas as pd + +url = 'http://www.imdb.com/chart/top' +response = requests.get(url) +soup = BeautifulSoup(response.text, "html.parser") +movies = soup.select('td.titleColumn') +crew = [a.attrs.get('title') for a in soup.select('td.titleColumn a')] +ratings = [b.attrs.get('data-value') + for b in soup.select('td.posterColumn span[name=ir]')] + +list = [] + + +for index in range(0, len(movies)): + + movie_string = movies[index].get_text() + movie = (' '.join(movie_string.split()).replace('.', '')) + movie_title = movie[len(str(index))+1:-7] + year = re.search('\((.*?)\)', movie_string).group(1) + place = movie[:len(str(index))-(len(movie))] + data = {"place": place, + "movie_title": movie_title, + "rating": ratings[index], + "year": year, + "star_cast": crew[index], + } + list.append(data) + +for movie in list: + print(movie['place'], '-', movie['movie_title'], '('+movie['year'] + + ') -', 'Starring:', movie['star_cast'], movie['rating']) + +df = pd.DataFrame(list) +df.to_csv('imdb_top_250_movies.csv',index=False) diff --git a/scripts/Script to fetch top IMBD listed movies/imdb_top_250_movies.csv b/scripts/Script to fetch top IMBD listed movies/imdb_top_250_movies.csv new file mode 100644 index 0000000..2d10622 --- /dev/null +++ b/scripts/Script to fetch top IMBD listed movies/imdb_top_250_movies.csv @@ -0,0 +1,251 @@ +place,movie_title,rating,year,star_cast +1,The Shawshank Redemption,9.234904136818454,1994,"Frank Darabont (dir.), Tim Robbins, Morgan Freeman" +2,The Godfather,9.15624256340351,1972,"Francis Ford Coppola (dir.), Marlon Brando, Al Pacino" +3,The Dark Knight,8.988706481126444,2008,"Christopher Nolan (dir.), Christian Bale, Heath Ledger" +4,The Godfather Part II,8.984194506058763,1974,"Francis Ford Coppola (dir.), Al Pacino, Robert De Niro" +5,12 Angry Men,8.950378660821537,1957,"Sidney Lumet (dir.), Henry Fonda, Lee J. Cobb" +6,Schindler's List,8.937490356517953,1993,"Steven Spielberg (dir.), Liam Neeson, Ralph Fiennes" +7,The Lord of the Rings: The Return of the King,8.92747119693047,2003,"Peter Jackson (dir.), Elijah Wood, Viggo Mortensen" +8,Pulp Fiction,8.848600373629079,1994,"Quentin Tarantino (dir.), John Travolta, Uma Thurman" +9,The Lord of the Rings: The Fellowship of the Ring,8.807764305629757,2001,"Peter Jackson (dir.), Elijah Wood, Ian McKellen" +1," Il buono, il brutto, il cattivo",8.791317254914828,1966,"Sergio Leone (dir.), Clint Eastwood, Eli Wallach" +11,Forrest Gump,8.76765197219575,1994,"Robert Zemeckis (dir.), Tom Hanks, Robin Wright" +12,Fight Club,8.748855294854142,1999,"David Fincher (dir.), Brad Pitt, Edward Norton" +13,Inception,8.733239211175135,2010,"Christopher Nolan (dir.), Leonardo DiCaprio, Joseph Gordon-Levitt" +14,The Lord of the Rings: The Two Towers,8.732812731363351,2002,"Peter Jackson (dir.), Elijah Wood, Ian McKellen" +15,The Empire Strikes Back,8.700015179846625,1980,"Irvin Kershner (dir.), Mark Hamill, Harrison Ford" +16,The Matrix,8.669806873023978,1999,"Lana Wachowski (dir.), Keanu Reeves, Laurence Fishburne" +17,Goodfellas,8.65205609337949,1990,"Martin Scorsese (dir.), Robert De Niro, Ray Liotta" +18,One Flew Over the Cuckoo's Nest,8.639647532083753,1975,"Milos Forman (dir.), Jack Nicholson, Louise Fletcher" +19,Se7en,8.604249174368016,1995,"David Fincher (dir.), Morgan Freeman, Brad Pitt" +20,Shichinin no samurai,8.599072399250122,1954,"Akira Kurosawa (dir.), Toshirô Mifune, Takashi Shimura" +21,It's a Wonderful Life,8.595597467085389,1946,"Frank Capra (dir.), James Stewart, Donna Reed" +22,The Silence of the Lambs,8.588098006838871,1991,"Jonathan Demme (dir.), Jodie Foster, Anthony Hopkins" +23,Cidade de Deus,8.579576002977847,2002,"Fernando Meirelles (dir.), Alexandre Rodrigues, Leandro Firmino" +24,Saving Private Ryan,8.578595835275541,1998,"Steven Spielberg (dir.), Tom Hanks, Matt Damon" +25,La vita è bella,8.567330756535378,1997,"Roberto Benigni (dir.), Roberto Benigni, Nicoletta Braschi" +26,Interstellar,8.56303060608984,2014,"Christopher Nolan (dir.), Matthew McConaughey, Anne Hathaway" +27,The Green Mile,8.56163218111644,1999,"Frank Darabont (dir.), Tom Hanks, Michael Clarke Duncan" +28,Star Wars,8.550952471373744,1977,"George Lucas (dir.), Mark Hamill, Harrison Ford" +29,Terminator 2: Judgment Day,8.536034536114844,1991,"James Cameron (dir.), Arnold Schwarzenegger, Linda Hamilton" +30,Back to the Future,8.517634371526357,1985,"Robert Zemeckis (dir.), Michael J. Fox, Christopher Lloyd" +31,Sen to Chihiro no kamikakushi,8.515957661934813,2001,"Hayao Miyazaki (dir.), Daveigh Chase, Suzanne Pleshette" +32,Psycho,8.508100171700699,1960,"Alfred Hitchcock (dir.), Anthony Perkins, Janet Leigh" +33,The Pianist,8.506140125815184,2002,"Roman Polanski (dir.), Adrien Brody, Thomas Kretschmann" +34,Gisaengchung,8.497547306878936,2019,"Bong Joon Ho (dir.), Song Kang-ho, Lee Sun-kyun" +35,Léon,8.496742949795678,1994,"Luc Besson (dir.), Jean Reno, Gary Oldman" +36,The Lion King,8.488303334526902,1994,"Roger Allers (dir.), Matthew Broderick, Jeremy Irons" +37,Gladiator,8.48613057086782,2000,"Ridley Scott (dir.), Russell Crowe, Joaquin Phoenix" +38,American History X,8.483038321302992,1998,"Tony Kaye (dir.), Edward Norton, Edward Furlong" +39,The Departed,8.475406175977735,2006,"Martin Scorsese (dir.), Leonardo DiCaprio, Matt Damon" +40,The Usual Suspects,8.472974613205455,1995,"Bryan Singer (dir.), Kevin Spacey, Gabriel Byrne" +41,The Prestige,8.468754981826935,2006,"Christopher Nolan (dir.), Christian Bale, Hugh Jackman" +42,Whiplash,8.46419492410809,2014,"Damien Chazelle (dir.), Miles Teller, J.K. Simmons" +43,Casablanca,8.463536574401392,1942,"Michael Curtiz (dir.), Humphrey Bogart, Ingrid Bergman" +44,The Intouchables,8.45389376019163,2011,"Olivier Nakache (dir.), François Cluzet, Omar Sy" +45,Seppuku,8.452823221120253,1962,"Masaki Kobayashi (dir.), Tatsuya Nakadai, Akira Ishihama" +46,Hotaru no haka,8.452312496213862,1988,"Isao Takahata (dir.), Tsutomu Tatsumi, Ayano Shiraishi" +47,Modern Times,8.448896098758617,1936,"Charles Chaplin (dir.), Charles Chaplin, Paulette Goddard" +48,Once Upon a Time in the West,8.445557033237119,1968,"Sergio Leone (dir.), Henry Fonda, Charles Bronson" +49,Rear Window,8.436516529285429,1954,"Alfred Hitchcock (dir.), James Stewart, Grace Kelly" +50,Alien,8.434191515187006,1979,"Ridley Scott (dir.), Sigourney Weaver, Tom Skerritt" +51,City Lights,8.43400078426509,1931,"Charles Chaplin (dir.), Charles Chaplin, Virginia Cherrill" +52,Nuovo Cinema Paradiso,8.432330911775702,1988,"Giuseppe Tornatore (dir.), Philippe Noiret, Enzo Cannavale" +53,Apocalypse Now,8.424316691843506,1979,"Francis Ford Coppola (dir.), Martin Sheen, Marlon Brando" +54,Memento,8.423001092607869,2000,"Christopher Nolan (dir.), Guy Pearce, Carrie-Anne Moss" +55,Raiders of the Lost Ark,8.40875402873324,1981,"Steven Spielberg (dir.), Harrison Ford, Karen Allen" +56,Django Unchained,8.405712989541973,2012,"Quentin Tarantino (dir.), Jamie Foxx, Christoph Waltz" +57,WALL·E,8.393874760771658,2008,"Andrew Stanton (dir.), Ben Burtt, Elissa Knight" +58,The Lives of Others,8.385260120005508,2006,"Florian Henckel von Donnersmarck (dir.), Ulrich Mühe, Martina Gedeck" +59,Sunset Blvd,8.381538331508562,1950,"Billy Wilder (dir.), William Holden, Gloria Swanson" +60,Paths of Glory,8.372273172821316,1957,"Stanley Kubrick (dir.), Kirk Douglas, Ralph Meeker" +61,The Shining,8.366253580048621,1980,"Stanley Kubrick (dir.), Jack Nicholson, Shelley Duvall" +62,The Great Dictator,8.366139448005406,1940,"Charles Chaplin (dir.), Charles Chaplin, Paulette Goddard" +63,Avengers: Infinity War,8.35982850807831,2018,"Anthony Russo (dir.), Robert Downey Jr., Chris Hemsworth" +64,Witness for the Prosecution,8.359818706084797,1957,"Billy Wilder (dir.), Tyrone Power, Marlene Dietrich" +65,Aliens,8.343195944781366,1986,"James Cameron (dir.), Sigourney Weaver, Michael Biehn" +66,American Beauty,8.33434708795025,1999,"Sam Mendes (dir.), Kevin Spacey, Annette Bening" +67,Spider-Man: Into the Spider-Verse,8.333401167582558,2018,"Bob Persichetti (dir.), Shameik Moore, Jake Johnson" +68,Dr Strangelove or: How I Learned to Stop Worrying and Love the Bomb,8.33088130513012,1964,"Stanley Kubrick (dir.), Peter Sellers, George C. Scott" +69,The Dark Knight Rises,8.327616707512922,2012,"Christopher Nolan (dir.), Christian Bale, Tom Hardy" +70,Oldeuboi,8.320293271332895,2003,"Park Chan-wook (dir.), Choi Min-sik, Yoo Ji-tae" +71,Joker,8.316498373495666,2019,"Todd Phillips (dir.), Joaquin Phoenix, Robert De Niro" +72,Amadeus,8.315915050787167,1984,"Milos Forman (dir.), F. Murray Abraham, Tom Hulce" +73,Inglourious Basterds,8.314304876708752,2009,"Quentin Tarantino (dir.), Brad Pitt, Diane Kruger" +74,Toy Story,8.314113950777616,1995,"John Lasseter (dir.), Tom Hanks, Tim Allen" +75,Coco,8.314063119617284,2017,"Lee Unkrich (dir.), Anthony Gonzalez, Gael García Bernal" +76,Braveheart,8.313879864301272,1995,"Mel Gibson (dir.), Mel Gibson, Sophie Marceau" +77,Das Boot,8.312114822300837,1981,"Wolfgang Petersen (dir.), Jürgen Prochnow, Herbert Grönemeyer" +78,Avengers: Endgame,8.303857104770678,2019,"Anthony Russo (dir.), Robert Downey Jr., Chris Evans" +79,Mononoke-hime,8.303350373225244,1997,"Hayao Miyazaki (dir.), Yôji Matsuda, Yuriko Ishida" +80,Top Gun: Maverick,8.299656428177661,2022,"Joseph Kosinski (dir.), Tom Cruise, Jennifer Connelly" +81,Once Upon a Time in America,8.297673313570954,1984,"Sergio Leone (dir.), Robert De Niro, James Woods" +82,Good Will Hunting,8.288839571210985,1997,"Gus Van Sant (dir.), Robin Williams, Matt Damon" +83,Kimi no na wa,8.279527211534438,2016,"Makoto Shinkai (dir.), Ryûnosuke Kamiki, Mone Kamishiraishi" +84,Requiem for a Dream,8.275746143325462,2000,"Darren Aronofsky (dir.), Ellen Burstyn, Jared Leto" +85,Toy Story 3,8.274002958042601,2010,"Lee Unkrich (dir.), Tom Hanks, Tim Allen" +86,Singin' in the Rain,8.273688160960239,1952,"Stanley Donen (dir.), Gene Kelly, Donald O'Connor" +87,3 Idiots,8.27343895400716,2009,"Rajkumar Hirani (dir.), Aamir Khan, Madhavan" +88,Tengoku to jigoku,8.269244396218957,1963,"Akira Kurosawa (dir.), Toshirô Mifune, Yutaka Sada" +89,Star Wars: Episode VI - Return of the Jedi,8.265672583109295,1983,"Richard Marquand (dir.), Mark Hamill, Harrison Ford" +90,2001: A Space Odyssey,8.263722837501648,1968,"Stanley Kubrick (dir.), Keir Dullea, Gary Lockwood" +91,Eternal Sunshine of the Spotless Mind,8.263099458543415,2004,"Michel Gondry (dir.), Jim Carrey, Kate Winslet" +92,Capharnaüm,8.262183579687944,2018,"Nadine Labaki (dir.), Zain Al Rafeea, Yordanos Shiferaw" +93,Reservoir Dogs,8.261877143221772,1992,"Quentin Tarantino (dir.), Harvey Keitel, Tim Roth" +94,Jagten,8.2561157078314,2012,"Thomas Vinterberg (dir.), Mads Mikkelsen, Thomas Bo Larsen" +95,Citizen Kane,8.254669534194218,1941,"Orson Welles (dir.), Orson Welles, Joseph Cotten" +96,Lawrence of Arabia,8.253946628118202,1962,"David Lean (dir.), Peter O'Toole, Alec Guinness" +97,M - Eine Stadt sucht einen Mörder,8.253238146338694,1931,"Fritz Lang (dir.), Peter Lorre, Ellen Widmann" +98,Idi i smotri,8.251420306430981,1985,"Elem Klimov (dir.), Aleksey Kravchenko, Olga Mironova" +99,North by Northwest,8.249599981496104,1959,"Alfred Hitchcock (dir.), Cary Grant, Eva Marie Saint" +10, Vertigo,8.245985214386339,1958,"Alfred Hitchcock (dir.), James Stewart, Kim Novak" +101,Le fabuleux destin d'Amélie Poulain,8.243743793901526,2001,"Jean-Pierre Jeunet (dir.), Audrey Tautou, Mathieu Kassovitz" +102,A Clockwork Orange,8.242211458589265,1971,"Stanley Kubrick (dir.), Malcolm McDowell, Patrick Magee" +103,The Apartment,8.239281256451196,1960,"Billy Wilder (dir.), Jack Lemmon, Shirley MacLaine" +104,Double Indemnity,8.238818471235854,1944,"Billy Wilder (dir.), Fred MacMurray, Barbara Stanwyck" +105,Full Metal Jacket,8.238456878568147,1987,"Stanley Kubrick (dir.), Matthew Modine, R. Lee Ermey" +106,Ikiru,8.23798294621132,1952,"Akira Kurosawa (dir.), Takashi Shimura, Nobuo Kaneko" +107,Scarface,8.235119483708974,1983,"Brian De Palma (dir.), Al Pacino, Michelle Pfeiffer" +108,Hamilton,8.233902143761393,2020,"Thomas Kail (dir.), Lin-Manuel Miranda, Phillipa Soo" +109,The Sting,8.227720387044808,1973,"George Roy Hill (dir.), Paul Newman, Robert Redford" +110,To Kill a Mockingbird,8.22688247095639,1962,"Robert Mulligan (dir.), Gregory Peck, John Megna" +111,Heat,8.224713767308861,1995,"Michael Mann (dir.), Al Pacino, Robert De Niro" +112,Up,8.22448044743651,2009,"Pete Docter (dir.), Edward Asner, Jordan Nagai" +113,Incendies,8.22394925673602,2010,"Denis Villeneuve (dir.), Lubna Azabal, Mélissa Désormeaux-Poulin" +114,Taxi Driver,8.223682833598346,1976,"Martin Scorsese (dir.), Robert De Niro, Jodie Foster" +115,Metropolis,8.222147904524576,1927,"Fritz Lang (dir.), Brigitte Helm, Alfred Abel" +116,Jodaeiye Nader az Simin,8.221637434217634,2011,"Asghar Farhadi (dir.), Payman Maadi, Leila Hatami" +117,LA Confidential,8.221290450710068,1997,"Curtis Hanson (dir.), Kevin Spacey, Russell Crowe" +118,Snatch,8.218544453436461,2000,"Guy Ritchie (dir.), Jason Statham, Brad Pitt" +119,Die Hard,8.218114462560006,1988,"John McTiernan (dir.), Bruce Willis, Alan Rickman" +120,Ladri di biciclette,8.218014560920595,1948,"Vittorio De Sica (dir.), Lamberto Maggiorani, Enzo Staiola" +121,Indiana Jones and the Last Crusade,8.216887862218428,1989,"Steven Spielberg (dir.), Harrison Ford, Sean Connery" +122,Taare Zameen Par,8.211373183282015,2007,"Aamir Khan (dir.), Darsheel Safary, Aamir Khan" +123,1917,8.21133123154053,2019,"Sam Mendes (dir.), Dean-Charles Chapman, George MacKay" +124,Der Untergang,8.203691553618699,2004,"Oliver Hirschbiegel (dir.), Bruno Ganz, Alexandra Maria Lara" +125,Per qualche dollaro in più,8.201642263500739,1965,"Sergio Leone (dir.), Clint Eastwood, Lee Van Cleef" +126,Batman Begins,8.199707665814062,2005,"Christopher Nolan (dir.), Christian Bale, Michael Caine" +127,Dangal,8.199353048642266,2016,"Nitesh Tiwari (dir.), Aamir Khan, Sakshi Tanwar" +128,The Kid,8.193437246113863,1921,"Charles Chaplin (dir.), Charles Chaplin, Edna Purviance" +129,Some Like It Hot,8.191815028455801,1959,"Billy Wilder (dir.), Marilyn Monroe, Tony Curtis" +130,The Father,8.180891914462121,2020,"Florian Zeller (dir.), Anthony Hopkins, Olivia Colman" +131,All About Eve,8.18055449735846,1950,"Joseph L. Mankiewicz (dir.), Bette Davis, Anne Baxter" +132,Green Book,8.176065254686911,2018,"Peter Farrelly (dir.), Viggo Mortensen, Mahershala Ali" +133,The Wolf of Wall Street,8.174646007238417,2013,"Martin Scorsese (dir.), Leonardo DiCaprio, Jonah Hill" +134,Judgment at Nuremberg,8.169857701876323,1961,"Stanley Kramer (dir.), Spencer Tracy, Burt Lancaster" +135,Ran,8.165124750988024,1985,"Akira Kurosawa (dir.), Tatsuya Nakadai, Akira Terao" +136,Casino,8.16384693356473,1995,"Martin Scorsese (dir.), Robert De Niro, Sharon Stone" +137,Pan's Labyrinth,8.162216796596542,2006,"Guillermo del Toro (dir.), Ivana Baquero, Ariadna Gil" +138,Unforgiven,8.161285749661333,1992,"Clint Eastwood (dir.), Clint Eastwood, Gene Hackman" +139,There Will Be Blood,8.158139227908475,2007,"Paul Thomas Anderson (dir.), Daniel Day-Lewis, Paul Dano" +140,The Truman Show,8.156133825512999,1998,"Peter Weir (dir.), Jim Carrey, Ed Harris" +141,Spider-Man: No Way Home,8.154271501504828,2021,"Jon Watts (dir.), Tom Holland, Zendaya" +142,The Sixth Sense,8.153644018061344,1999,"M. Night Shyamalan (dir.), Bruce Willis, Haley Joel Osment" +143,A Beautiful Mind,8.151958642702523,2001,"Ron Howard (dir.), Russell Crowe, Ed Harris" +144,Yôjinbô,8.149441946227604,1961,"Akira Kurosawa (dir.), Toshirô Mifune, Eijirô Tôno" +145,Monty Python and the Holy Grail,8.149418337645502,1975,"Terry Gilliam (dir.), Graham Chapman, John Cleese" +146,Shutter Island,8.147920850516051,2010,"Martin Scorsese (dir.), Leonardo DiCaprio, Emily Mortimer" +147,The Treasure of the Sierra Madre,8.147899273502375,1948,"John Huston (dir.), Humphrey Bogart, Walter Huston" +148,Jurassic Park,8.145815384957087,1993,"Steven Spielberg (dir.), Sam Neill, Laura Dern" +149,Rashômon,8.141873464083456,1950,"Akira Kurosawa (dir.), Toshirô Mifune, Machiko Kyô" +150,The Great Escape,8.141454504516688,1963,"John Sturges (dir.), Steve McQueen, James Garner" +151,Kill Bill: Vol 1,8.137930323856532,2003,"Quentin Tarantino (dir.), Uma Thurman, David Carradine" +152,No Country for Old Men,8.137294099145311,2007,"Ethan Coen (dir.), Tommy Lee Jones, Javier Bardem" +153,Finding Nemo,8.131489521838844,2003,"Andrew Stanton (dir.), Albert Brooks, Ellen DeGeneres" +154,The Elephant Man,8.129687394303057,1980,"David Lynch (dir.), Anthony Hopkins, John Hurt" +155,The Thing,8.129630076311827,1982,"John Carpenter (dir.), Kurt Russell, Wilford Brimley" +156,Chinatown,8.128352284641188,1974,"Roman Polanski (dir.), Jack Nicholson, Faye Dunaway" +157,Raging Bull,8.127333632413476,1980,"Martin Scorsese (dir.), Robert De Niro, Cathy Moriarty" +158,Gone with the Wind,8.124456666611811,1939,"Victor Fleming (dir.), Clark Gable, Vivien Leigh" +159,V for Vendetta,8.12424187910994,2005,"James McTeigue (dir.), Hugo Weaving, Natalie Portman" +160,Inside Out,8.122570067781727,2015,"Pete Docter (dir.), Amy Poehler, Bill Hader" +161,"Lock, Stock and Two Smoking Barrels",8.12173025139722,1998,"Guy Ritchie (dir.), Jason Flemyng, Dexter Fletcher" +162,Dial M for Murder,8.119878686504563,1954,"Alfred Hitchcock (dir.), Ray Milland, Grace Kelly" +163,El secreto de sus ojos,8.117651293315738,2009,"Juan José Campanella (dir.), Ricardo Darín, Soledad Villamil" +164,Hauru no ugoku shiro,8.115624825415054,2004,"Hayao Miyazaki (dir.), Chieko Baishô, Takuya Kimura" +165,The Bridge on the River Kwai,8.112312089657408,1957,"David Lean (dir.), William Holden, Alec Guinness" +166,"Three Billboards Outside Ebbing, Missouri",8.11180581282161,2017,"Martin McDonagh (dir.), Frances McDormand, Woody Harrelson" +167,Trainspotting,8.111012714060038,1996,"Danny Boyle (dir.), Ewan McGregor, Ewen Bremner" +168,Warrior,8.103573815451904,2011,"Gavin O'Connor (dir.), Tom Hardy, Nick Nolte" +169,Gran Torino,8.102946223213968,2008,"Clint Eastwood (dir.), Clint Eastwood, Bee Vang" +170,Fargo,8.102476828261098,1996,"Joel Coen (dir.), William H. Macy, Frances McDormand" +171,Prisoners,8.100260206669939,2013,"Denis Villeneuve (dir.), Hugh Jackman, Jake Gyllenhaal" +172,Tonari no Totoro,8.093760524076421,1988,"Hayao Miyazaki (dir.), Hitoshi Takagi, Noriko Hidaka" +173,Million Dollar Baby,8.089354641611278,2004,"Clint Eastwood (dir.), Hilary Swank, Clint Eastwood" +174,Catch Me If You Can,8.088688040707636,2002,"Steven Spielberg (dir.), Leonardo DiCaprio, Tom Hanks" +175,The Gold Rush,8.08630381102749,1925,"Charles Chaplin (dir.), Charles Chaplin, Mack Swain" +176,Bacheha-Ye aseman,8.085742862289964,1997,"Majid Majidi (dir.), Mohammad Amir Naji, Amir Farrokh Hashemian" +177,Blade Runner,8.08512367471186,1982,"Ridley Scott (dir.), Harrison Ford, Rutger Hauer" +178,On the Waterfront,8.082300380081083,1954,"Elia Kazan (dir.), Marlon Brando, Karl Malden" +179,12 Years a Slave,8.079856793348362,2013,"Steve McQueen (dir.), Chiwetel Ejiofor, Michael Kenneth Williams" +180,Before Sunrise,8.079848472748038,1995,"Richard Linklater (dir.), Ethan Hawke, Julie Delpy" +181,The Third Man,8.079374406547796,1949,"Carol Reed (dir.), Orson Welles, Joseph Cotten" +182,Smultronstället,8.078607432909374,1957,"Ingmar Bergman (dir.), Victor Sjöström, Bibi Andersson" +183,Harry Potter and the Deathly Hallows: Part 2,8.078244849335574,2011,"David Yates (dir.), Daniel Radcliffe, Emma Watson" +184,Ben-Hur,8.077815479798078,1959,"William Wyler (dir.), Charlton Heston, Jack Hawkins" +185,The General,8.07725341901528,1926,"Clyde Bruckman (dir.), Buster Keaton, Marion Mack" +186,Gone Girl,8.077053402716771,2014,"David Fincher (dir.), Ben Affleck, Rosamund Pike" +187,The Deer Hunter,8.075143836236032,1978,"Michael Cimino (dir.), Robert De Niro, Christopher Walken" +188,The Grand Budapest Hotel,8.074432324406573,2014,"Wes Anderson (dir.), Ralph Fiennes, F. Murray Abraham" +189,In the Name of the Father,8.074001896468923,1993,"Jim Sheridan (dir.), Daniel Day-Lewis, Pete Postlethwaite" +190,Barry Lyndon,8.073307191432082,1975,"Stanley Kubrick (dir.), Ryan O'Neal, Marisa Berenson" +191,Le salaire de la peur,8.071867620825236,1953,"Henri-Georges Clouzot (dir.), Yves Montand, Charles Vanel" +192,Sherlock Jr,8.069182202089088,1924,"Buster Keaton (dir.), Buster Keaton, Kathryn McGuire" +193,Mr Smith Goes to Washington,8.06915181187886,1939,"Frank Capra (dir.), James Stewart, Jean Arthur" +194,Klaus,8.068841487089509,2019,"Sergio Pablos (dir.), Jason Schwartzman, J.K. Simmons" +195,Hacksaw Ridge,8.068833473421833,2016,"Mel Gibson (dir.), Andrew Garfield, Sam Worthington" +196,Salinui chueok,8.068460190213838,2003,"Bong Joon Ho (dir.), Song Kang-ho, Kim Sang-kyung" +197,Relatos salvajes,8.066744033091398,2014,"Damián Szifron (dir.), Darío Grandinetti, María Marull" +198,Det sjunde inseglet,8.065430978302158,1957,"Ingmar Bergman (dir.), Max von Sydow, Gunnar Björnstrand" +199,Room,8.063938187223517,2015,"Lenny Abrahamson (dir.), Brie Larson, Jacob Tremblay" +200,Mad Max: Fury Road,8.063343714785574,2015,"George Miller (dir.), Tom Hardy, Charlize Theron" +201,Mary and Max,8.061811350659532,2009,"Adam Elliot (dir.), Toni Collette, Philip Seymour Hoffman" +202,How to Train Your Dragon,8.061497205303745,2010,"Dean DeBlois (dir.), Jay Baruchel, Gerard Butler" +203,The Big Lebowski,8.060531219315328,1998,"Joel Coen (dir.), Jeff Bridges, John Goodman" +204,"Monsters, Inc",8.059667990461328,2001,"Pete Docter (dir.), Billy Crystal, John Goodman" +205,Jaws,8.0595308057808,1975,"Steven Spielberg (dir.), Roy Scheider, Robert Shaw" +206,Tôkyô monogatari,8.056986153500892,1953,"Yasujirô Ozu (dir.), Chishû Ryû, Chieko Higashiyama" +207,La passion de Jeanne d'Arc,8.056015533653978,1928,"Carl Theodor Dreyer (dir.), Maria Falconetti, Eugene Silvain" +208,Dead Poets Society,8.055487981598707,1989,"Peter Weir (dir.), Robin Williams, Robert Sean Leonard" +209,Hotel Rwanda,8.051682768802205,2004,"Terry George (dir.), Don Cheadle, Sophie Okonedo" +210,Ford v Ferrari,8.047474874327822,2019,"James Mangold (dir.), Matt Damon, Christian Bale" +211,Rocky,8.046544605623975,1976,"John G. Avildsen (dir.), Sylvester Stallone, Talia Shire" +212,Platoon,8.045946390941978,1986,"Oliver Stone (dir.), Charlie Sheen, Tom Berenger" +213,Stand by Me,8.040321912000634,1986,"Rob Reiner (dir.), Wil Wheaton, River Phoenix" +214,Pather Panchali,8.040246837371546,1955,"Satyajit Ray (dir.), Kanu Bannerjee, Karuna Bannerjee" +215,The Terminator,8.040158995355188,1984,"James Cameron (dir.), Arnold Schwarzenegger, Linda Hamilton" +216,Spotlight,8.04003040240906,2015,"Tom McCarthy (dir.), Mark Ruffalo, Michael Keaton" +217,Logan,8.038010113121434,2017,"James Mangold (dir.), Hugh Jackman, Patrick Stewart" +218,Rush,8.037705957537115,2013,"Ron Howard (dir.), Daniel Brühl, Chris Hemsworth" +219,Ratatouille,8.037216148638704,2007,"Brad Bird (dir.), Brad Garrett, Lou Romano" +220,Network,8.036234010584907,1976,"Sidney Lumet (dir.), Faye Dunaway, William Holden" +221,Into the Wild,8.034616300670839,2007,"Sean Penn (dir.), Emile Hirsch, Vince Vaughn" +222,Everything Everywhere All at Once,8.034103724035578,2022,"Dan Kwan (dir.), Michelle Yeoh, Stephanie Hsu" +223,The Wizard of Oz,8.032405154395828,1939,"Victor Fleming (dir.), Judy Garland, Frank Morgan" +224,Before Sunset,8.03077024373811,2004,"Richard Linklater (dir.), Ethan Hawke, Julie Delpy" +225,Groundhog Day,8.029212910376621,1993,"Harold Ramis (dir.), Bill Murray, Andie MacDowell" +226,The Exorcist,8.027624182007811,1973,"William Friedkin (dir.), Ellen Burstyn, Max von Sydow" +227,Jai Bhim,8.027076286702933,2021,"T.J. Gnanavel (dir.), Suriya, Lijo Mol Jose" +228,The Best Years of Our Lives,8.025182051180233,1946,"William Wyler (dir.), Myrna Loy, Dana Andrews" +229,The Incredibles,8.02511110727724,2004,"Brad Bird (dir.), Craig T. Nelson, Samuel L. Jackson" +230,To Be or Not to Be,8.025020325839856,1942,"Ernst Lubitsch (dir.), Carole Lombard, Jack Benny" +231,La battaglia di Algeri,8.02430455669616,1966,"Gillo Pontecorvo (dir.), Brahim Hadjadj, Jean Martin" +232,Hachi: A Dog's Tale,8.02243899720676,2009,"Lasse Hallström (dir.), Richard Gere, Joan Allen" +233,The Grapes of Wrath,8.02146531567852,1940,"John Ford (dir.), Henry Fonda, Jane Darwell" +234,Rebecca,8.021406112274061,1940,"Alfred Hitchcock (dir.), Laurence Olivier, Joan Fontaine" +235,Pirates of the Caribbean: The Curse of the Black Pearl,8.021137206786229,2003,"Gore Verbinski (dir.), Johnny Depp, Geoffrey Rush" +236,Amores perros,8.021048633968682,2000,"Alejandro G. Iñárritu (dir.), Emilio Echevarría, Gael García Bernal" +237,Babam ve Oglum,8.020817645877138,2005,"Çagan Irmak (dir.), Çetin Tekindor, Fikret Kuskan" +238,La haine,8.02048531313721,1995,"Mathieu Kassovitz (dir.), Vincent Cassel, Hubert Koundé" +239,Cool Hand Luke,8.019859704116232,1967,"Stuart Rosenberg (dir.), Paul Newman, George Kennedy" +240,Les quatre cents coups,8.016215939497515,1959,"François Truffaut (dir.), Jean-Pierre Léaud, Albert Rémy" +241,Persona,8.014912330620977,1966,"Ingmar Bergman (dir.), Bibi Andersson, Liv Ullmann" +242,Ah-ga-ssi,8.013566726616054,2016,"Park Chan-wook (dir.), Kim Min-hee, Ha Jung-woo" +243,It Happened One Night,8.013124254730636,1934,"Frank Capra (dir.), Clark Gable, Claudette Colbert" +244,The Sound of Music,8.012883390986223,1965,"Robert Wise (dir.), Julie Andrews, Christopher Plummer" +245,Life of Brian,8.01243613072654,1979,"Terry Jones (dir.), Graham Chapman, John Cleese" +246,Dersu Uzala,8.008622707042678,1975,"Akira Kurosawa (dir.), Maksim Munzuk, Yuriy Solomin" +247,The Help,8.004953799401568,2011,"Tate Taylor (dir.), Viola Davis, Emma Stone" +248,Gandhi,8.004866178479936,1982,"Richard Attenborough (dir.), Ben Kingsley, John Gielgud" +249,Aladdin,8.004818115680994,1992,"Ron Clements (dir.), Scott Weinger, Robin Williams" +250,The Iron Giant,8.003732372543244,1999,"Brad Bird (dir.), Eli Marienthal, Harry Connick Jr." diff --git a/scripts/Script to fetch top IMBD listed movies/requirements.txt b/scripts/Script to fetch top IMBD listed movies/requirements.txt new file mode 100644 index 0000000..f8b61a8 --- /dev/null +++ b/scripts/Script to fetch top IMBD listed movies/requirements.txt @@ -0,0 +1,3 @@ +requests +bs4(beautifulsoup) +pandas \ No newline at end of file From 23671e02ff1d11b5aeb1571d8d1ebcc2245865cf Mon Sep 17 00:00:00 2001 From: Vishist16 <101823906+Vishist16@users.noreply.github.com> Date: Mon, 31 Oct 2022 23:46:07 +0530 Subject: [PATCH 2/7] Create Readme.md --- scripts/Script to fetch top IMBD listed movies/Readme.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 scripts/Script to fetch top IMBD listed movies/Readme.md diff --git a/scripts/Script to fetch top IMBD listed movies/Readme.md b/scripts/Script to fetch top IMBD listed movies/Readme.md new file mode 100644 index 0000000..aadb229 --- /dev/null +++ b/scripts/Script to fetch top IMBD listed movies/Readme.md @@ -0,0 +1,8 @@ +# Script to fetch top imbd movies + +This script fetches the list of top imbd movies using beautiful soup. +## Simplest way to run + +Open idle, open the file, f5 and enjoy ✔✔ + +The script will create a csv file of all the fetched list. From 0b1d4c8a0f181fd75225c3d5abaa0874f51391fc Mon Sep 17 00:00:00 2001 From: Vishist16 <101823906+Vishist16@users.noreply.github.com> Date: Mon, 31 Oct 2022 23:47:29 +0530 Subject: [PATCH 3/7] Add files via upload --- .../Crop Prediction Model.ipynb | 7425 +++++++++++++++++ 1 file changed, 7425 insertions(+) create mode 100644 scripts/Crop Prediction Model/Crop Prediction Model.ipynb diff --git a/scripts/Crop Prediction Model/Crop Prediction Model.ipynb b/scripts/Crop Prediction Model/Crop Prediction Model.ipynb new file mode 100644 index 0000000..5f3eb5e --- /dev/null +++ b/scripts/Crop Prediction Model/Crop Prediction Model.ipynb @@ -0,0 +1,7425 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "4d97448b0669441088bc1de94e9dc607": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_c91b2e4623f34177906f987bec76baf9", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_ac7d7c15b58e42feb475769f33a49f9d" + } + }, + "c91b2e4623f34177906f987bec76baf9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "ac7d7c15b58e42feb475769f33a49f9d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "4ec49eefe7b540309e3e519c7910f01b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_5b2685d48b934e9cbbc7fab76fbe298c", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_29d19e3812564b86baa4871b47e78df9" + } + }, + "5b2685d48b934e9cbbc7fab76fbe298c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "29d19e3812564b86baa4871b47e78df9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "03a1c790ef41418291e4f80ba7828a47": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_da2198944b6045e2ac84185ccacbe869", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_a025df127a9f49b482e5f95693de90c4" + } + }, + "da2198944b6045e2ac84185ccacbe869": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "a025df127a9f49b482e5f95693de90c4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "e803d5985cbf441ebb877da74cc47699": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_76bf50cb26144c4bbc0ebcb7fa71709e", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_c637685280d74a898eb266d991ccf636" + } + }, + "76bf50cb26144c4bbc0ebcb7fa71709e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "c637685280d74a898eb266d991ccf636": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "5c642b3b0cf241b4b506c4aca79c361e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_8cb9bb2280d34ab7949b4cb69f446ca4", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_2919f3677c134e74bf57badfe652fdfe" + } + }, + "8cb9bb2280d34ab7949b4cb69f446ca4": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "2919f3677c134e74bf57badfe652fdfe": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "f122f577289f4a93bfc6acd2bf23606b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_70fa5ddb71044f61b83db783b5ab375e", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_08f8fdf2810e4c17855a725463b4f4a3" + } + }, + "70fa5ddb71044f61b83db783b5ab375e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "08f8fdf2810e4c17855a725463b4f4a3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "d299f7a26ebf45c188a3f24c9ba05974": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_6b18966bb05c4e418f177138db323181", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_fc462dcdd16d4084be2b9846ec39e172" + } + }, + "6b18966bb05c4e418f177138db323181": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "fc462dcdd16d4084be2b9846ec39e172": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "0c746ea40f204ab399fb8b1c9244da46": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_017e0f0f2fbe478f9a3b1045d92a72de", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_447d58fbe53745a79d8bfc43cba7a3e4" + } + }, + "017e0f0f2fbe478f9a3b1045d92a72de": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "447d58fbe53745a79d8bfc43cba7a3e4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "6569f12f7f1b43f6acd5eaeb1867205d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_4af4d5e36f174f23b592040a83ea4392", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_80f1ef7f786640cfac147d9ec65a5ad8" + } + }, + "4af4d5e36f174f23b592040a83ea4392": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "80f1ef7f786640cfac147d9ec65a5ad8": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "db4e51edffaf466c8a1a412095446f57": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_51ccf98d9bb54a0cbf3df2fbd90c82b6", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_c8ae01a51cd44aca9c56fbae5d6a4a0c" + } + }, + "51ccf98d9bb54a0cbf3df2fbd90c82b6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "c8ae01a51cd44aca9c56fbae5d6a4a0c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "c6af45d2d3244894ab43aa11587569fb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_f569da0783864292890fb8bf352b1a0d", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_2b4cc526625e4736834375327176a117" + } + }, + "f569da0783864292890fb8bf352b1a0d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "2b4cc526625e4736834375327176a117": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "e353c2e9634a41cc9754b120750c37b2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_396885cfdccc48bb8f1cfd0223c97aa5", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 5, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 5, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_0568e477bbb745e68f7bd06a18056d9e" + } + }, + "396885cfdccc48bb8f1cfd0223c97aa5": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "0568e477bbb745e68f7bd06a18056d9e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "0c7a96b7437d4f439ee58a7348112c07": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_3957ae44c0b64b01b4420040a5a107da", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 4, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 4, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_dac75abfd15a434bb8a399900709f4c6" + } + }, + "3957ae44c0b64b01b4420040a5a107da": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "dac75abfd15a434bb8a399900709f4c6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "d5fa15c649734224a62b0416f1589e4c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_bd048ed3009f474a99c795838ae4e809", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 5, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 5, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_3adfd8382a004ba493cf96f2228d28ed" + } + }, + "bd048ed3009f474a99c795838ae4e809": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "3adfd8382a004ba493cf96f2228d28ed": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "ca525e1c57d541299c9b4862c1fea11d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_1dcfa769f8254370a963327b6f74b159", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 4, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 4, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_723e82f233be473789f249ecf0703ee2" + } + }, + "1dcfa769f8254370a963327b6f74b159": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "723e82f233be473789f249ecf0703ee2": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "e31ab003321c43b49caec0a8a7dde1cd": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_4647c3143e1340ff84efd9f4b3851a2a", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 5, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 5, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_db6f2f19b0e043cc8a0f71a3f9b49095" + } + }, + "4647c3143e1340ff84efd9f4b3851a2a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "db6f2f19b0e043cc8a0f71a3f9b49095": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "a5c08029facf463a9683e5f23797fbcc": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_8257770e8802452db5e40e16c40c80da", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 5, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 5, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_b4c98f4b9fc646ebbf1e1c0d0ee9d3fc" + } + }, + "8257770e8802452db5e40e16c40c80da": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "b4c98f4b9fc646ebbf1e1c0d0ee9d3fc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "db14ff1586104c1bb34e607996c13318": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_50d16bc916de4be295898de3aca4a08d", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 5, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 5, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_315962e470d04c78a2afc0a866afc592" + } + }, + "50d16bc916de4be295898de3aca4a08d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "315962e470d04c78a2afc0a866afc592": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "2ac9fd07fa8e412abe829854d8b5ab09": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_7d21d3653fbc4502960a11960c92f416", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_27006ecb01ed4cc18f7ac2561ad883ab" + } + }, + "7d21d3653fbc4502960a11960c92f416": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "27006ecb01ed4cc18f7ac2561ad883ab": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "d86784e47b8c4c629b8c41625515777a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_7d56b83610594b35b1bcd8151c08be13", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_fa1016a6026348ad99cd29901cd0dab1" + } + }, + "7d56b83610594b35b1bcd8151c08be13": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "fa1016a6026348ad99cd29901cd0dab1": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "424154f0a3a147ef8168c882e2fa0828": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_82499bfe63f44bc0aae73f91bc6fb978", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_19e9ca6460034820b935b5e9ca8b26ac" + } + }, + "82499bfe63f44bc0aae73f91bc6fb978": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "19e9ca6460034820b935b5e9ca8b26ac": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "a18cf2c481544c7da684a9fb97dbbe1b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_4bdb923ebb8346e094c63efc2803c68a", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_fd7caca5c81a40ec83f6a8d941eac0d0" + } + }, + "4bdb923ebb8346e094c63efc2803c68a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "fd7caca5c81a40ec83f6a8d941eac0d0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "3326cab329d342979aca08e4ce37d5cb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_62f0feb68ba4429ca76a68e9b6bac62d", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 3, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 3, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_942f83712fd84bc2b2020e89df1a44ce" + } + }, + "62f0feb68ba4429ca76a68e9b6bac62d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "942f83712fd84bc2b2020e89df1a44ce": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + }, + "3c7626fe583a4cfc9b958fb4ddd2e15c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "IntProgressModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "ProgressView", + "style": "IPY_MODEL_9a97b2b50ca949bf96f9a52599a2333c", + "_dom_classes": [], + "description": "Processing: ", + "_model_name": "IntProgressModel", + "bar_style": "", + "max": 74, + "_view_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "value": 74, + "_view_count": null, + "_view_module_version": "1.5.0", + "orientation": "horizontal", + "min": 0, + "description_tooltip": null, + "_model_module": "@jupyter-widgets/controls", + "layout": "IPY_MODEL_524f9ac1f5b4436ca47a6e9be1686d04" + } + }, + "9a97b2b50ca949bf96f9a52599a2333c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_view_name": "StyleView", + "_model_name": "ProgressStyleModel", + "description_width": "", + "_view_module": "@jupyter-widgets/base", + "_model_module_version": "1.5.0", + "_view_count": null, + "_view_module_version": "1.2.0", + "bar_color": null, + "_model_module": "@jupyter-widgets/controls" + } + }, + "524f9ac1f5b4436ca47a6e9be1686d04": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_view_name": "LayoutView", + "grid_template_rows": null, + "right": null, + "justify_content": null, + "_view_module": "@jupyter-widgets/base", + "overflow": null, + "_model_module_version": "1.2.0", + "_view_count": null, + "flex_flow": null, + "width": null, + "min_width": null, + "border": null, + "align_items": null, + "bottom": null, + "_model_module": "@jupyter-widgets/base", + "top": null, + "grid_column": null, + "overflow_y": null, + "overflow_x": null, + "grid_auto_flow": null, + "grid_area": null, + "grid_template_columns": null, + "flex": null, + "_model_name": "LayoutModel", + "justify_items": null, + "grid_row": null, + "max_height": null, + "align_content": null, + "visibility": null, + "align_self": null, + "height": null, + "min_height": null, + "padding": null, + "grid_auto_rows": null, + "grid_gap": null, + "max_width": null, + "order": null, + "_view_module_version": "1.2.0", + "grid_template_areas": null, + "object_position": null, + "object_fit": null, + "grid_auto_columns": null, + "margin": null, + "display": null, + "left": null + } + } + } + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "5CIgMSa8keZc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 223 + }, + "outputId": "b336f85a-37ed-4514-bc6c-266536f5587e" + }, + "source": [ + "import pandas as pd\n", + "\n", + "cropDataSet = pd.read_csv('/content/Crop_recommendation.csv')\n", + "print(type(cropDataSet))\n", + "\n", + "cropDataSet.head()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabel
090424320.87974482.0027446.502985202.935536rice
185584121.77046280.3196447.038096226.655537rice
260554423.00445982.3207637.840207263.964248rice
374354026.49109680.1583636.980401242.864034rice
478424220.13017581.6048737.628473262.717340rice
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature humidity ph rainfall label\n", + "0 90 42 43 20.879744 82.002744 6.502985 202.935536 rice\n", + "1 85 58 41 21.770462 80.319644 7.038096 226.655537 rice\n", + "2 60 55 44 23.004459 82.320763 7.840207 263.964248 rice\n", + "3 74 35 40 26.491096 80.158363 6.980401 242.864034 rice\n", + "4 78 42 42 20.130175 81.604873 7.628473 262.717340 rice" + ] + }, + "metadata": {}, + "execution_count": 1 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "A30y-VtNim1h" + }, + "source": [ + "#### **(a) Install Pycaret**" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cF_mSA9Xim1j", + "outputId": "94c66439-5011-4310-b903-22408449754b" + }, + "source": [ + "!pip install pycaret &> /dev/null\n", + "print (\"Pycaret installed sucessfully!!\")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Pycaret installed sucessfully!!\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "B2r61OBMs1N6" + }, + "source": [ + "---\n", + "### **1.7 Three line of code for model comparison for \"Crop\" dataset**\n", + "---" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "2ac9fd07fa8e412abe829854d8b5ab09", + "7d21d3653fbc4502960a11960c92f416", + "27006ecb01ed4cc18f7ac2561ad883ab", + "d86784e47b8c4c629b8c41625515777a", + "7d56b83610594b35b1bcd8151c08be13", + "fa1016a6026348ad99cd29901cd0dab1" + ] + }, + "id": "OIoRFpzis1N8", + "outputId": "ffba049c-8ee7-4340-d915-89e807b564c4" + }, + "source": [ + "from pycaret.datasets import get_data\n", + "from pycaret.classification import *\n", + "\n", + "s = setup(data = cropDataSet, target='label', silent=True)\n", + "cm = compare_models()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
rfRandom Forest Classifier0.99551.00000.99550.99630.99540.99520.99530.611
nbNaive Bayes0.99481.00000.99490.99540.99480.99460.99460.034
etExtra Trees Classifier0.99481.00000.99480.99570.99480.99460.99460.534
qdaQuadratic Discriminant Analysis0.99221.00000.99220.99300.99220.99180.99190.035
lightgbmLight Gradient Boosting Machine0.98830.99990.98820.99020.98830.98770.98781.010
gbcGradient Boosting Classifier0.98700.99990.98720.98920.98690.98640.98656.781
dtDecision Tree Classifier0.98250.99080.98230.98540.98240.98160.98180.034
knnK Neighbors Classifier0.97860.99770.97910.98200.97860.97750.97770.137
lrLogistic Regression0.96950.99960.96990.97280.96900.96800.96822.375
ldaLinear Discriminant Analysis0.96560.99970.96600.97290.96520.96390.96430.032
ridgeRidge Classifier0.71870.00000.71020.68620.65610.70500.71210.018
svmSVM - Linear Kernel0.71410.00000.71210.77190.69720.70040.72010.095
adaAda Boost Classifier0.18260.68500.18180.10070.11650.14270.23380.226
dummyDummy Classifier0.04680.50000.04550.00220.00420.00000.00000.026
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "rf Random Forest Classifier 0.9955 1.0000 0.9955 0.9963 \n", + "nb Naive Bayes 0.9948 1.0000 0.9949 0.9954 \n", + "et Extra Trees Classifier 0.9948 1.0000 0.9948 0.9957 \n", + "qda Quadratic Discriminant Analysis 0.9922 1.0000 0.9922 0.9930 \n", + "lightgbm Light Gradient Boosting Machine 0.9883 0.9999 0.9882 0.9902 \n", + "gbc Gradient Boosting Classifier 0.9870 0.9999 0.9872 0.9892 \n", + "dt Decision Tree Classifier 0.9825 0.9908 0.9823 0.9854 \n", + "knn K Neighbors Classifier 0.9786 0.9977 0.9791 0.9820 \n", + "lr Logistic Regression 0.9695 0.9996 0.9699 0.9728 \n", + "lda Linear Discriminant Analysis 0.9656 0.9997 0.9660 0.9729 \n", + "ridge Ridge Classifier 0.7187 0.0000 0.7102 0.6862 \n", + "svm SVM - Linear Kernel 0.7141 0.0000 0.7121 0.7719 \n", + "ada Ada Boost Classifier 0.1826 0.6850 0.1818 0.1007 \n", + "dummy Dummy Classifier 0.0468 0.5000 0.0455 0.0022 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "rf 0.9954 0.9952 0.9953 0.611 \n", + "nb 0.9948 0.9946 0.9946 0.034 \n", + "et 0.9948 0.9946 0.9946 0.534 \n", + "qda 0.9922 0.9918 0.9919 0.035 \n", + "lightgbm 0.9883 0.9877 0.9878 1.010 \n", + "gbc 0.9869 0.9864 0.9865 6.781 \n", + "dt 0.9824 0.9816 0.9818 0.034 \n", + "knn 0.9786 0.9775 0.9777 0.137 \n", + "lr 0.9690 0.9680 0.9682 2.375 \n", + "lda 0.9652 0.9639 0.9643 0.032 \n", + "ridge 0.6561 0.7050 0.7121 0.018 \n", + "svm 0.6972 0.7004 0.7201 0.095 \n", + "ada 0.1165 0.1427 0.2338 0.226 \n", + "dummy 0.0042 0.0000 0.0000 0.026 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CCVV6JlQim2A" + }, + "source": [ + "#### **2.1 Model Performance using data \"Normalization\"**" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "424154f0a3a147ef8168c882e2fa0828", + "82499bfe63f44bc0aae73f91bc6fb978", + "19e9ca6460034820b935b5e9ca8b26ac", + "a18cf2c481544c7da684a9fb97dbbe1b", + "4bdb923ebb8346e094c63efc2803c68a", + "fd7caca5c81a40ec83f6a8d941eac0d0" + ] + }, + "id": "Atd6jNvmim2A", + "outputId": "fe97434f-f13c-4820-bea7-f10a6f56be21" + }, + "source": [ + "## Commonly used techniques: clipping, log scaling, z-score, minmax, maxabs, robust\n", + "s = setup(data=cropDataSet, target='label', normalize = True, normalize_method = 'zscore', silent=True)\n", + "cm = compare_models()\n" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
nbNaive Bayes0.99350.99990.99320.99480.99330.99320.99330.035
etExtra Trees Classifier0.99350.99990.99320.99480.99330.99320.99330.534
qdaQuadratic Discriminant Analysis0.99280.99990.99230.99430.99260.99250.99260.035
rfRandom Forest Classifier0.99221.00000.99170.99390.99190.99180.99190.631
lightgbmLight Gradient Boosting Machine0.99221.00000.99200.99340.99220.99180.99191.050
dtDecision Tree Classifier0.98640.99290.98600.98810.98610.98570.98580.034
gbcGradient Boosting Classifier0.98570.99990.98530.98810.98530.98500.98526.821
knnK Neighbors Classifier0.97210.99780.97220.97700.97170.97070.97100.137
ldaLinear Discriminant Analysis0.96690.99970.96690.97440.96640.96530.96570.033
lrLogistic Regression0.96560.99950.96520.96960.96510.96390.96420.226
svmSVM - Linear Kernel0.89730.00000.89790.93730.90400.89240.89530.070
ridgeRidge Classifier0.73100.00000.72980.70510.67730.71810.72450.017
adaAda Boost Classifier0.18320.68840.17730.09390.11080.13980.22640.226
dummyDummy Classifier0.05200.50000.04550.00270.00510.00000.00000.029
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "nb Naive Bayes 0.9935 0.9999 0.9932 0.9948 \n", + "et Extra Trees Classifier 0.9935 0.9999 0.9932 0.9948 \n", + "qda Quadratic Discriminant Analysis 0.9928 0.9999 0.9923 0.9943 \n", + "rf Random Forest Classifier 0.9922 1.0000 0.9917 0.9939 \n", + "lightgbm Light Gradient Boosting Machine 0.9922 1.0000 0.9920 0.9934 \n", + "dt Decision Tree Classifier 0.9864 0.9929 0.9860 0.9881 \n", + "gbc Gradient Boosting Classifier 0.9857 0.9999 0.9853 0.9881 \n", + "knn K Neighbors Classifier 0.9721 0.9978 0.9722 0.9770 \n", + "lda Linear Discriminant Analysis 0.9669 0.9997 0.9669 0.9744 \n", + "lr Logistic Regression 0.9656 0.9995 0.9652 0.9696 \n", + "svm SVM - Linear Kernel 0.8973 0.0000 0.8979 0.9373 \n", + "ridge Ridge Classifier 0.7310 0.0000 0.7298 0.7051 \n", + "ada Ada Boost Classifier 0.1832 0.6884 0.1773 0.0939 \n", + "dummy Dummy Classifier 0.0520 0.5000 0.0455 0.0027 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "nb 0.9933 0.9932 0.9933 0.035 \n", + "et 0.9933 0.9932 0.9933 0.534 \n", + "qda 0.9926 0.9925 0.9926 0.035 \n", + "rf 0.9919 0.9918 0.9919 0.631 \n", + "lightgbm 0.9922 0.9918 0.9919 1.050 \n", + "dt 0.9861 0.9857 0.9858 0.034 \n", + "gbc 0.9853 0.9850 0.9852 6.821 \n", + "knn 0.9717 0.9707 0.9710 0.137 \n", + "lda 0.9664 0.9653 0.9657 0.033 \n", + "lr 0.9651 0.9639 0.9642 0.226 \n", + "svm 0.9040 0.8924 0.8953 0.070 \n", + "ridge 0.6773 0.7181 0.7245 0.017 \n", + "ada 0.1108 0.1398 0.2264 0.226 \n", + "dummy 0.0051 0.0000 0.0000 0.029 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WtiL4kV2uPHr" + }, + "source": [ + "**minmax : scales and translates each feature individually such that it is in the range of 0 – 1.**" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "3326cab329d342979aca08e4ce37d5cb", + "62f0feb68ba4429ca76a68e9b6bac62d", + "942f83712fd84bc2b2020e89df1a44ce", + "3c7626fe583a4cfc9b958fb4ddd2e15c", + "9a97b2b50ca949bf96f9a52599a2333c", + "524f9ac1f5b4436ca47a6e9be1686d04" + ] + }, + "id": "2a9HLuShuLZK", + "outputId": "8bb323b6-1efe-4b2d-f193-2802691fba02" + }, + "source": [ + "## Commonly used techniques: clipping, log scaling, z-score, minmax, maxabs, robust\n", + "s = setup(data=cropDataSet, target='label', normalize = True, normalize_method = 'minmax', silent=True)\n", + "cm = compare_models()\n" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
rfRandom Forest Classifier0.99611.00000.99620.99660.99610.99590.99590.626
nbNaive Bayes0.99351.00000.99350.99480.99340.99320.99330.037
qdaQuadratic Discriminant Analysis0.99221.00000.99210.99310.99220.99180.99190.034
etExtra Trees Classifier0.99161.00000.99130.99270.99140.99110.99120.524
lightgbmLight Gradient Boosting Machine0.98640.99990.98610.98830.98610.98570.98580.977
dtDecision Tree Classifier0.98510.99220.98510.98630.98490.98430.98440.036
gbcGradient Boosting Classifier0.98440.99990.98450.98620.98420.98370.98386.813
knnK Neighbors Classifier0.97860.99850.97860.98170.97820.97750.97770.131
ldaLinear Discriminant Analysis0.96620.99970.96640.97240.96560.96460.96500.033
lrLogistic Regression0.92400.99690.92140.94110.91770.92030.92150.186
svmSVM - Linear Kernel0.90120.00000.89870.92610.90020.89650.89810.067
ridgeRidge Classifier0.68090.00000.67390.64180.61220.66540.67280.019
adaAda Boost Classifier0.18190.68720.17270.09260.10940.13810.22390.234
dummyDummy Classifier0.05200.50000.04550.00270.00510.00000.00000.024
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "rf Random Forest Classifier 0.9961 1.0000 0.9962 0.9966 \n", + "nb Naive Bayes 0.9935 1.0000 0.9935 0.9948 \n", + "qda Quadratic Discriminant Analysis 0.9922 1.0000 0.9921 0.9931 \n", + "et Extra Trees Classifier 0.9916 1.0000 0.9913 0.9927 \n", + "lightgbm Light Gradient Boosting Machine 0.9864 0.9999 0.9861 0.9883 \n", + "dt Decision Tree Classifier 0.9851 0.9922 0.9851 0.9863 \n", + "gbc Gradient Boosting Classifier 0.9844 0.9999 0.9845 0.9862 \n", + "knn K Neighbors Classifier 0.9786 0.9985 0.9786 0.9817 \n", + "lda Linear Discriminant Analysis 0.9662 0.9997 0.9664 0.9724 \n", + "lr Logistic Regression 0.9240 0.9969 0.9214 0.9411 \n", + "svm SVM - Linear Kernel 0.9012 0.0000 0.8987 0.9261 \n", + "ridge Ridge Classifier 0.6809 0.0000 0.6739 0.6418 \n", + "ada Ada Boost Classifier 0.1819 0.6872 0.1727 0.0926 \n", + "dummy Dummy Classifier 0.0520 0.5000 0.0455 0.0027 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "rf 0.9961 0.9959 0.9959 0.626 \n", + "nb 0.9934 0.9932 0.9933 0.037 \n", + "qda 0.9922 0.9918 0.9919 0.034 \n", + "et 0.9914 0.9911 0.9912 0.524 \n", + "lightgbm 0.9861 0.9857 0.9858 0.977 \n", + "dt 0.9849 0.9843 0.9844 0.036 \n", + "gbc 0.9842 0.9837 0.9838 6.813 \n", + "knn 0.9782 0.9775 0.9777 0.131 \n", + "lda 0.9656 0.9646 0.9650 0.033 \n", + "lr 0.9177 0.9203 0.9215 0.186 \n", + "svm 0.9002 0.8965 0.8981 0.067 \n", + "ridge 0.6122 0.6654 0.6728 0.019 \n", + "ada 0.1094 0.1381 0.2239 0.234 \n", + "dummy 0.0051 0.0000 0.0000 0.024 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ms4-H0buufKC" + }, + "source": [ + "**robust : scales and translates each feature according to the Interquartile range. When the dataset contains outliers, robust scaler often gives better results.**" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "5c642b3b0cf241b4b506c4aca79c361e", + "8cb9bb2280d34ab7949b4cb69f446ca4", + "2919f3677c134e74bf57badfe652fdfe" + ] + }, + "id": "SjtgooljudSZ", + "outputId": "0667f94f-00a6-45a8-b6fa-8d98adc6adc5" + }, + "source": [ + "## Commonly used techniques: clipping, log scaling, z-score, minmax, maxabs, robust\n", + "s = setup(data=cropDataSet, target='label', normalize = True, normalize_method = 'robust', silent=True)\n", + "cm = compare_models()\n" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
rfRandom Forest Classifier0.99481.00000.99520.99550.99480.99460.99460.627
lightgbmLight Gradient Boosting Machine0.99421.00000.99410.99490.99410.99390.99391.084
nbNaive Bayes0.99350.99990.99390.99430.99350.99320.99320.034
etExtra Trees Classifier0.99350.99990.99370.99430.99350.99320.99320.516
qdaQuadratic Discriminant Analysis0.98960.99990.98990.99080.98960.98910.98920.031
gbcGradient Boosting Classifier0.98770.99990.98780.98930.98750.98710.98727.245
dtDecision Tree Classifier0.98310.99110.98340.98460.98300.98230.98240.032
knnK Neighbors Classifier0.97660.99780.97760.98030.97620.97550.97570.128
lrLogistic Regression0.96620.99950.96680.96980.96600.96460.96480.257
ldaLinear Discriminant Analysis0.96360.99960.96470.96980.96300.96190.96230.031
svmSVM - Linear Kernel0.91610.00000.91440.94230.91980.91210.91390.069
ridgeRidge Classifier0.66410.00000.64950.62230.58900.64750.65580.018
adaAda Boost Classifier0.21050.70230.20000.12670.14240.16900.26410.241
dummyDummy Classifier0.04940.50000.04550.00240.00470.00000.00000.023
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "rf Random Forest Classifier 0.9948 1.0000 0.9952 0.9955 \n", + "lightgbm Light Gradient Boosting Machine 0.9942 1.0000 0.9941 0.9949 \n", + "nb Naive Bayes 0.9935 0.9999 0.9939 0.9943 \n", + "et Extra Trees Classifier 0.9935 0.9999 0.9937 0.9943 \n", + "qda Quadratic Discriminant Analysis 0.9896 0.9999 0.9899 0.9908 \n", + "gbc Gradient Boosting Classifier 0.9877 0.9999 0.9878 0.9893 \n", + "dt Decision Tree Classifier 0.9831 0.9911 0.9834 0.9846 \n", + "knn K Neighbors Classifier 0.9766 0.9978 0.9776 0.9803 \n", + "lr Logistic Regression 0.9662 0.9995 0.9668 0.9698 \n", + "lda Linear Discriminant Analysis 0.9636 0.9996 0.9647 0.9698 \n", + "svm SVM - Linear Kernel 0.9161 0.0000 0.9144 0.9423 \n", + "ridge Ridge Classifier 0.6641 0.0000 0.6495 0.6223 \n", + "ada Ada Boost Classifier 0.2105 0.7023 0.2000 0.1267 \n", + "dummy Dummy Classifier 0.0494 0.5000 0.0455 0.0024 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "rf 0.9948 0.9946 0.9946 0.627 \n", + "lightgbm 0.9941 0.9939 0.9939 1.084 \n", + "nb 0.9935 0.9932 0.9932 0.034 \n", + "et 0.9935 0.9932 0.9932 0.516 \n", + "qda 0.9896 0.9891 0.9892 0.031 \n", + "gbc 0.9875 0.9871 0.9872 7.245 \n", + "dt 0.9830 0.9823 0.9824 0.032 \n", + "knn 0.9762 0.9755 0.9757 0.128 \n", + "lr 0.9660 0.9646 0.9648 0.257 \n", + "lda 0.9630 0.9619 0.9623 0.031 \n", + "svm 0.9198 0.9121 0.9139 0.069 \n", + "ridge 0.5890 0.6475 0.6558 0.018 \n", + "ada 0.1424 0.1690 0.2641 0.241 \n", + "dummy 0.0047 0.0000 0.0000 0.023 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "oWMPU3KMim2B" + }, + "source": [ + "---\n", + "### **2.2 Model Performance using \"Feature Selection\"**\n", + "---" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "f122f577289f4a93bfc6acd2bf23606b", + "70fa5ddb71044f61b83db783b5ab375e", + "08f8fdf2810e4c17855a725463b4f4a3", + "d299f7a26ebf45c188a3f24c9ba05974", + "6b18966bb05c4e418f177138db323181", + "fc462dcdd16d4084be2b9846ec39e172" + ] + }, + "id": "43l42fj_im2C", + "outputId": "5bb360be-901a-47b9-ea1d-f55966728b11" + }, + "source": [ + "s = setup(data=cropDataSet, target='label', feature_selection = True, feature_selection_threshold = 0.6, silent=True)\n", + "cm = compare_models()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
rfRandom Forest Classifier0.98960.99990.98960.99110.98950.98910.98920.631
nbNaive Bayes0.98830.99990.98790.99010.98790.98770.98790.030
etExtra Trees Classifier0.98770.99990.98750.98930.98750.98710.98720.510
qdaQuadratic Discriminant Analysis0.98510.99980.98470.98680.98480.98430.98440.030
lightgbmLight Gradient Boosting Machine0.98380.99970.98400.98590.98380.98300.98310.912
dtDecision Tree Classifier0.97920.98910.97940.98130.97900.97820.97830.031
gbcGradient Boosting Classifier0.97860.99980.97810.98260.97880.97750.97776.166
knnK Neighbors Classifier0.96690.99690.96610.97040.96640.96530.96550.125
lrLogistic Regression0.94480.99850.94370.95050.94460.94210.94242.338
ldaLinear Discriminant Analysis0.94480.99930.94440.95170.94320.94210.94260.032
svmSVM - Linear Kernel0.56730.00000.56710.59950.52950.54690.57430.120
ridgeRidge Classifier0.53480.00000.51790.48230.45440.51170.52360.017
adaAda Boost Classifier0.17670.67500.16820.09130.10700.13260.22230.219
dummyDummy Classifier0.05200.50000.04550.00270.00510.00000.00000.024
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "rf Random Forest Classifier 0.9896 0.9999 0.9896 0.9911 \n", + "nb Naive Bayes 0.9883 0.9999 0.9879 0.9901 \n", + "et Extra Trees Classifier 0.9877 0.9999 0.9875 0.9893 \n", + "qda Quadratic Discriminant Analysis 0.9851 0.9998 0.9847 0.9868 \n", + "lightgbm Light Gradient Boosting Machine 0.9838 0.9997 0.9840 0.9859 \n", + "dt Decision Tree Classifier 0.9792 0.9891 0.9794 0.9813 \n", + "gbc Gradient Boosting Classifier 0.9786 0.9998 0.9781 0.9826 \n", + "knn K Neighbors Classifier 0.9669 0.9969 0.9661 0.9704 \n", + "lr Logistic Regression 0.9448 0.9985 0.9437 0.9505 \n", + "lda Linear Discriminant Analysis 0.9448 0.9993 0.9444 0.9517 \n", + "svm SVM - Linear Kernel 0.5673 0.0000 0.5671 0.5995 \n", + "ridge Ridge Classifier 0.5348 0.0000 0.5179 0.4823 \n", + "ada Ada Boost Classifier 0.1767 0.6750 0.1682 0.0913 \n", + "dummy Dummy Classifier 0.0520 0.5000 0.0455 0.0027 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "rf 0.9895 0.9891 0.9892 0.631 \n", + "nb 0.9879 0.9877 0.9879 0.030 \n", + "et 0.9875 0.9871 0.9872 0.510 \n", + "qda 0.9848 0.9843 0.9844 0.030 \n", + "lightgbm 0.9838 0.9830 0.9831 0.912 \n", + "dt 0.9790 0.9782 0.9783 0.031 \n", + "gbc 0.9788 0.9775 0.9777 6.166 \n", + "knn 0.9664 0.9653 0.9655 0.125 \n", + "lr 0.9446 0.9421 0.9424 2.338 \n", + "lda 0.9432 0.9421 0.9426 0.032 \n", + "svm 0.5295 0.5469 0.5743 0.120 \n", + "ridge 0.4544 0.5117 0.5236 0.017 \n", + "ada 0.1070 0.1326 0.2223 0.219 \n", + "dummy 0.0051 0.0000 0.0000 0.024 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1yxgZDazvZcS" + }, + "source": [ + "**When Threshold is increased to 0.8**" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "0c746ea40f204ab399fb8b1c9244da46", + "017e0f0f2fbe478f9a3b1045d92a72de", + "447d58fbe53745a79d8bfc43cba7a3e4", + "6569f12f7f1b43f6acd5eaeb1867205d", + "4af4d5e36f174f23b592040a83ea4392", + "80f1ef7f786640cfac147d9ec65a5ad8" + ] + }, + "id": "8rzW7L-WvghD", + "outputId": "1ff7083c-281b-4e5e-fb94-51e9e0cb501e" + }, + "source": [ + "s = setup(data=cropDataSet, target='label', feature_selection = True, feature_selection_threshold = 0.8, silent=True)\n", + "cm = compare_models()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
rfRandom Forest Classifier0.99221.00000.99200.99350.99210.99180.99190.612
etExtra Trees Classifier0.99091.00000.99060.99230.99080.99050.99050.521
qdaQuadratic Discriminant Analysis0.98961.00000.98960.99090.98950.98910.98920.030
nbNaive Bayes0.98900.99990.98900.99050.98890.98840.98850.030
gbcGradient Boosting Classifier0.98640.99990.98630.98820.98640.98570.98586.559
dtDecision Tree Classifier0.98440.99180.98450.98650.98430.98370.98380.031
lightgbmLight Gradient Boosting Machine0.98440.99990.98460.98630.98430.98370.98380.908
knnK Neighbors Classifier0.97460.99870.97490.97860.97440.97340.97370.124
ldaLinear Discriminant Analysis0.96750.99960.96820.97390.96710.96600.96630.030
lrLogistic Regression0.95970.99950.96000.96470.95910.95780.95811.995
ridgeRidge Classifier0.70890.00000.70240.70060.65690.69480.70210.021
svmSVM - Linear Kernel0.68940.00000.68790.75550.67310.67440.69420.089
adaAda Boost Classifier0.18390.68800.18180.09820.11420.14190.23030.221
dummyDummy Classifier0.05000.50000.04550.00250.00480.00000.00000.022
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "rf Random Forest Classifier 0.9922 1.0000 0.9920 0.9935 \n", + "et Extra Trees Classifier 0.9909 1.0000 0.9906 0.9923 \n", + "qda Quadratic Discriminant Analysis 0.9896 1.0000 0.9896 0.9909 \n", + "nb Naive Bayes 0.9890 0.9999 0.9890 0.9905 \n", + "gbc Gradient Boosting Classifier 0.9864 0.9999 0.9863 0.9882 \n", + "dt Decision Tree Classifier 0.9844 0.9918 0.9845 0.9865 \n", + "lightgbm Light Gradient Boosting Machine 0.9844 0.9999 0.9846 0.9863 \n", + "knn K Neighbors Classifier 0.9746 0.9987 0.9749 0.9786 \n", + "lda Linear Discriminant Analysis 0.9675 0.9996 0.9682 0.9739 \n", + "lr Logistic Regression 0.9597 0.9995 0.9600 0.9647 \n", + "ridge Ridge Classifier 0.7089 0.0000 0.7024 0.7006 \n", + "svm SVM - Linear Kernel 0.6894 0.0000 0.6879 0.7555 \n", + "ada Ada Boost Classifier 0.1839 0.6880 0.1818 0.0982 \n", + "dummy Dummy Classifier 0.0500 0.5000 0.0455 0.0025 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "rf 0.9921 0.9918 0.9919 0.612 \n", + "et 0.9908 0.9905 0.9905 0.521 \n", + "qda 0.9895 0.9891 0.9892 0.030 \n", + "nb 0.9889 0.9884 0.9885 0.030 \n", + "gbc 0.9864 0.9857 0.9858 6.559 \n", + "dt 0.9843 0.9837 0.9838 0.031 \n", + "lightgbm 0.9843 0.9837 0.9838 0.908 \n", + "knn 0.9744 0.9734 0.9737 0.124 \n", + "lda 0.9671 0.9660 0.9663 0.030 \n", + "lr 0.9591 0.9578 0.9581 1.995 \n", + "ridge 0.6569 0.6948 0.7021 0.021 \n", + "svm 0.6731 0.6744 0.6942 0.089 \n", + "ada 0.1142 0.1419 0.2303 0.221 \n", + "dummy 0.0048 0.0000 0.0000 0.022 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "affIBZhevkSS" + }, + "source": [ + "**When Threshold is decresed to 0.4**" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "db4e51edffaf466c8a1a412095446f57", + "51ccf98d9bb54a0cbf3df2fbd90c82b6", + "c8ae01a51cd44aca9c56fbae5d6a4a0c", + "c6af45d2d3244894ab43aa11587569fb", + "f569da0783864292890fb8bf352b1a0d", + "2b4cc526625e4736834375327176a117" + ] + }, + "id": "xW6UHzRBvpuX", + "outputId": "5f62672f-5437-4555-82b4-71b3b08a101a" + }, + "source": [ + "s = setup(data=cropDataSet, target='label', feature_selection = True, feature_selection_threshold = 0.4, silent=True)\n", + "cm = compare_models()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
nbNaive Bayes0.96100.99890.95840.96820.95990.95910.95960.031
qdaQuadratic Discriminant Analysis0.95840.99880.95590.96590.95740.95640.95690.032
rfRandom Forest Classifier0.95710.99810.95450.96180.95660.95510.95540.591
etExtra Trees Classifier0.94870.99770.94600.95460.94800.94620.94650.531
lightgbmLight Gradient Boosting Machine0.94740.99700.94460.95330.94730.94480.94520.843
gbcGradient Boosting Classifier0.94610.99760.94290.95210.94560.94350.94385.157
dtDecision Tree Classifier0.93960.96840.93690.94460.93900.93670.93700.030
knnK Neighbors Classifier0.93570.99120.93230.94510.93320.93260.93320.126
ldaLinear Discriminant Analysis0.89340.99570.89070.90680.88780.88830.88950.029
lrLogistic Regression0.83820.99080.83780.84590.83250.83040.83141.979
svmSVM - Linear Kernel0.33590.00000.33980.28460.28040.30520.36550.121
ridgeRidge Classifier0.26970.00000.26830.12500.14970.23460.24780.019
adaAda Boost Classifier0.23390.70320.22730.16420.17470.19390.30300.209
dummyDummy Classifier0.05130.50000.04550.00260.00500.00000.00000.021
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "nb Naive Bayes 0.9610 0.9989 0.9584 0.9682 \n", + "qda Quadratic Discriminant Analysis 0.9584 0.9988 0.9559 0.9659 \n", + "rf Random Forest Classifier 0.9571 0.9981 0.9545 0.9618 \n", + "et Extra Trees Classifier 0.9487 0.9977 0.9460 0.9546 \n", + "lightgbm Light Gradient Boosting Machine 0.9474 0.9970 0.9446 0.9533 \n", + "gbc Gradient Boosting Classifier 0.9461 0.9976 0.9429 0.9521 \n", + "dt Decision Tree Classifier 0.9396 0.9684 0.9369 0.9446 \n", + "knn K Neighbors Classifier 0.9357 0.9912 0.9323 0.9451 \n", + "lda Linear Discriminant Analysis 0.8934 0.9957 0.8907 0.9068 \n", + "lr Logistic Regression 0.8382 0.9908 0.8378 0.8459 \n", + "svm SVM - Linear Kernel 0.3359 0.0000 0.3398 0.2846 \n", + "ridge Ridge Classifier 0.2697 0.0000 0.2683 0.1250 \n", + "ada Ada Boost Classifier 0.2339 0.7032 0.2273 0.1642 \n", + "dummy Dummy Classifier 0.0513 0.5000 0.0455 0.0026 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "nb 0.9599 0.9591 0.9596 0.031 \n", + "qda 0.9574 0.9564 0.9569 0.032 \n", + "rf 0.9566 0.9551 0.9554 0.591 \n", + "et 0.9480 0.9462 0.9465 0.531 \n", + "lightgbm 0.9473 0.9448 0.9452 0.843 \n", + "gbc 0.9456 0.9435 0.9438 5.157 \n", + "dt 0.9390 0.9367 0.9370 0.030 \n", + "knn 0.9332 0.9326 0.9332 0.126 \n", + "lda 0.8878 0.8883 0.8895 0.029 \n", + "lr 0.8325 0.8304 0.8314 1.979 \n", + "svm 0.2804 0.3052 0.3655 0.121 \n", + "ridge 0.1497 0.2346 0.2478 0.019 \n", + "ada 0.1747 0.1939 0.3030 0.209 \n", + "dummy 0.0050 0.0000 0.0000 0.021 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kt034D2wim2C" + }, + "source": [ + "---\n", + "### **2.3 Model Performance using \"Outlier Removal\"**\n", + "---" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "4d97448b0669441088bc1de94e9dc607", + "c91b2e4623f34177906f987bec76baf9", + "ac7d7c15b58e42feb475769f33a49f9d", + "4ec49eefe7b540309e3e519c7910f01b", + "5b2685d48b934e9cbbc7fab76fbe298c", + "29d19e3812564b86baa4871b47e78df9" + ] + }, + "id": "oAaDhJctim2D", + "outputId": "723da45e-33b0-44f3-99ad-5fdcddb76354" + }, + "source": [ + "s = setup(data=cropDataSet, target='label', remove_outliers = True, outliers_threshold = 0.05, silent=True)\n", + "cm = compare_models()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
rfRandom Forest Classifier0.99521.00000.99530.99570.99520.99500.99500.572
nbNaive Bayes0.99450.99990.99470.99490.99450.99430.99430.027
etExtra Trees Classifier0.99320.99990.99340.99360.99310.99280.99290.489
qdaQuadratic Discriminant Analysis0.99180.99990.99210.99230.99160.99140.99140.028
lightgbmLight Gradient Boosting Machine0.98970.99980.99010.99100.98980.98920.98930.917
dtDecision Tree Classifier0.98630.99280.98600.98790.98610.98570.98570.028
gbcGradient Boosting Classifier0.98430.99980.98470.98660.98420.98350.98366.434
knnK Neighbors Classifier0.97470.99940.97510.97750.97440.97340.97360.131
lrLogistic Regression0.96850.99950.96950.97100.96830.96700.96721.682
ldaLinear Discriminant Analysis0.96850.99970.96980.97460.96780.96700.96740.026
ridgeRidge Classifier0.72020.00000.70010.66120.65130.70640.71300.015
svmSVM - Linear Kernel0.69220.00000.69190.76540.67870.67670.70060.076
adaAda Boost Classifier0.20930.68280.20450.13260.14540.16580.27210.202
dummyDummy Classifier0.05400.50000.04550.00290.00550.00000.00000.022
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "rf Random Forest Classifier 0.9952 1.0000 0.9953 0.9957 \n", + "nb Naive Bayes 0.9945 0.9999 0.9947 0.9949 \n", + "et Extra Trees Classifier 0.9932 0.9999 0.9934 0.9936 \n", + "qda Quadratic Discriminant Analysis 0.9918 0.9999 0.9921 0.9923 \n", + "lightgbm Light Gradient Boosting Machine 0.9897 0.9998 0.9901 0.9910 \n", + "dt Decision Tree Classifier 0.9863 0.9928 0.9860 0.9879 \n", + "gbc Gradient Boosting Classifier 0.9843 0.9998 0.9847 0.9866 \n", + "knn K Neighbors Classifier 0.9747 0.9994 0.9751 0.9775 \n", + "lr Logistic Regression 0.9685 0.9995 0.9695 0.9710 \n", + "lda Linear Discriminant Analysis 0.9685 0.9997 0.9698 0.9746 \n", + "ridge Ridge Classifier 0.7202 0.0000 0.7001 0.6612 \n", + "svm SVM - Linear Kernel 0.6922 0.0000 0.6919 0.7654 \n", + "ada Ada Boost Classifier 0.2093 0.6828 0.2045 0.1326 \n", + "dummy Dummy Classifier 0.0540 0.5000 0.0455 0.0029 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "rf 0.9952 0.9950 0.9950 0.572 \n", + "nb 0.9945 0.9943 0.9943 0.027 \n", + "et 0.9931 0.9928 0.9929 0.489 \n", + "qda 0.9916 0.9914 0.9914 0.028 \n", + "lightgbm 0.9898 0.9892 0.9893 0.917 \n", + "dt 0.9861 0.9857 0.9857 0.028 \n", + "gbc 0.9842 0.9835 0.9836 6.434 \n", + "knn 0.9744 0.9734 0.9736 0.131 \n", + "lr 0.9683 0.9670 0.9672 1.682 \n", + "lda 0.9678 0.9670 0.9674 0.026 \n", + "ridge 0.6513 0.7064 0.7130 0.015 \n", + "svm 0.6787 0.6767 0.7006 0.076 \n", + "ada 0.1454 0.1658 0.2721 0.202 \n", + "dummy 0.0055 0.0000 0.0000 0.022 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9IIR2eMyim2E" + }, + "source": [ + "\n", + "### **2.4 Model Performance using \"PCA\"**\n", + "---" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 488, + "referenced_widgets": [ + "03a1c790ef41418291e4f80ba7828a47", + "da2198944b6045e2ac84185ccacbe869", + "a025df127a9f49b482e5f95693de90c4", + "e803d5985cbf441ebb877da74cc47699", + "76bf50cb26144c4bbc0ebcb7fa71709e", + "c637685280d74a898eb266d991ccf636" + ] + }, + "id": "IbRChxn3im2E", + "outputId": "a66ce3f4-6b83-4cd2-b8ea-1c6392a36f29" + }, + "source": [ + "s = setup(data=cropDataSet, target='label', pca = True, pca_method = 'linear', silent=True)\n", + "cm = compare_models()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelAccuracyAUCRecallPrec.F1KappaMCCTT (Sec)
qdaQuadratic Discriminant Analysis0.98770.99990.98740.98870.98770.98710.98710.028
etExtra Trees Classifier0.98510.99980.98460.98680.98490.98430.98440.494
nbNaive Bayes0.98440.99990.98420.98690.98430.98370.98380.028
rfRandom Forest Classifier0.98370.99930.98340.98590.98380.98300.98310.620
lrLogistic Regression0.97990.99980.97930.98220.97960.97890.97901.740
knnK Neighbors Classifier0.97660.99840.97600.97900.97650.97550.97560.126
lightgbmLight Gradient Boosting Machine0.97140.99920.97120.97400.97140.97000.97021.007
dtDecision Tree Classifier0.95780.97790.95670.96230.95760.95570.95600.030
ldaLinear Discriminant Analysis0.95650.99940.95560.96330.95650.95440.95470.026
gbcGradient Boosting Classifier0.95580.99900.95520.96300.95650.95370.95406.285
svmSVM - Linear Kernel0.77780.00000.77560.76340.73940.76720.77290.067
ridgeRidge Classifier0.61530.00000.60270.53780.52690.59660.60740.014
adaAda Boost Classifier0.14490.62970.13700.08250.08590.09980.19430.206
dummyDummy Classifier0.05070.50000.04550.00260.00490.00000.00000.023
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " Model Accuracy AUC Recall Prec. \\\n", + "qda Quadratic Discriminant Analysis 0.9877 0.9999 0.9874 0.9887 \n", + "et Extra Trees Classifier 0.9851 0.9998 0.9846 0.9868 \n", + "nb Naive Bayes 0.9844 0.9999 0.9842 0.9869 \n", + "rf Random Forest Classifier 0.9837 0.9993 0.9834 0.9859 \n", + "lr Logistic Regression 0.9799 0.9998 0.9793 0.9822 \n", + "knn K Neighbors Classifier 0.9766 0.9984 0.9760 0.9790 \n", + "lightgbm Light Gradient Boosting Machine 0.9714 0.9992 0.9712 0.9740 \n", + "dt Decision Tree Classifier 0.9578 0.9779 0.9567 0.9623 \n", + "lda Linear Discriminant Analysis 0.9565 0.9994 0.9556 0.9633 \n", + "gbc Gradient Boosting Classifier 0.9558 0.9990 0.9552 0.9630 \n", + "svm SVM - Linear Kernel 0.7778 0.0000 0.7756 0.7634 \n", + "ridge Ridge Classifier 0.6153 0.0000 0.6027 0.5378 \n", + "ada Ada Boost Classifier 0.1449 0.6297 0.1370 0.0825 \n", + "dummy Dummy Classifier 0.0507 0.5000 0.0455 0.0026 \n", + "\n", + " F1 Kappa MCC TT (Sec) \n", + "qda 0.9877 0.9871 0.9871 0.028 \n", + "et 0.9849 0.9843 0.9844 0.494 \n", + "nb 0.9843 0.9837 0.9838 0.028 \n", + "rf 0.9838 0.9830 0.9831 0.620 \n", + "lr 0.9796 0.9789 0.9790 1.740 \n", + "knn 0.9765 0.9755 0.9756 0.126 \n", + "lightgbm 0.9714 0.9700 0.9702 1.007 \n", + "dt 0.9576 0.9557 0.9560 0.030 \n", + "lda 0.9565 0.9544 0.9547 0.026 \n", + "gbc 0.9565 0.9537 0.9540 6.285 \n", + "svm 0.7394 0.7672 0.7729 0.067 \n", + "ridge 0.5269 0.5966 0.6074 0.014 \n", + "ada 0.0859 0.0998 0.1943 0.206 \n", + "dummy 0.0049 0.0000 0.0000 0.023 " + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YBbGvYyvyrLZ" + }, + "source": [ + "**kernel : dimensionality reduction through the use of RVF kernel.**" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 182 + }, + "id": "4KhTwkKjy0ma", + "outputId": "59d8805f-1a7f-480f-de06-8a1dc68d5782" + }, + "source": [ + "s = setup(data=cropDataSet, target='label', pca = True, pca_method = 'kernel', silent=True)\n", + "cm = compare_models()" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "NameError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msetup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcropDataSet\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'label'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpca\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpca_method\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'kernel'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msilent\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mcm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcompare_models\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'setup' is not defined" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VC3iI98s1BtE" + }, + "source": [ + "k_range = range(1,11)\n", + "scores = []\n", + "\n", + "for k in k_range:\n", + " knn = KNeighborsClassifier(n_neighbors = k)\n", + " knn.fit(X_train_scaled, y_train)\n", + " scores.append(knn.score(X_test_scaled, y_test))\n", + "\n", + "plt.xlabel('k')\n", + "plt.ylabel('accuracy')\n", + "plt.scatter(k_range, scores)\n", + "plt.vlines(k_range,0, scores, linestyle=\"dashed\")\n", + "plt.ylim(0.96,0.99)\n", + "plt.xticks([i for i in range(1,11)]);" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from pycaret.datasets import get_data\n", + "from pycaret.classification import *\n", + "\n", + " # SN is 46\n", + "s = setup(data=cropDataSet, target='label', normalize = True, normalize_method = 'zscore', silent=True)\n", + "\n", + "nbModel = create_model('nb')\n", + "plot_model(nbModel, plot='confusion_matrix')\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 374 + }, + "id": "KgegJAMLEAJC", + "outputId": "36f8e68c-8c68-4ce9-9d22-5bd5d8e7d98a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "error", + "ename": "ModuleNotFoundError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mpycaret\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdatasets\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mget_data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mpycaret\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclassification\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# SN is 46\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0ms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msetup\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcropDataSet\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'label'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnormalize\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnormalize_method\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'zscore'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msilent\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'pycaret'", + "", + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0;32m\nNOTE: If your import is failing due to a missing package, you can\nmanually install dependencies using either !pip or !apt.\n\nTo view examples of installing some common dependencies, click the\n\"Open Examples\" button below.\n\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n" + ], + "errorDetails": { + "actions": [ + { + "action": "open_url", + "actionText": "Open Examples", + "url": "/notebooks/snippets/importing_libraries.ipynb" + } + ] + } + } + ] + }, + { + "cell_type": "code", + "source": [ + "sm = save_model(nbModel, 'nbModelFile')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XxRIJFMPEzse", + "outputId": "f1f8a4ca-b8c6-42a4-d14b-e96a774978d4" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Transformation Pipeline and Model Successfully Saved\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "nbModel = load_model('nbModelFile')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Z8ZTQv6XF8PJ", + "outputId": "50e10b43-d001-4e30-f21e-f81c42f71692" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Transformation Pipeline and Model Successfully Loaded\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "newDataSet = cropDataSet.iloc[:2]\n", + "newDataSet" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "id": "vbiV0Z5VGC12", + "outputId": "e3cd46e5-0caf-4ae8-8cd8-dcb12c49dac6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabel
090424320.87974482.0027446.502985202.935536rice
185584121.77046280.3196447.038096226.655537rice
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature humidity ph rainfall label\n", + "0 90 42 43 20.879744 82.002744 6.502985 202.935536 rice\n", + "1 85 58 41 21.770462 80.319644 7.038096 226.655537 rice" + ] + }, + "metadata": {}, + "execution_count": 62 + } + ] + }, + { + "cell_type": "code", + "source": [ + "newDataSet1 = cropDataSet.iloc[500:502]\n", + "newDataSet1" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "id": "61I1wItobd6_", + "outputId": "fd2632c3-229e-48e5-bdca-6b4a9167b6b2" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabel
5003491827.91095264.7093063.69286432.678919mothbeans
50122592327.32220651.2786884.37174636.503791mothbeans
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature humidity ph rainfall label\n", + "500 3 49 18 27.910952 64.709306 3.692864 32.678919 mothbeans\n", + "501 22 59 23 27.322206 51.278688 4.371746 36.503791 mothbeans" + ] + }, + "metadata": {}, + "execution_count": 61 + } + ] + }, + { + "cell_type": "code", + "source": [ + "newDataSet2 = cropDataSet.iloc[300:302]\n", + "newDataSet2" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "id": "mmuuekEybkwB", + "outputId": "ecf861c9-46f4-47dc-a921-27cd37fcb2bf" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabel
30013602517.13692820.5954175.685972128.256862kidneybeans
30125701619.63474318.9070565.759237106.359818kidneybeans
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature humidity ph rainfall label\n", + "300 13 60 25 17.136928 20.595417 5.685972 128.256862 kidneybeans\n", + "301 25 70 16 19.634743 18.907056 5.759237 106.359818 kidneybeans" + ] + }, + "metadata": {}, + "execution_count": 60 + } + ] + }, + { + "cell_type": "code", + "source": [ + "newDataSet3 = cropDataSet.iloc[800:802]\n", + "newDataSet3" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "id": "FVl0lHoUb50p", + "outputId": "a312fc93-b946-499c-9d6e-61af7d07a4c9" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabel
80032761528.05153663.4980227.60411043.357954lentil
80113612219.44084363.2777157.72883246.831301lentil
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature humidity ph rainfall label\n", + "800 32 76 15 28.051536 63.498022 7.604110 43.357954 lentil\n", + "801 13 61 22 19.440843 63.277715 7.728832 46.831301 lentil" + ] + }, + "metadata": {}, + "execution_count": 67 + } + ] + }, + { + "cell_type": "code", + "source": [ + "newDataSet4 = cropDataSet.iloc[1000:1002]\n", + "newDataSet4" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 112 + }, + "id": "anTWFEnCb-W5", + "outputId": "87187e93-6f31-4c62-d9cf-8b672cfadb3f" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabel
100091944629.36792476.2490016.14993492.828409banana
1001105955027.33369083.6767525.849076101.049479banana
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature humidity ph rainfall label\n", + "1000 91 94 46 29.367924 76.249001 6.149934 92.828409 banana\n", + "1001 105 95 50 27.333690 83.676752 5.849076 101.049479 banana" + ] + }, + "metadata": {}, + "execution_count": 68 + } + ] + }, + { + "cell_type": "code", + "source": [ + "frames = [newDataSet, newDataSet1, newDataSet2, newDataSet3, newDataSet4]\n", + "result = pd.concat(frames)\n", + "#display(result)\n", + "result" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + }, + "id": "cMQJ2DPncP6K", + "outputId": "16352c64-d005-40b1-b3c3-2273778e60f5" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabel
090424320.87974482.0027446.502985202.935536rice
185584121.77046280.3196447.038096226.655537rice
5003491827.91095264.7093063.69286432.678919mothbeans
50122592327.32220651.2786884.37174636.503791mothbeans
30013602517.13692820.5954175.685972128.256862kidneybeans
30125701619.63474318.9070565.759237106.359818kidneybeans
80032761528.05153663.4980227.60411043.357954lentil
80113612219.44084363.2777157.72883246.831301lentil
100091944629.36792476.2490016.14993492.828409banana
1001105955027.33369083.6767525.849076101.049479banana
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature humidity ph rainfall label\n", + "0 90 42 43 20.879744 82.002744 6.502985 202.935536 rice\n", + "1 85 58 41 21.770462 80.319644 7.038096 226.655537 rice\n", + "500 3 49 18 27.910952 64.709306 3.692864 32.678919 mothbeans\n", + "501 22 59 23 27.322206 51.278688 4.371746 36.503791 mothbeans\n", + "300 13 60 25 17.136928 20.595417 5.685972 128.256862 kidneybeans\n", + "301 25 70 16 19.634743 18.907056 5.759237 106.359818 kidneybeans\n", + "800 32 76 15 28.051536 63.498022 7.604110 43.357954 lentil\n", + "801 13 61 22 19.440843 63.277715 7.728832 46.831301 lentil\n", + "1000 91 94 46 29.367924 76.249001 6.149934 92.828409 banana\n", + "1001 105 95 50 27.333690 83.676752 5.849076 101.049479 banana" + ] + }, + "metadata": {}, + "execution_count": 70 + } + ] + }, + { + "cell_type": "code", + "source": [ + "newPredictions = predict_model(nbModel, data = result)\n", + "newPredictions" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + }, + "id": "bEz9ouhgHCRX", + "outputId": "c78cb74d-e09b-49b5-da8d-81c143031f13" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NPKtemperaturehumidityphrainfalllabelLabelScore
090424320.87974482.0027446.502985202.935536ricerice0.9982
185584121.77046280.3196447.038096226.655537ricerice0.9997
5003491827.91095264.7093063.69286432.678919mothbeansmothbeans1.0000
50122592327.32220651.2786884.37174636.503791mothbeansmothbeans0.9994
30013602517.13692820.5954175.685972128.256862kidneybeanskidneybeans0.9997
30125701619.63474318.9070565.759237106.359818kidneybeanskidneybeans0.9999
80032761528.05153663.4980227.60411043.357954lentillentil0.9998
80113612219.44084363.2777157.72883246.831301lentillentil1.0000
100091944629.36792476.2490016.14993492.828409bananabanana1.0000
1001105955027.33369083.6767525.849076101.049479bananabanana1.0000
\n", + "
\n", + " \n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + " N P K temperature ... rainfall label Label Score\n", + "0 90 42 43 20.879744 ... 202.935536 rice rice 0.9982\n", + "1 85 58 41 21.770462 ... 226.655537 rice rice 0.9997\n", + "500 3 49 18 27.910952 ... 32.678919 mothbeans mothbeans 1.0000\n", + "501 22 59 23 27.322206 ... 36.503791 mothbeans mothbeans 0.9994\n", + "300 13 60 25 17.136928 ... 128.256862 kidneybeans kidneybeans 0.9997\n", + "301 25 70 16 19.634743 ... 106.359818 kidneybeans kidneybeans 0.9999\n", + "800 32 76 15 28.051536 ... 43.357954 lentil lentil 0.9998\n", + "801 13 61 22 19.440843 ... 46.831301 lentil lentil 1.0000\n", + "1000 91 94 46 29.367924 ... 92.828409 banana banana 1.0000\n", + "1001 105 95 50 27.333690 ... 101.049479 banana banana 1.0000\n", + "\n", + "[10 rows x 10 columns]" + ] + }, + "metadata": {}, + "execution_count": 71 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "predicted = newPredictions.iloc[:,-2] # Last column\n", + "actual = newPredictions.iloc[:,-3] # 2nd last column\n", + "\n", + "plt.scatter(actual, predicted)\n", + "plt.xlabel('Predicted')\n", + "plt.ylabel('Actual')\n", + "plt.title('Actul Vs Predicted')\n", + "plt.savefig(\"result-scatter-plot.jpg\", dpi=300)\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 376 + }, + "id": "QRYjUEz0HM5-", + "outputId": "0c3199a2-618c-4c18-8ec0-3a6531271b7a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plot_model(nbModel, plot='error')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 399, + "referenced_widgets": [ + "e353c2e9634a41cc9754b120750c37b2", + "396885cfdccc48bb8f1cfd0223c97aa5", + "0568e477bbb745e68f7bd06a18056d9e" + ] + }, + "id": "RIwgRM24HmYr", + "outputId": "b73f7c79-41bf-436c-dbfd-933b03610e4b" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAF+CAYAAABuwQi6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd1iT1x4H8G8SliwZClUrDioVBRzUWRc4UK9etVerUrC21j3rAETFiQNX6ypui9ZqxVFtVdReZ1W0VK3gQLH1uoqIgCAQIeT+IaYiJG9CEgLx+3keH8mb9/zOSU7gl/OOc0RyuVwOIiIiMipiQzeAiIiIdI8JnoiIyAgxwRMRERkhJngiIiIjxARPRERkhJjgiYiIjJCJoRtA5Y9cLseWLVuwe/du5OXlQSaToU2bNpg0aRJsbGwQEhICFxcXjBo1Sm9tCAkJwYkTJ2BnZwe5XA6RSAQ/Pz+MGzcOEomk1HH//vtvtG/fHjdv3sS2bdvw5MkTTJgwQen+V65cgbm5OerXr6/W/prw9fWFXC6Hubl5ke2TJk1C586ddVJHSa5cuYJx48bB3d0dkZGRpY4jl8uxdetWREdHIy8vD/n5+ahduzbGjx8PDw8PHbZYNW375f79++jYsSPGjRuH0aNHK7bv2bMHFy5cwMKFC7Fnzx7MmTMH77zzDoCXr71Lly6YOHEiRCKRTl4Hka4xwVMxS5YswYULF7Bx40Y4OzsjOzsb4eHhGD58OL777rsya8egQYMUXyKysrLw2Wef4Z133sHAgQN1Ej8gIEBwn927d8Pb2xv169dXa39NLV68GB988IHO46py5swZNG/eHIsXL9YqzvLlyxEbG4sNGzbAyckJMpkMu3btwmeffYaYmBg4ODjoqMWq6aJfKleujB07dqBv375wdnYucZ/GjRtjy5YtAF5+Hvv27QsPDw/4+flpXT+RPvAQPRWRnp6OrVu3YuHChYo/dJaWlggLC8MXX3yBN+dFunTpEj766CN07doV3bt3x9mzZwEA+fn5mDZtGvz8/NC5c2eMGTMGWVlZSrcLsba2Ru/evfHrr78CAAIDA7F8+XJ069YNv//+O549e4YpU6bAz88PHTt2xO7duxVlo6Oj4ePjg549e2L//v2K7StXrsS0adMAAPfu3cMnn3yCzp074z//+Q8SEhLw/fff48cff8TixYuxefPmIvs/fPgQQ4YMgZ+fH3r06IF9+/YBeDkabNOmDaKiotCzZ0+0bdsWBw8eLFVfvP/++1i7di38/Pwgk8ng6+uLVatWwc/PDw8fPhRsw/z584slv8OHDyMqKgrHjx/H0KFDAQBRUVHo3r07unbtipEjR+Lp06cAXh5FWbBgAXr27IlDhw4ViZOeno5vv/0WixYtgpOTEwBAIpFgwIABOH78uCK537lzBwMHDkS3bt3QuXNn/PTTT4o2NmjQQBHv9cfJycn49NNP0b17d3Tq1AnLly9Xuf31flFW36v3c9++fejduzfatGmjSNbAy8/Xp59+iqVLl6rVN9bW1mjYsCHu3bun1v5EhsAET0VcuXIF77zzDlxdXYtsNzc3h6+vL8Tioh+ZsLAwDBkyBIcPH8awYcMwc+ZMAC9Hiffv38fhw4dx5MgRvPfee7h06ZLS7erIz8+HmZmZ4nF8fDx+/vlnNG3aFAsXLoRYLMahQ4ewa9curFy5EomJicjIyEB4eDg2bNiAAwcO4PHjxyXGnjFjBv71r3/h6NGjGDlyJIKCgjBw4EB4eXlhypQp+Oyzz4rt37x5c8TExGDt2rWYN28e7t+/DwBIS0uDWCzGgQMHEBoaiq+++kqt11cSuVyOmJgYxWmJ5ORkxMTEoHr16irbkJ6eDnd3d2zbtq1IvK5duyIgIAB+fn5Yv349Ll++jI0bN2Lr1q04fPgwqlevXiTJnTt3DtHR0ejWrVuROFeuXEG1atVQu3btYm22trZW/BwREQEfHx8cOnQI8+fPx7Rp05CXl6fyNW/ZsgXNmjXDwYMHceDAAdy7dw+PHz9Wuv11QvXdvn0b+/btw5o1a7Bs2TLIZDLFc4MGDcLly5fxxx9/qGwf8PIL4aVLl9CmTRvBfYkMhYfoqYj09HQ4Ojqqvf++ffsU5yC9vb0VIxoHBwckJSXh6NGjaNOmjeL86B9//FHidiGpqanYvXs3Ro4cqdjWvn17xReO48ePY8OGDRCLxXBwcEDnzp1x5MgReHl5oVatWoovLL1798bWrVuLxJZKpYiNjcWKFSsAAB07dkSrVq2UtiUvLw9nz55VJO4aNWqgRYsWOH/+PFq2bIn8/Hx89NFHAICGDRvi4cOHSmNNmTKl2Dn4/fv3K77IdOjQochzrx4LtSEvL0+t8/gnTpyAn5+fos/79euHESNGKJ5v1apVsfYBQEZGRpFD8M+ePcPHH38MAMjOzkZgYCCGDh2KNWvWKI76eHt7QyqVIiUlRWWbHB0dcezYMbRs2RJNmjTBsmXLVG5/nbL6qlevDgDo1asXgJf9IpVKkZqaqihrZmaGKVOmYP78+dixY0ex2JcvX0bXrl1RUFCABw8eoF+/fqhbt67K10JkSEzwVIS9vT2Sk5PV3v/AgQOIiorC8+fPUVBQoPjj6uXlhenTp2Pr1q0IDg6Gr68vZs6cqXS7ra1tsdhRUVGKQ+qVKlVCv379iowkK1eurPg5MzMTEyZMUIx0pVIpunbtioyMDNjY2JRY5pX09HQUFBQo9hOJRLCyslL6mtPT0yGXy4vEtbW1VRzalkgksLS0BACIxWIUFBQojSV0Dt7Ozq7I41ftV6cNr4+klXn69KniEPurGK8nvZLeL+DlF7jXR8+2trY4fPgwAGDatGnIzc0FAJw+fRrffPMN0tLSIBKJIJfLVb4fADB48GAUFBRg9uzZePz4MT755BOMHTtW6fbXCdX36v169Tl5sy2dO3dGVFQUDhw4UKxdr5+Df/HiBZYvX47JkycrvhgSlTc8RE9FNG7cGKmpqUhISCiyPS8vD8uXL0dOTo5iW3JyMqZPn47w8HDExMRg/fr1Rcp07doVW7duxfHjx5GTk4ONGzeq3P6mQYMG4fDhwzh8+DD27t2LwMBApe12cnLC6tWrFfsfP34cwcHBsLW1RWZmpmK/Vwnwdfb29hCJREhLSwPw8rD43bt3i11v8Pr+YrEYGRkZim2aHvnQlq7aUKVKFaSnpxeJUaVKFcFyrz4n165dU7pPXl4eJkyYgJEjRyImJgb79+9XHO2RSCRFvhA+e/ZMUc7ExATDhg3DgQMHsGPHDuzfvx9nz55Vul2d+jQxbdo0LF++XPElpSRmZmbo27cvTp06pXF8orLCBE9F2Nra4osvvkBwcDDu3r0LAMjJyUFYWBiuXbuGSpUqKfZ9+vQpLC0tUbduXeTn52Pnzp0AgOfPn2P37t1YvXo1gJej0FeHMpVt15avr6/isGp+fj7mz5+PhIQEeHp64s8//8Rff/0FANi7d2+xsmZmZvjwww8Vz50+fRrDhg2DSCSCiYlJkS8IwMsE1KZNG8Xr/d///offfvsNrVu31slrUYeu2tChQwccPXpU8eVmx44daN++vWA5a2trjBo1CkFBQYrPSUFBAX7++WccOnQILi4uyMnJQXZ2tuKWuW+//RampqbIzs6Gvb09JBIJbt68CQCKCwSBl9d1vLqY0sXFBVWqVIFIJFK6/RVV9Wmifv36aN26Nb799luV+x07dgzvvfeeRrGJyhIP0VMxY8eOReXKlTFy5EjIZDKIxWJ07NgRs2bNKrJf/fr10a5dO8U53JCQEPz+++8IDAzEpk2bEBoaii5dukAikaBWrVpYuHAhACjdro0JEyZg9uzZiluW2rZti/fffx8mJiYIDg7GZ599BisrK/Tr16/E8uHh4Zg8eTK2b9+OypUrY8mSJQCATp06YfHixbh3716RQ96zZ8/G9OnTsWfPHpiammLevHmoVq2a4iI3dZV0Dr5z586YNGmSYFldtMHLywvDhg3DJ598goKCAri7uxfrZ2WGDh0KOzs7jBs3DlKpFC9evECdOnWwYsUKxcVnX3zxBXr37g1HR0eMHDkSnTp1wogRI/DTTz9h7Nix+OKLL+Dk5FTk6MyAAQMQFhaGuXPnQi6Xw9fXF61atYKdnV2J2+Pi4gD88+VUWX2amDBhArp06VJk26tz8MDLLzN16tTR6gJKIn0TcT14IiIi48ND9EREREaICZ6IiMgIMcETEREZIV5kR0REVEhWUICkVOHpszXh6mgNiVh4PD1//nxcuXIFIpEIoaGh8PLy0qrecpvgCwoK8Pz5c5iamnK1JiIiAvBynoq8vDxYWVkVmzpbF5JSs+C+8Eedxrwe0gtuVYtP5vW6Cxcu4O7du9i5cyeSkpIQGhqquA22tMptgn/+/DkSExMN3QwiIiqH3NzciszkWNGdO3cOnTp1AgC4uroiIyMDWVlZas1IqUy5TfCmpqYAXnbi6wuM6Fp8fLxWa1dX9PLloQ18DXwPdFG+PLSBr0E374EqL168QGJioiJHGIsnT56gYcOGiscODg5ISUkxzgT/6rC8mZlZiYtd6JK28St6+fLQBr4Gvge6KF8e2sDXoJv3QIixn7rVxRQ1vIqeiIjIwJycnPDkyRPF48ePH6Nq1apaxWSCJyIiMrAPP/wQMTExAICEhAQ4OTlpdXgeKMeH6ImIiN4WTZs2RcOGDTFgwACIRCLMnDlT65hM8ERERIVcHa1xPaSXzmOqY/LkyTqtlwmeiIiokEQsFrxnvaLgOXgiIiIjxARPRERkhJjgiYiIjBATPBERkRFigiciIjJCvIqeiIioUIG8AJm5qTqNaWPhCLFIeDydmJiIUaNGYfDgwQgICNC6XiZ4IiKiQpm5qdgbt1SnMft4T0LlSqqnnc3OzsbcuXPRqlUrndXLQ/REREQGZmZmhvXr18PJyUlnMTmCJyIiMjATExOYmOg2JXMET0REZISY4ImIiIwQEzwREZER4jl4IiIiA4uPj8eiRYvw4MEDmJiYICYmBitXroSdnV2pYzLBExERFbKxcEQf70k6jynEw8MDW7du1Wm9TPBERESFxCKx4D3rFQXPwRMRERkhJngiIiIjxARPRERkhJjgiYiIjBATPBERkRHiVfRERESF5DIZpHeSdBrTvK4rRBKJ4H4RERGIi4tDfn4+hg8fji5dumhVLxM8VRhbzoSofP7qmV3Ftg1us1BfzXlrqeqHkvoAYD+8STJJ4H7n7deKbZItDdRTa+h10jtJuNqkgU5jel66Bot6bir3OX/+PG7duoWdO3ciLS0Nffr0YYInIiKq6Jo1awYvLy8AgK2tLXJyciCTySBRY+SvDM/BExERGZhEIoGlpSUAIDo6Gu3atdMquQMcwRMREZUbx44dQ3R0NDZt2qR1LL0l+JycHISEhCA1NRVSqRSjRo1CTEwMEhISFJPnDxkyBB06dNBXE4iIiCqM06dPIzIyEhs2bICNjY3W8fSW4I8fPw4PDw8MHToUDx48wOeff44mTZpg4sSJ8PHx0Ve1REREFU5mZiYiIiKwZcsWrVaQe53eEnz37t0VPz969AjOzs76qoqIiKhCO3jwINLS0jBhwgTFtkWLFqF69eqljqn3c/ADBgzA33//jcjISGzZsgXbtm3D5s2b4ejoiBkzZsDBwUHfTSAiIlKLeV1XeF4qfpuitjGF9O/fH/3799dpvSK5XC7XacQSXL9+HUFBQQgNDYWdnR3c3d2xbt06/P333wgLCyuxjFQqRXx8vL6bRhXI1ZyS77FWxbNSPz205O3GftBe8xLucxdywV+392ZXdB4eHjA3Nzd0M8o1vY3g4+Pj4ejoiGrVqsHd3R0ymQxubm5wdHy58L2vry9mzZolGEffnRgXFwdvb++3tnx5aIO65ZVNoqKKuu2qKO9BeWiDvvqhIr0HWpcvRYJ/mz7LqnDwpz693Qf/22+/KS7zf/LkCbKzsxEWFoZ79+4BAGJjY1GvXj19VU9ERPRW09sIfsCAAZg2bRr8/f2Rm5uLsLAwWFpaYsKECahUqRIsLS2xYMECfVVPRET0VtNbgrewsMDSpUuLbd+9e7e+qiQiIqJCnKqWiIjICHGqWiIiokIFsgJkJSXrNKa1qzPEEtXj6ZJmf9V2UjgmeCIiokJZScn4yX2iTmP2uL4Mtm7VVO5T0uyvTPBEpDauQw7cOK/8z54VgBvni2+v3zJffw0ign5mf2WCJyIiKiden/1VW7zIjoiIqJzYsWMHvvnmG0yZMgXaTjTLBE9ERGRg8fHxePToEQAoZn99+vSpVjGZ4ImIiAyspNlf7e3ttYrJBE9ERGRgAwYMwNOnT+Hv749hw4YhLCwMYrF2KZoX2RERERWydnVGj+vLdB5TiLLZX7XBBE9ERFRILBEL3rNeUTDB01vjorXqj/vFErY1y+L9z0RUMfEcPBERkRFigiciIjJCTPBERERGiAmeiIjICPEiOyIiokJyuQx5uUk6jWlq4QqRSCK4X25uLnr06IFRo0bho48+0rpeJngiIqJCeblJuHOlgU5j1m10DWaV3AT3++abb1C5cmWd1ctD9ERERAaWlJSE27dvo0OHDjqLyRE8EdFbSNW8ECXNCQFwXgh9WrRoEWbMmIF9+/bpLCZH8ERERAa0b98+NG7cGDVr1tRpXI7giYiIDOjEiRO4d+8eTpw4gb///htmZmZ455130Lp1a63iMsETEREZ0FdffaX4eeXKlahRo4bWyR3gIXoiIiKjxBE8ERFRIVMLV9RtdE3nMdU1duxYndXLBE9ERFRIJJKodc96RcBD9EREREaII3hS26KLt5Q8Y4tjSp4LblZPfw0ygO2SgUqfu6lku7/se/00hsiA+LtQ/nEET0REZISY4ImIiIwQEzwREZER4jl4IiKiQgVyOdKleTqNaWduCrFIpHKf2NhYjB8/HvXqvbxuyc3NDTNmzNCqXr0l+JycHISEhCA1NRVSqRSjRo1C/fr1ERQUBJlMhqpVq2Lx4sUwMzPTVxOIiIg0ki7Nw/qrd3Uac6hnLThYCOe65s2bY8WKFTqrV28J/vjx4/Dw8MDQoUPx4MEDfP7552jatCn8/f3RrVs3LFu2DNHR0fD399dXE4iIiN5aejsH3717dwwdOhQA8OjRIzg7OyM2NhYdO3YEAPj4+ODcuXP6qp6IiKhCuX37NkaMGIGBAwfi119/1Tqe3s/BDxgwAH///TciIyPx2WefKQ7JOzo6IiUlRd/VExERlXu1a9fGmDFj0K1bN9y7dw+DBg3CkSNHtDqNrfcEv2PHDly/fh1TpkyBXC5XbH/9Z1Xi4+P11TSFuLg4oy9vlddC+XMAbpwvvv25aewbW2w1axjUf23avgf6iquLdpXle6CP99HY3gMrHcQ8VqDsd0H5pE+dxM9KUbPyNuhqX321QR/ljZmzszO6d+8OAHBxcUGVKlWQnJys1Rrxekvw8fHxcHR0RLVq1eDu7g6ZTAYrKyvk5ubCwsICycnJcHJyEozj4eEBc3NzfTUTcXFx8Pb2NvryJSVwIW/GVfaHS5MYJVH3NVw9s0ur+i9qXLp4+5XN0KVJjJJo+zlQO8Z2zRfReDOmtv2gTFm9B+Xid0EH/aCMuu+jtr8P+vpdECKVSstk4FfW9u/fj5SUFAwZMgQpKSlITU2Fs7OzVjH1dg7+t99+w6ZNmwAAT548QXZ2Nlq3bo2YmBgAwJEjR9C2bVt9VU9ERFRh+Pr64uLFi/D398eoUaMwa9Ysre8y09sIfsCAAZg2bRr8/f2Rm5uLsLAweHh4IDg4GDt37kT16tXRu3dvfVVPRESkMTtzUwz1rKXzmEKsra0RGRmp03r1luAtLCywdOnSYts3b96sryqJiIi0IhaJ1LpnvSLgVLVERERGiAmeiIjICDHBExERGSEuNqOGLWdCVD5f0m1Dg9ss1GkbtksGKn1O2e0q/rLvddoGbUkmbVX+pJLbhmRLA/XUGsO4cb7kXzllcxEAQP2W+fprEBEZLY7giYiIjBBH8ERERIVkBQVISs3SaUxXR2tIxMLj6f3792PDhg0wMTHBuHHj0KFDB63qZYInIiIqlJSaBfeFP+o05vWQXnCrqnqq77S0NKxevRq7d+9GdnY2Vq5cyQRPRERU0Z07dw6tWrWCtbU1rK2tMXfuXK1j8hw8ERGRgd2/fx+5ubkYMWIE/P39dbKcOkfwRERE5UB6ejpWrVqFhw8fYtCgQTh+/DhEIlGp43EET0REZGCOjo5o0qQJTExM4OLiAisrKzx9+lSrmBzBE1Ugi1QuU1ryWuTBzerpr0FEpBNt2rRBSEgIhg4dioyMDGRnZ8Pe3l6rmEzwREREBubs7Aw/Pz98/PHHAIDp06dDrMatdaowwRMRERVydbTG9ZBeOo+pjgEDBmDAgAE6q5cJnoiIqJBELBa8Z72i4EV2RERERkgwwZ88eRI//vhyVp9JkyahS5cuOHLkiN4bRkRERKUnmODXrFmDtm3b4uTJkygoKMDevXuxdauKVcGIiIjI4AQTvIWFBRwcHHDy5En06tULVlZWWl/ZR0RERPoleJGdVCrFhg0bcPr0aQQHB+Ovv/5CZmZmWbSNiKiY7ZKBKp+/WcI2f9n3+mkMUTkmmODnzp2LH374AQsWLIC5uTnOnDmDyZMnl0XbiIiIylSBvACZuak6jWlj4QixSPWR7127dmH//v2Kx/Hx8bh06ZJW9Qom+Nq1a+Pzzz9HtWrVcOPGDVhbW6NJkyZaVUpERFQeZeamYm/cUp3G7OM9CZUrVVW5T79+/dCvXz8AwIULF3Do0CGt6xU8mR4SEoIrV64gOTkZY8eORWJiIkJCQrSumIiIiIpbvXo1Ro0apXUcwQSfnJyMrl274uDBg/D390dQUBAyMjK0rpiIiIiK+uOPP1CtWjVUrap6xK8OwQT/4sULyOVyHD16FB06dAAAPH/+XOuKiYiIqKjo6Gj06dNHJ7EEE3zz5s3h7e2NqlWrok6dOtiyZQvq1q2rk8qJiIjoH7GxsTq7zk3wIrvJkydj2LBhsLV9OTdvx44d4eHhoZPKiYiI6KXk5GRYWVnBzMxMJ/EEE3xWVhYOHDiAtLQ0AEBeXh52796NM2fO6KQBb4uL1srf6otKtjfLytdPY4iIqNxJSUmBg4ODzuIJJvgJEyagevXqOHPmDPz8/PDrr79i1qxZOmsAERFReWFj4Yg+3pN0HlMdHh4e2LBhg87qVWsmuzlz5iAwMBDBwcFIT0/H3Llz0alTJ501goiIqDwQi8SC96xXFIIX2eXl5SE7OxsFBQVIS0uDnZ0d7t27VxZtIyIiolISHMH36tULP/zwA/r164fu3bvDwcEBLi4uagWPiIhAXFwc8vPzMXz4cPz3v/9FQkIC7OzsAABDhgxR3HpHREREuiOY4AcO/Gdhh1atWiE1NRUNGjQQDHz+/HncunULO3fuRFpaGvr06YOWLVti4sSJ8PHx0a7VREREpJLSBP/1118rLXT06FGMHz9eZeBmzZrBy8sLAGBra4ucnBzIZLJSNpOIiIg0ofQcvEQiUflPiEQigaWlJYCXM/O0a9cOEokE27Ztw6BBg/Dll1/i6dOnunslREREpKB0BD9mzBgAgEwmw6VLl/DBBx8AAP773/9qdN782LFjiI6OxqZNmxAfHw87Ozu4u7tj3bp1WLVqFcLCwlSWj4+PV7suZZpvv6Z6hxKev+AvfBpClbi4OK3K6yLG6+WtdFK/rQ5ivF3l34yhfT9UvD7QJIYu6hKK+zb8LpTF+2iI8mVBLpNBeidJpzHN67pCJDAwfv78OYKDg5GRkYG8vDyMHj0abdu21apewXPwM2fOhL29vSLBX7hwAUePHsWCBQsEg58+fRqRkZHYsGEDbGxs0KpVK8Vzvr6+at1P7+HhAXNzc8H9VBJK8CXw9vZW/Hz1zC6tygPKJ7NRN8ZNLcvfOK9deQA4dvGWdjEM3A/a9gFg+H4wdB8Auvl9KElcXJxa+xm6D4Dy0Q/KqPs+GvpvUmlJpVKdDPyUxr+ThKtNtBvgvcnz0jVY1HNTuc/evXtRp04dTJo0CcnJyfj0009x+PBhreoVvE3ur7/+wqRJ/9z0HxISgvv37wsGzszMREREBNauXau4an7s2LGKW+xiY2NRr1690rabiIjIaNjb2yM9PR0A8OzZM9jb22sdU3AEn5ubi/T0dEWSTk5OhlQqFQx88OBBpKWlYcKECYptH330ESZMmIBKlSrB0tJSraMARERExu5f//oX9uzZg86dO+PZs2dYu3at1jEFE/zo0aPRo0cPVKtWDTKZDI8fP0Z4eLhg4P79+6N///7FtutqGTwiIiJj8eOPP6J69erYuHEjbty4gdDQUOzZs0ermIIJ3sfHB8eOHcPt27chEolQt25dVKpUSatKiYiI6B+///472rRpAwCoX78+Hj9+DJlMptZda8oInoMHAAsLC3h4eKBhw4ZM7kRERDpWq1YtXLlyBQDw4MEDWFlZaZXcATVG8ERERKRf/fv3R2hoKAICApCfn6+TVVuZ4ImIiAqZ13WF5yXNb2MUiinEyspK5QyypaE0wa9atUplwVcT4RARERkLkUQieM96RaE0wefn5wMA7t69i7t37+KDDz5AQUEBLly4oNZiM0RERGQ4ShP8q/vXR4wYgV27dilO9ufl5eHLL78sm9YRERFRqQheRf/o0SPI5XLFY5FIhIcPH+q1UURERKQdwYvsOnToAD8/PzRs2BBisRjXrl1Dx44dy6JtREREVEqCCf7LL79Enz59kJiYCLlcjjFjxuC9994ri7YRERFRKQkm+BcvXuDXX3/Fo0ePMHnyZFy5cgVSqVT7Fd6IiIjKmQJZAbKSknUa09rVGWKJ6jPiBQUFmDlzJm7dugVTU1PMmjULrq7Ct9epIpjgZ82aBRsbG/z+++8AgISEBGzZsgXLly/XqmIiejtdtFb+Z0fZEqbNsvL10xiiN2QlJeMn94k6jdnj+jLYulVTuc8vv/yCzMxM7NixA//73/8QHh6u9YIzghfZ3blzB1OnToWFhQUAwN/fH48fP9aqUiIiIvrHX3/9BS8vLwCAi4sLHj58CJlMpgxv7CcAACAASURBVFVMwQRvYvLy27ZIJAIAZGdnIzc3V6tKiYiI6B9ubm44c+YMZDIZ7ty5g3v37iEtLU2rmIKH6Lt27YpPP/0U9+/fx7x583Dq1Cn4+/trVSkRERH9o3379vj999/xySef4P3330fdunWL3KJeGoIJPiAgAF5eXrhw4QLMzMywbNkyeHh4aFUpERERFfX6JHKdOnWCo6OjVvEED9GHhITAy8sLX3zxBQYNGgQPDw8MGTJEq0qJiIjoHzdu3MDUqVMBAKdOnUKDBg0gFqu1ortSSkfw+/fvx44dO3Dr1i188skniu15eXl48uSJVpUSERHRP9zc3CCXy9G3b1+Ym5tjyZIlWsdUmuD//e9/o0WLFpg8eTLGjh2r2C4WiznRDRERGSVrV2f0uL5M5zGFiMViLFy4UKf1qjwH7+zsjMjISJw8eRLdu3cHAHz//fdwd3fXaSOIiEh9W86EqHz+6pldxbYNbqPb5GGsxBKx4D3rFYVa5+BfPySfm5uLoKAgvTaKiIiItCOY4NPT0zFo0CDF488++wzPnj3Ta6OIiIhIO4IJPi8vD0lJSYrH8fHxyMvL02ujiIiISDuC98FPnToVo0aNQmZmJmQyGRwcHLBo0aKyaBsRERGVkmCCb9SoEWJiYpCWlgaRSAQ7O7uyaBcRERFpQWmCX7t2LYYPH44pU6Yo5qF/XUREhF4bRkREVNbkchnycpOEd9SAqYUrRCKJ4H6JiYkYNWoUBg8ejICAADx69AhBQUGQyWSoWrUqFi9eDDMzM7XrVZrgGzRoAABo3bq12sGIiIgqsrzcJNy50kCnMes2ugazSm4q98nOzsbcuXPRqlUrxbYVK1bA398f3bp1w7JlyxAdHa3RWjBKE7yrqysePnyIFi1aqB2MiIiINGdmZob169dj/fr1im2xsbGYPXs2AMDHxwebNm3STYIfOHAgRCIR5HI5Hj9+DBsbG+Tn5yMnJwc1a9bEkSNHtHgpRERE9IqJiYliefZXcnJyFIfkHR0dkZKSollMZU+cPHkSABAeHo4+ffooDtlfuXIFBw4c0KgSIiIiKr3SLB0reB/8tWvXFMkdeHlV/e3btzWuiIiIiNRnaWmJ3NxcAEBycjKcnJw0Ki94m5xYLMbSpUvh7e0NkUiES5cuQSqVlq61REREpJbWrVsjJiYGvXr1wpEjR9C2bVuNygsm+K+++gpRUVHYsWMHgJcX33311VdqBY+IiEBcXBzy8/MxfPhweHp6anXJPxERkTGKj4/HokWL8ODBA5iYmCAmJgZLlixBSEgIdu7cierVq6N3794axRRM8I6Ojhg8eDDu378PT09PFBQUqLUI/fnz53Hr1i3s3LkTaWlp6NOnD1q1aqXVJf9ERET6ZGrhirqNruk8phAPDw9s3bq12PbNmzeXul7BBP/TTz9hxYoVMDMzw08//YS5c+eiQYMG6Nevn8pyzZo1g5eXFwDA1tYWOTk5Wl/yT0REpE8ikUTwnvWKQnAovnnzZvz444+wt7cHAAQHB+OHH34QDCyRSGBpaQkAiI6ORrt27bS+5J+IiIjUIziCt7GxQaVKlRSPLSwsYGpqqnYFx44dQ3R0NDZt2oQuXbootqt7yX98fLzadelSXFycQcvrug1WOqnfVgcx3q7yb8bQvh8qXh+Uhzbwd8E4+pE0I5jg7e3tsXfvXkilUiQkJODgwYNwcHBQK/jp06cRGRmJDRs2wMbGRnHJv4WFhdqX/Ht4eMDc3Fyt+pTarvn5FG9vb8XPV8/s0qo8AFzUOELRGDe1LH/jvHblAeDYxVvaxTBwP2jbB4Dh+8HQfQAYvh8M3QeA4fvBGP4mlZZUKjXYwK+iETxEP3v2bFy9ehXPnz/H9OnTIZVKMW/ePMHAmZmZiIiIwNq1axUr0L265B9AqS75JyIiIvUIjuAvXbqEsLAwjQMfPHgQaWlpmDBhgmLbwoULMX369FJf8k9ERETqEUzwW7ZswYcfflhsjlwh/fv3R//+/Ytt1+aSfyIiIn0qkMuRLs3TaUw7c1OIS1h2/U1vLhcLAFFRUVi0aBEuXLgAKyvNriBR6yK7f/3rX2jQoEGRi+u4HjwRERmbdGke1l+9q9OYQz1rwcFC9aRuJS0Xu2/fPqSmpmo8Re0rggnex8cHPj4+pQpOREREwkpaLrZTp06wtrYu9QJvggm+T58+SExMxO3btyESifD++++jbt26paqMiIiIiitpuVhra2vtYgrtsGjRIvzyyy+KaWqXLl2KHj16FLl4joiIiMoXwQQfGxuLn3/+WXH+/cWLFxgwYAATPBERUTkmeB98lSpVihw2MDU1RY0aNfTaKCIiItKOWjPZ/ec//0HLli0hl8tx8eJF1KxZE19//TUAYPz48XpvJBERkTErabnY1q1b4+zZs0hJScHQoUPRuHFjBAUFqR1TMMHXrFkTNWvWVDzu0KFDqRpPRERU3tmZm2KoZy2dxxSibLnYkSNHlrpewQQ/ZsyYUgcnIiKqSMQikeA96xWF4Dl4IiIiqniY4ImIiIyQ0gQ/Z86cIv8TERFRxaH0HPyvv/6KiRMn4sKFC8jKyir2POeiJyIiKr+UJvj169fj999/x/Xr14tMfk9ERETln9IE7+LiAhcXFzRt2hQuLi5IT0+HSCRC5cqVy7J9REREZUZWUICk1OJHrbXh6mgNiVj4krc3l4t99OgRpk6divz8fJiYmGDx4sWoWrWq2vUK3iaXkpKCzz//HM+fP0dBQQHs7e2xePFieHp6ql0JERFRRZCUmgX3hT/qNOb1kF5wq2qrcp+Slov96quv8PHHH6N79+747rvvsHnzZt1OdLNs2TKsWbMGbm5uAIBr164hPDwc3333ndqVEBERkXIlLRc7c+ZMmJubA3g5q2xCQoJGMQWPGYjFYkVyB4AGDRpAIpFoVAkREREpZ2JiAgsLiyLbLC0tIZFIIJPJsH37dvTs2VOjmGol+CNHjiArKwtZWVk4ePAgEzwREVEZkMlkCAoKQsuWLTW+4F3wEP3s2bMxd+5cTJs2DWKxGI0aNcLs2bNL3VgiIiJSz9SpU1GrVq1STRsvmOBr166NjRs3lqphREREVDr79++Hqakpxo0bV6ryggmeiIiI9Kuk5WJTU1Nhbm6OwMBAAICrqytmzZqldkwmeCIiokKujta4HtJL5zGFKFsuVhuCCf7atWto0KCBTislIiIqjyRiseA96xWF4FX0CxcuLIt2EBERkQ4JjuCrV6+OwMBANGrUCKamport48eP12vDiIiIqPQEE/y7776Ld999tyzaQkRERDoimODHjBmDtLQ03L9/H56enigoKIBYjUnziYiIyHAEM/XPP/+M/v37Y+rUqQCAuXPnIjo6Wu8NIyIiotITHMFv2rQJP/74I4YNGwYACA4ORmBgIPr27av3xhEREZWlAnkBMnNTdRrTxsIRYpHmy8VeunQJERERMDExgZmZGRYvXgwHBwe16xVM8DY2NqhUqZLisYWFRZGL7YiIiIxFZm4q9sYt1WnMPt6TULmS6nXcS1oudvPmzYiIiEDNmjWxatUq/PDDDxgxYoTa9Qp+pbC3t8fevXshlUqRkJCg0TeIxMREdOrUCdu2bQMAhISEoGfPnggMDERgYCBOnDihdkOJiIiM1avlYp2cnBTbVqxYgZo1a0IulyM5ORnvvPOORjHVWmzmq6++wvPnzzF9+nR4e3tj3rx5goFL+jYCABMnToSPj49GjSQiIjJmJiYmMDEpnpJPnTqF8PBw1K1bF//+9781iym0g62tLcLCwvD06VMAUHv0XtLi9URERKS+du3aoW3btliyZAnWrVun20P0Bw8exIcffoh///vf6NmzJ9q1a4ejR48KBi5p8XoA2LZtGwYNGoQvv/xS8aWBiIiIinqVa0UiEfz8/BAXF6dRecER/DfffIPvv/8eLi4uAIA///wT48aNQ+fOnTVubK9evWBnZwd3d3esW7cOq1atQlhYmMoy8fHxGtejC5q+kbour+s2WOmkfs3nZzb0+2jo8m/G0L4fKl4flIc28HfBOPrxbbNy5Uq8++67cHd3x5UrV1CnTh2NygsmeCcnJ0VyB4A6deqgZs2amrcUKHI+3tfXV61l7zw8PGBubl6q+hS2X9O4iLe3t+Lnq2d2aVUeAC5qHKFojJtalr9xXrvyAHDs4i3tYhi4H7TtA8Dw/WDoPgAM3w+G7gPA8P1gDH+TSksqlRps4KdPJS0XO2/ePMyePRsSiQQWFhaIiIjQKKbSBH/u3DkAQN26dTF37ly0bt0aYrEY586dQ61atUr1AsaOHYugoCDUrFkTsbGxqFevXqniEBER6YONhSP6eE/SeUwhypaL3bFjR6nrVZrg16xZU+RxYmKi4meRSCQYuKRvIwEBAZgwYQIqVaoES0tLLFiwoNQNJyIi0jWxSCx4z3pFoTTBa7vwvLJvI35+flrFJSIiImGC5+DPnj2L7du3IzMzE3K5XLE9KipKrw0jIiKi0hNM8LNmzcLIkSM1nkGHiIiIDEcwwdeuXRt9+vQpi7YQERGRjggm+I8//hjTpk1DkyZNikyj17t3b702jIiIiEpPMMFHRkaiUqVKePHihWKbSCRigiciIqMjl8kgvZOk05jmdV0hkkgE93tzudhXTp8+jS+++AI3b2o2+4Bggjc1NdX6inoiIqKKQHonCVebNNBpTM9L12BRz03lPsoWaJNKpVi3bh2qVtX81j3Bueh9fX1x/vx5vHjxAgUFBYp/REREpBslLRcLvDyK7u/vDzMzM41jCo7g16xZg5ycnCLbRCIRrl+/rnFlREREVFxJy8X++eefuHHjBsaPH4/FixdrHlNoh0uXLmkclIiIiLSzYMECTJ8+vdTlBRP8119/XeL28ePHl7pSIiIiUi45ORl37tzB5MmTAQCPHz9GQEAAtm3bpnYMwQQvee3Kv7y8PFy8eBENGuj2AgQiIiL6h7OzM44dO6Z47Ovrq1FyB9RI8GPGjCnyWCaTYezYsRpVQkRERMqVtEDbypUrYWdnV+qYggn+Tfn5+fjf//5X6gqJiIjKK/O6rvC8dE3nMYUoW6Dtlf/+978a1yuY4Nu3b69YHlYul+PZs2ecupaIiIySSCIRvGe9ohBM8Nu3b1f8LBKJYG1tDVtbW702ioiIiLQjmOCrVKmC06dPIyMjo8hysX379tVrw4iIiKj0BBP8F198AZFIhBo1ahTZzgRPRERUfgkm+Ly8POzYsaMs2kJEREQ6IjgX/XvvvYe0tLSyaAsRERHpiOAI/u+//0aXLl3g6upaZNKb7777Tq8NIyIiKmsFsgJkJSXrNKa1qzPEEsHxdLHlYkNCQpCQkKC4F37IkCHo0KGD2vUKJvhhw4apHYyIiKgiy0pKxk/uE3Uas8f1ZbB1q6ZyH2XLxU6cOBE+Pj6lqlcwwTdv3rxUgYmIiEg9r5aLXb9+vc5iCh8zICIiIr0yMTGBhYVFse3btm3DoEGD8OWXX+Lp06caxWSCJyIiKod69eqFyZMnIyoqCu7u7li1apVG5ZngiYiIyqFWrVrB3d0dwMvV5BITEzUqzwRPRERUDo0dOxb37t0DAMTGxqJevXoaldd4NTkiIiLSrZKWiw0ICMCECRNQqVIlWFpaYsGCBRrFZIInIiIqZO3qjB7Xl+k8phBly8X6+fmVul4meCIiokJiiVjwnvWKgufgiYiIjBATPBERkRFigiciIjJCek3wiYmJ6NSpE7Zt2wYAePToEQIDA+Hv74/x48fjxYsX+qyeiIjoraW3BF/SxPkrVqyAv78/tm/fjlq1aiE6Olpf1RMREb3V9JbgX02c7+TkpNgWGxuLjh07AgB8fHxw7tw5fVVPRESkMblchhc5iTr9J5fL1Kr7zaPeeXl5mDRpEvr27YtPP/0UGRkZGr0Wvd0mZ2JiAhOTouFzcnJgZmYGAHB0dERKSoq+qiciItJYXm4S7lxpoNOYdRtdg1klN5X7lHTU+4cffoC9vT2WLl2KnTt34rffflMMktVhsPvg5XK5WvvFx8fruSUli4uLM2h5XbfBSif12+ogxttV/s0Y2vdDxeuD8tAG/i4YRz8as5KWiz1+/DjGjRsHAOjfv7/GMcs0wVtaWiI3NxcWFhZITk4ucvheGQ8PD5ibm2tX8fZrGhfx9vZW/Hz1zC6tygPARY0jFI1xU8vyN85rVx4Ajl28pV0MA/eDtn0AGL4fDN0HgOH7wdB9ABi+H4zhb1JpSaVSgw389Kmko94PHjzAqVOnsHjxYlSpUgUzZ86EnZ2d2jHL9Da51q1bIyYmBgBw5MgRtG3btiyrJyIiqjDkcjnq1KmDrVu3ol69eli7dq1G5fU2gi9p4vwlS5YgJCQEO3fuRPXq1dG7d299VU9ERFShValSBc2aNQMAtGnTBitXrtSovN4SvLKJ8zdv3qyvKomIiIxGu3btcPr0afznP/9BQkIC6tSpo1F5LjZDRERkYMqOeoeHhyM6OhqWlpZYtGiRRjGZ4ImIiAqZWriibiPNL4IUiilE2VHvFStWlLpeJngiIqJCIpFE8J71ioKLzRARERkhJngiIiIjxARPRERkhJjgiYiIjBATPBERkRHiVfRERESFCuRypEvzdBrTztwUYpFIcL/ExESMGjUKgwcPRkBAAMaNG4e0tDQAQHp6Oho3boy5c+eqXS8TPBERUaF0aR7WX72r05hDPWvBwcJM5T4lLRf7+j3wU6dORb9+/TSql4foiYiIDOzVcrElrbJ6584dZGZmwsvLS6OYHMETEREZWEnLxb4SFRWFgIAAjWNyBE9ERFROvXjxAnFxcWjZsqXGZZngiYiIyqmLFy9qfGj+FSZ4IiKicurq1auoX79+qcryHDwREZGBlbRc7MqVK5GSkgIXF5dSxWSCJyIiKmRnboqhnrV0HlOIsuViZ8yYUep6meCJiIgKiUUiwXvWKwqegyciIjJCTPBERERGiAmeiIjICDHBExERGSEmeCIiIiPEq+iJiIgKyQoKkJSapdOYro7WkIiFx9NvLhd78eJFLFu2DCYmJrC0tERERAQqV66sdr1M8ERERIWSUrPgvvBHnca8HtILblVtVe5T0nKxCxYswJIlS1C3bl1ERkZi586dGDZsmNr18hA9ERGRgZW0XKy9vT3S09MBABkZGbC3t9coJkfwREREBlbScrGhoaEICAiAra0tKleujEmTJmkUkyN4IiKicmju3LlYtWoVYmJi4O3tje3bt2tUngmeiIioHLp58ya8vb0BAK1bt0Z8fLxG5ZngiYiIyqEqVarg9u3bAF4uG1urlmaL4PAcPBERkYGVtFzs7NmzMX36dJiamqJy5cqYP3++RjGZ4ImIiAq5OlrjekgvnccUomy52B07dpS63jJN8LGxsRg/fjzq1asHAHBzc9NqrVsiIiJdkojFgvesVxRlPoJv3rw5VqxYUdbVEhERvVV4kR0REZERKvMR/O3btzFixAhkZGRgzJgx+PDDD1Xur+ltAboSFxdn0PK6boOVTurX/LCVod9HQ5d/M4b2/VDx+qA8tIG/C8bRj6SZMk3wtWvXxpgxY9CtWzfcu3cPgwYNwpEjR2BmZqa0jIeHB8zNzbWrePs1jYu8uvcQAK6e2aVVeQC4qHGEojFualn+xnntygPAsYu3tIth4H7Qtg8Aw/eDofsAMHw/GLoPAMP3gzH8TSotqVRqsIFfRVOmh+idnZ3RvXt3iEQiuLi4oEqVKkhOTi7LJhAREb0VynQEv3//fqSkpGDIkCFISUlBamoqnJ2dy7IJREREShXIC5CZm6rTmDYWjhCLNF8uNikpCWFhYRCJRKhduzZmzZpVbL56Vco0wfv6+mLy5Mn45ZdfkJeXh1mzZqk8PE9ERFSWMnNTsTduqU5j9vGehMqVqqrcp6TlYpcsWYJhw4ahffv2WL16NQ4dOoSePXuqXW+ZJnhra2tERkaWZZVERETl3qvlYtevX6/YdvfuXXh5eQEA2rZti+3bt2uU4HmbHBERkYGZmJjAwsKiyDY3NzecPHkSAHD69Gk8efJEo5hM8EREROVQcHAwDh06hEGDBkEul0Mul2tUnnPRExERlUPVqlXD2rVrAbwcwT9+/Fij8hzBExERlUMrVqzAiRMnAAB79uyBr6+vRuU5giciIjKwkpaLnTx5MubOnYuVK1figw8+QIcOHTSKyQRPRERUyMbCEX28J+k8phBly8VGR0eXul4meCIiokJikVjwnvWKgufgiYiIjBATPBERkRFigiciIjJCTPBERERGiAmeiIjICPEqeiIiokJymQzSO0k6jWle1xUiiURwv4iICMTFxSE/Px/Dhw+Hp6cngoKCIJPJULVqVSxevFijFViZ4ImIiApJ7yThapMGOo3peekaLOq5qdzn/PnzuHXrFnbu3Im0tDT06dMHrVq1gr+/P7p164Zly5YhOjoa/v7+atfLQ/REREQG1qxZM3z99dcAAFtbW+Tk5CA2NhYdO3YEAPj4+ODcuXMaxWSCJyIiMjCJRAJLS0sAL2eva9euHXJychSH5B0dHZGSkqJRTCZ4IiKicuLYsWOIjo5GWFhYke2aLhULMMETERGVC6dPn0ZkZCTWr18PGxsbWFpaIjc3FwCQnJwMJycnjeIxwRMRERlYZmYmIiIisHbtWtjZ2QEAWrdujZiYGADAkSNH0LZtW41i8ip6IiIiAzt48CDS0tIwYcIExbaFCxdi+vTp2LlzJ6pXr47evXtrFJMJnoiIqJB5XVd4Xrqm85hC+vfvj/79+xfbvnnz5lLXywRPRERUSCSRCN6zXlHwHDwREZERYoInIiIyQkzwRERERogJnoiIyAgxwRMRERkhXkVPRERUqEBWgKykZJ3GtHZ1hlgiPJ5+c7nYLl26ICoqCosWLcKFCxdgZWWlUb1M8ERERIWykpLxk/tEncbscX0ZbN2qqdynpOVis7OzkZqaqvEUta8wwRMRERlYs2bN4OXlBeCf5WI7duwIGxsbHDhwoFQxeQ6eiIjIwEpaLtbGxkarmGU+gp8/fz6uXLkCkUiE0NBQxTcWIiKit92r5WI3bdqkdawyTfAXLlzA3bt3sXPnTiQlJSE0NBQ7d+4syyYQERGVS6+Wi92wYYPWo3egjA/Rnzt3Dp06dQIAuLq6IiMjA1lZWWXZBCIionKnpOVitVWmI/gnT56gYcOGiscODg5ISUmBtbV1sX3lcjkA4MWLF1rXW83KVOMyUqlU8bOpyFKr8gCAd1RfQSkUw6SarVblC6Bd/QBggQKtYhi8H7TsA8Dw/WDoPgAM3w+G7gPA8P1gDH+TSutVTniVI4xFScvFtmjRArGxsUhJScHQoUPRuHFjBAUFqR1TJC/Dd2nGjBlo3769YhQ/cOBAzJ8/H3Xq1Cm2b2ZmJhITE8uqaUREVIG4ubnp5DD2mwx5H7yulekI3snJCU+ePFE8fvz4MapWrVrivlZWVnBzc4OpqSlEIlFZNZGIiMoxuVyOvLw8jSd9UZdYIha8Z72iKNME/+GHH2LlypUYMGAAEhIS4OTkVOLheQAQi8V6+XZGREQVm4WFhaGbUCGUaYJv2rQpGjZsiAEDBkAkEmHmzJllWT0REdFbo0zPwRMREVHZ4Ex2RERERogJnoiIyAgxwRMRERmhty7BP3/+HHfv3sXdu3eRnZ2ts7jPnj1Te9+SLnv4+++/S1Xv06dPS1XulXPnzpW6bH5+Ph48eID8/Hyt2qDta9BWaS9DkcvlePr0KVJTU3XcIiIi7b01F9ldvXoV4eHhePbsGezt7SGXy/H48WM4OzsjLCwM77//vlbxBw0ahKioKJX7HD16FPPnz0dOTg7at2+PGTNmKG4TVKf8iRMnsGDBAlSrVg2hoaGYPHkyZDIZcnJyMHPmTLRv315l+X379hV5LJfL8c0332DUqFEAgN69e6ssP2/ePEyfPh0AcPbsWUybNg1VqlRBamoqZs+ejbZt26osDwAnT57EL7/8gjlz5uDcuXMIDQ2FlZUVsrOzERYWhg4dOqgs37RpU/Tp0wejRo2Co6OjYH1vOnPmDMLDw+Hg4IDg4GDMnj0bjx8/hpWVFebMmYPmzZsLxvjzzz+xaNEiPHjwAPfv31dMu9ywYUNMnToVzs7OKsvn5eVh9+7dOHv2LFJSUgC8nCOibdu26NOnDyQSicav65UlS5Zg8uTJgvulpqZi06ZNyMjIQI8ePdCyZUvFc3PmzEFYWJjK8mlpadi1axecnZ3Rq1cvrF27Fr///jvq1KmDYcOGwcHBQeO2BwYGYuvWrWrte/LkScXnPT09HStXrkRiYiLc3NwwevRoterPzMzEb7/9Bh8fHzx79gyRkZFISkpS+zWEhYWhX79+8PT0VKvNJdW/Y8cO2Nvb46OPPsJ3332HhIQE1KpVC4GBgUpvIX5dQUEBDh06hDNnziA1NRVyuRw1atSAj4+P4N8DoHx8Fkl/3pr14OfPn4/w8HC4uroW2Z6QkIA5c+bgu+++E4yhap/kZOGZj9atW4e9e/fC1tYWu3btwpAhQxSLCqjzPeubb77B5s2b8fDhQ4wYMQJr1qxB/fr18eTJE4wYMULwF3r16tWws7Mrsp9UKsX9+/cF6waAmzdvFokVFRWFmjVrIiUlBWPGjFErwa9YsQJr164tFiMtLQ3Dhw8XTPANGzZE165dMWnSJFSrVg0fffQRmjRpAhMT9T7Kq1evxrfffouMjAwEBgZiy5YtqF+/Ph48eIApU6Zg+/btgjFmzpyJ8PBw1KxZE3fu3MHWrVsxc+ZMnDp1CpMnTxZMUkFBQXBxccHnn38OR0dHyOVyJCcnIyYmBlOnTkVERITK8jk5OUqfu3z5smD7AWDKlCno2LEjPDw8sHr1asTFxWH06NEAgNu3bwuWDwoKQqNGjRAXF4cjR46gTp06GD16NP744w8EBQVhw4YNnxZ5+wAADB9JREFUKsvXr18fTk5OMDU1VXz2U1JS4OvrC5FIhF9++UVl+Y0bNyo+x3PnzsX7778Pf39/xMbGIjQ0FJGRkYKvYdy4cejevTsAYPbs2XjvvfcwZswYJCQkIDg4GOvXr1dZ/vLly8jPz8f69esREBCg1pfD102ZMgVNmjTBnTt34O/vj6ZNm6JHjx64evUqQkNDsWLFCsEYs2bNQrVq1TBw4ECcOXMGcrkcjRo1wp49e3D+/HkEBwerLF8ePoukP29NgpfL5cWSO/AyYchkMrVibNmyBa1atYKTk1Ox59Q5TC2RSBSLCPTv3x+Ojo4YMmQIIiMj1Zqtz8zMDNWrV0f16tXh5OSE+vXrAwCqVKkCc3NzwfI//fQT1qxZg5s3byIkJAQ1atTA6dOnMWbMGMGyAIq0sXLlyqhZsyYAoGrVqmon2Pz8fMUMVDY2Nnj33XcBAHZ2dmp9yRGJRGjWrBm2bNmCq1evYteuXZgxYwasrKzg6OiIdevWqSxvamoKJycnODk5wdbWVvEe1qhRQ+3RyosXLxSvvXbt2oovPu3atcPKlSsFy6ekpGD58uVFtrm4uKBZs2YICAgQLN+sWbNin0GRSAS5XK726YK8vDx88sknAAA/Pz9MmTIFq1atwpgxY9TqB6lUqti3a9euWL16NQDAy8sLMTExguXXr1+PdevWISAgAH5+fgBe/k6UZnXJJ0+eYOnSpQBeLmJ16NAhtcplZWWhX79+AF7OqvkqhqenJ/bv3y9YvnLlypg/fz7+/PNPREVFITw8HF5eXqhfvz4cHBzQrVs3leWzs7MxfPhwAEC3bt0Uc4y3adMGgwYNUus1/Pnnn5gzZw6Al+/94MGDMXr0aLRp00bx2lQpD59F0p+3JsE3atQII0aMQKdOnRSH3p48eYKYmBi1v3mvXr1acZjazMysyHOxsbGC5Zs2bYrhw4fj66+/hoWFBTp16gRzc3MMHjwY6enpguUdHR2xceNGDBkyBDt27ADw8tz9pk2b8M477wiWNzc3x5dffok7d+5gzpw5aNKkCQoK1F8049atWxg/fjzkcjnu3r2LQ4cOoVu3bti0aZPasw4OGTIEvXv3xocffgg7OzuMGjUKTZo0QWxsrFp/kF5PPp6enorDo48fP1YcYlSlcuXKWL58OdLS0uDi4oKwsDC0bdsWly9fVvuQv5ubGyZOnAgvLy+cPn0aLVq0AACEhobivffeEywvEolw5MgR+Pj4wNT05aIjL168QExMTLHPVUmCgoKQmpqKL7/8sthzgYGBar0GExMTxMTEoEuXLhCLxVi8eDGmTp2KGTNm4Pnz54LlX11/UaNGDcVpGwC4ceMG8vLyBMu3bdsWLVq0QGRkJPbv34+QkBCNpqROS0vDyZMnAbz84nvjxg3Ur18f9+7dUzmqfJ2Liwvmz5+Pnj17okWLFjh06BCaNWuGU6dOKZ1C+3Wv2lunTh3MnDkTeXl5uHjxIq5evYo///xTMMHn5+fj7t27ePr0KTIyMnD58mU0btwYSUlJar2HwMvfhzNnzsDT0xMnTpxQzPD26r1R5zXExMTA19fXYJ9F0p+35hw8AFy8eBHnzp1TzIfv9P/27j2kqf6PA/jbJ2/M7OLlqad/LKIsrKwFmkhqWiKFpJWakVGJklBJBXNBpaGkhYQXIg0iZJiXhNSmhWV3YmoXNIvMUBNCpVampnNtO78/HtqvPZaaplvz/fpv5+xzzueMMz8753z9fv7+G97e3li1atWotzEwMAAbGxv89Zfh+MQXL14YdMr7mZqaGnh4eBj8Mevr60NlZSXCw8OHjVWpVLh9+7b+tuK3/dbV1SEyMnJUV/HfKy0txb1794b8gv+Z2tpag9cuLi6YM2cOrl27Bn9//1HPDd3d3Y1Hjx7h3bt3EAQBTk5O8Pb2HvHZNQCUlJRg27Zto9rPj/T39+Pq1auYPXs2Nm7ciPLycjx9+hQuLi6IiIiASDRyly5BEFBdXY22tjYsXrwYPj4+AP4tbq6uriMWqs7OTmRmZqK2tlZfjOzs7ODl5YX9+/f/8A7Rf5WWliIwMHBIvrm5ufqrwuF0dHQgMzMTSUlJBtN+lpeX48KFC5DL5cPGP3v2DHl5ecjIyNAvu3XrFrKzs5GSkvJLz6VbW1uRlpaG1tZWVFVVoaenBzNmDN+p7OjRowavN2/ejDVr1uDgwYMIDg7Ghg0bRtyvRqNBcXEx7ty5Y3Au+vj4ICQkZMQiHx8fj8zMzB+uG80x1NXVIS0tDQ4ODpBKpUhJSUFTUxOcnZ1x8uRJrFy5csRjaGlpQXp6Ot6+fQtXV1dIJBLMnTsX2dnZ8PX1xYoVK4aN/3Yu1tXVYWBgAIIg6M/FuLg4/PPPyHOyl5WVYf369UO+/+fOndM/9iEjEYjIZERFRRk13pg5dHZ2GnX/v3Mbxo4f7TaqqqoEPz8/wcPDQ5BIJEJvb+8vxd+8eVPw8/MTPD09xxRPE2vK3KInMhXjHaw53nhTyMHY8aaQgykcw/cDf0tKSn554G9ubu64Bg7TxGKBJ5pk4x2sOd54U8jB2PGmkIMpHMP3A3/Dw8Ph4ODwSwN/xztwmCaYsW8hEE01TU1NQlRUlDA4ODhk3c6dOyc83hRyMHa8KeRgCsdw+vRpITY2VhgYGNAvu3//vhAcHCysXbt2wuNpYrHAExlBf3+/oNVqhyxvbGyclHhTyMHY8aaQgykcg0KhEHQ6ncGy3t5eoaioaFLiaeJMqVH0REREU8WUm4ueiIhoKmCBJyIiMkMs8ESToKura8yd+2pqahAZGfnb30tE5o0FnmgS1NTUQKFQGDsNIppC+H/wRGOg0+mQmJiIlpYWqNVquLu76+dkv3LlCgoKCmBlZQVPT0+EhYUhIyMDgiBg1qxZ6Ovrg0aj0c/f7e/vj0uXLsHZ2RkJCQno7u7Gly9fEBQUhNjY2J/m0NbWhuPHj0On08HGxgapqakG6x8/foz09HRYW1tDpVIhMTERbm5uqKysxMWLFyESiSAIAlJTU+Hg4IAjR46gp6cHGo0G69atQ1xc3MR9gEQ04Vjgicbg8+fPcHV1RXJyMgAgKCgIr1+/hp2dHXJyclBRUQFbW1tIpVJ8/foVoaGh0Gg02LNnz087zimVSgQEBCAkJARqtRpeXl7YsWPHT3NITExEdHQ0/Pz8UFFRgevXr2Pp0qX69d3d3UhKSsKSJUsgl8uRm5uLrKws5OTkIDk5Ge7u7qivr0dXVxdevXoFjUaDy5cvQ6fTQSaTQafTDem5QER/DhZ4ojGYMWMGOjo6EBERAWtra7x//x6fPn1CS0sL3Nzc9A1c0tLSRr1NR0dHPHnyBIWFhbCyssLg4OCwXQYbGhr0nRA3bdoEwLCroZOTE86cOYPBwUH09vZi5syZAIAtW7ZAKpUiMDAQgYGBcHd3h1KpRFZWFuLj4+Hr64uwsDAWd6I/HL/BRGNQUVGB58+fIz8/HzKZDC4uLgD+3wt7OP+dwlOtVgMA8vLyoFarUVBQAJlMNqrufMO1+5VIJIiJiUF+fr5BO8/du3dDJpNh/vz5OHHiBAoLC+Ho6IiysjLs2rULb968wdatW6FSqUbcPxGZLhZ4ojFQKpVYsGABLC0t0djYiPb2dqjVaixfvhwNDQ3o6+sD8G9L0cbGRlhYWOjnBp8+fTo6OzsBAM3Nzfj48aN+mwsXLoSFhQWqq6uhUqn0xf9HxGIxHjx4AACorKzE2bNnDdZ/+PABixYtglarxY0bN6BWq6HVapGeng57e3uEhobiwIEDqK+vx8OHD3H37l2sXr0aEokEIpEISqXyt39uRDR5OJMd0Rh0dHRg3759sLe3h1gshq2tLcrKylBcXIyqqioUFRXB0tISYrEYEokECoUChw4dQkREBLZv346YmBjY29tj2bJlUCgUyM7ORn9/Pw4fPgxnZ2cEBASgubkZL1++REJCAjIyMlBQUGCQw7dBdgBgaWmJU6dOob29Xf/e8+fPQy6XY968eYiOjoZEIsHevXuh1Wohl8v1/cqPHTsGkUgEqVQKrVaLadOmQSwWG1z1E9GfhwWeiIjIDPEWPRERkRligSciIjJDLPBERERmiAWeiIjIDLHAExERmSEWeCIiIjPEAk9ERGSGWOCJiIjM0P8AoiDoxUShLGIAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "nbModel = create_model('nb', verbose=True)\n", + "plot_model(nbModel, plot='learning')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 376, + "referenced_widgets": [ + "0c7a96b7437d4f439ee58a7348112c07", + "3957ae44c0b64b01b4420040a5a107da", + "dac75abfd15a434bb8a399900709f4c6", + "d5fa15c649734224a62b0416f1589e4c", + "bd048ed3009f474a99c795838ae4e809", + "3adfd8382a004ba493cf96f2228d28ed" + ] + }, + "id": "rF9WUkQlH62o", + "outputId": "cdba6326-2d91-4346-929b-95e215a9f9ff" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAFnCAYAAADQYfGFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3xUVf74/9e9d0pmMukkQXpZOlJdxAU/IB1ZRV1QVBDR1d21oK5+FLIgrKjgiq6CZdWvq1gQVkV/6iqWjyiyFAVcBBSREmpII2Uy/ZbfH3dmSMgkEEhIO8/HI49k7r1z77k3yZz36ZJhGAaCIAiCIDQrcn0nQBAEQRCEc08EAIIgCILQDIkAQBAEQRCaIREACIIgCEIzJAIAQRAEQWiGRAAgCIIgCM2QCAAEIYZu3bpx7Nixc37dzz//nNmzZ9fqOb/++muuueYaxo4dy8iRI/nTn/7E3r17a/Uap+PQoUOMHj2aiRMnnvW5PvzwQ6666irGjx/PmDFjmDZtGuvXr6+FVJ6+2vhddevWjaysrArbNm3axLRp06I/9+7dm3HjxjFu3DjGjBnD3LlzCQaDZ3VdQQDAEAShkq5duxo5OTn1nYyztmbNGmPIkCHG5s2bDcMwDF3XjRUrVhiDBg0yCgoKzmla3nvvPePaa6896/OsWLHCGDNmjLF3797ots8//9zo16+fsXv37rM+/7nUtWtXY9SoUcbOnTuj2zZu3GhMnTo1+vOoUaOi+/x+vzF16lTj5ZdfPudpFZoeUQMgCDUQDAZ5+OGHGTt2LCNGjOAf//hHdN/333/PVVddxbhx47j00kujJdLDhw8zdOhQHn30UaZOnQqYJb/333+fK664gqFDh/Lqq68CsGrVKm688UYAZs2axZIlS5gxYwaXXHIJM2bMwOfzAfDNN98wbNgwxo8fz8qVKxkwYACHDx+ulN6lS5dy5513MnDgQAAkSeKaa67hsccew263V7herOsvXLiQyy67jGeeeYZBgwahqmr02Ntuu4233nqr2mdS/tksXryYH3/8kcsvvxyATz75hN/+9reMGzeOG264gYMHD0bTPGfOHCZNmhR9LhG6rrNkyRLmz59Pp06dottHjRrFN998Q5cuXQAoKCjg5ptvZty4cYwYMYJXXnkleuzJtTuR1x6Ph9tvv53x48czcuRI5syZQygUqnJ7+WdV3fVGjBjBihUrmDRpEkOHDmXRokUV7unPf/4zjz76aKVnFovdbmfAgAEcOnTotI4XhOqIAEAQauCll15iz549fPjhh3z00Ud8+umnrFmzBoAHH3yQm2++mdWrV3Prrbcyb9686PuKi4vp0aMHb7zxRnTbnj17eP/993nuued48skn0TSt0vVWr17N3//+dz7//HOOHz/O559/jqZpzJo1i4ceeohPPvmE7OzsaGBQntfrZefOnQwfPrzSvuHDh+NyuU55vxs2bOCdd97hjjvuoEWLFmzevBkAn8/Hxo0bGTt2bLXPJKJ///78+c9/pl+/fnzwwQccPXqUuXPn8uyzz7J69WqGDx/Ogw8+GD3+66+/5sUXX6wQnADs27cPt9vNRRddVCmt5e/n+eefp02bNqxevZply5bxxBNPkJOTU+29vv/++yQmJvLJJ5/w6aefoihK9HcUa3t5p7red999x8qVK3n33Xd54403KgQg48ePxzAMVq9eXW36AAoLC1mzZg2XXHLJKY8VhFMRAYAg1MCaNWu47rrrsNlsOJ1OJk6cyGeffQaYGcj48eMBGDhwYIVSWigUYvTo0RXOFWkL79WrF4FAgMLCwkrXGzZsGMnJyVgsFrp27UpOTg7Z2dkEg0GGDRsGwLRp09B1vdJ7S0tLMQyDtLS0M77fiy66CLvdDsDYsWP58ssvAbMGok+fPqSmplb7TKryn//8hwsvvJD27dsDMHnyZDZt2hStYejbty+pqamV3ldSUkJKSkqFbZFal0suuYQFCxYAMGfOHObOnQtA27ZtSU9Pj1lDUl5qairff/8969atQ9d1/vrXv9KjR48qt5d3qutddtllKIpCZmYmaWlplYKRrKwsFi9eTCAQqJSunJwcxo0bx9ixYxk+fDht27ZlwIAB1d6LIJwOS30nQBAaE7fbzcKFC3nyyScBs0mgT58+gNkx7bXXXsPj8aDrOka5ZTYURalU4k5ISIjuA2Jm4pFjIsdpmkZJSQmJiYnR7RkZGTHTmpSUhCzL5Obm0rp16zO5XZKSkqI/jx07ljvuuIOsrCy++OILLr30UqD6Z1KVoqKiCveQkJCAYRgUFRVVum55qampFBYWous6smyWX1atWgXAc889F21G2L59e7QULssy+fn5MZ9veePHj6ekpISnn36affv2cfnl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WsjOzj4ubcXFxbS2thKNRvnkk08SYw+GDh3K448/zieffEJtbS133303EN+9TlEUsrOzmT59OmVlZZSWlnLllVcyYMCAUz6LEKlOAgAh0ozRaARg8+bNvPnmm7z55pvYbLYOG7UcS9O0DsedDQs6tlm//XosFkNRlE7vcSKdfdaXvvQl/vjHP7JhwwZWrlzJqlWrePLJJzu8buHChYmuh3Xr1vHCCy90mrb2eyqKQiwW63DeZDJRVFTE8uXLj0vXsmXL2LVrF++//z5lZWU8/fTTnHPOOV16JiFSlXQBCJGm6uvrKS4uxmazcfDgQf7xj390qZm+q4YPH87f//53IL6b3ulavnw5R44cYcaMGfzkJz9J7H6oKArhcBiAuro6zj77bKLRKKtXrz7lc1xwwQV8+OGHQHyw5A033MDQoUNpbGyksrISgP/7v/9jxYoVVFVV8eKLLzJixAhuuukmSktLqaioOO3nESJVSAuAEGlq6tSpvPDCC1x33XWcffbZ3H333TzzzDM9tv3qwoULeeihh3C73Xz5y19GURRUtft1iuHDh7NgwQLsdjuxWIwFCxYk0r948WLKy8u59dZbueGGGygqKuLmm29m4cKFvPjiiye85/z58/nBD37AvHnziMVifO9738NisfD444/z//7f/8NsNgPwox/9iMLCQj799FOuvvpq7HY72dnZiT3thUhnMg1QCHFaPv74Y3Jychg9ejQ7dldL30kAAABkSURBVOzg+9//PmvWrOnrZAkhukhaAIQQp8VgMCRq0+FwmB/96Ed9nSQhRDdIC4AQQgiRgWQQoBBCCJGBJAAQQgghMpAEAEIIIUQGkgBACCGEyEASAAghhBAZSAIAIYQQIgP9fw2Y5PmtX0SUAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "nbModel = create_model('nb', verbose=True)\n", + "plot_model(nbModel, plot='vc')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 376, + "referenced_widgets": [ + "ca525e1c57d541299c9b4862c1fea11d", + "1dcfa769f8254370a963327b6f74b159", + "723e82f233be473789f249ecf0703ee2", + "e31ab003321c43b49caec0a8a7dde1cd", + "4647c3143e1340ff84efd9f4b3851a2a", + "db6f2f19b0e043cc8a0f71a3f9b49095" + ] + }, + "id": "5VzE-IXfRUJy", + "outputId": "2bbc20a3-c374-4761-adff-6902a99b74b6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfUAAAFnCAYAAAC/5tBZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3hUZfrw8e9zpiSZzKRnCL1JgKUrCgiuiKEqoohSFHV91d+uva6IYEPsZV0su7KuWwBFaYoFBEFXAQER6UiHJKRO2mR6Oe8fMZOZTCBIMmk8n+vy2pwy5zznkM09T72FqqoqkiRJkiQ1e0pjF0CSJEmSpPohg7okSZIktRAyqEuSJElSCyGDuiRJkiS1EDKoS5IkSVILIYO6JEmSJLUQMqhLLdbUqVNZuHBh2P7FixczderUU35u2bJl3HLLLQD8+c9/Zt26dWHn5Obm0r1791rLcOTIEbZu3QrAmjVreOyxx86w9Gfm22+/ZfLkyYwePZrLL7+cP/3pTxw+fLhe73EmMjMzGTlyJBMmTKjztVauXMnEiRMZO3Yso0aNYvr06WzcuLEeSnnm6uPfqnv37sycOTNk3+bNm5k+fXrg5969ezNmzBjGjBnDqFGjmD17Nm63u073lc5t2sYugCRFysSJE1m6dCk33HBDyP5PPvmEiRMnntE1XnrppTqVYe3atXi9Xi688EJGjhzJyJEj63S9YN988w2zZs3ijTfe4IILLkBVVT766COmTZvGF198QXJycr3dqzbbtm0jNTWVRYsW1ek6ixcv5p///CfvvPMOXbp0ASre4V133cVHH31Et27d6qO4taqvf6utW7eyd+9efve739V4vHXr1qxatQoAl8vFbbfdxoIFC7j11lvrfG/p3CRr6lKLNXbsWPbv309mZmZgX1ZWFvv27WPs2LF8/fXXjB8/ntGjRzNx4kT27dsXdo3p06fzySefALBkyRIuu+wyxo8fz6effho4x+/38/TTTzN69GhGjBjBI488gsfjYd26dfz973/nP//5Dy+88EJIC0BJSQn33Xcfo0ePZty4cbz77ruB63Xv3p0VK1Zw9dVXM2zYMP71r3/V+Hzz5s3jnnvu4YILLgBACMHkyZN58cUXiYqKCrkfhLZAzJgxg+eff57x48fz5ptvctFFF+H1egPn3nnnnXzwwQe43W6effbZwLP97W9/CyvH9u3beeWVV9i7dy9XXXUVAF9++SVXXnklY8aM4aabbuLEiROBMs+aNYtJkyaFPZff7+evf/0rTz31VCCgA2RkZPDdd98FAnphYSH/7//9P8aMGcOIESN4//33Q95dbm5u2LbNZuOuu+5i7NixXH755cyaNQuPx3PK/cHv6nT3GzFiBB9++CGTJk1i2LBhvPDCCyHP9OCDD/Lcc8/V+O9XXVRUFOeff37I76sk/VYyqEstltFoJCMjIxCUoaJp9/LLLyc6OpoZM2YwZ84cVq9ezYgRI3jxxRdPea3S0lLmzp3LP/7xD1auXEl+fn7g2Jo1a/jxxx/57LPP+PLLL9mzZw9ffPEFI0aMYOTIkdx0003MmDEj5HqvvfYa8fHxrF69mkWLFvHBBx/w448/Bo4fOnSIFStW8Pbbb/Paa6/h8/lCPm+329mzZw/Dhw8PK+vw4cMxGo21vp9NmzaxZMkS7r77blJSUgL3dzgc/PDDD4wePZr58+dz6NAhVq5cyWeffcbq1atZv359yHUGDBjAgw8+SP/+/fn00085efIks2fP5q233mLVqlUMHz6cJ554InD+t99+y7vvvhvyhQMquiqsVitDhgwJK2vw87zzzju0a9eOVatW8e9//5tXX32VnJyc0z7rihUriIuL48svv2T16tVoNJrAO65pf7Da7rd161YWL17M0qVLWbBgQciXirFjx6KqaqA2fjoWi4X169dz2WWX1XquJJ2KDOpSizZx4kRWrlwZ2P7000+ZOHEiWq2WjRs30r9/fwAGDhx42hrSjh076NixI127dgXg6quvDhwbPXo0S5cuRafTERUVRZ8+fWqtbX377bdMmzYNgISEBEaOHMmGDRsCxyv7pnv16oXL5cJisYR8vqysDFVV69TEPmTIEKKiogLPUDl24LvvvqNv374kJSWxfv16pk2bhl6vx2AwMGHCBL766qvTXnfDhg0MGjSIjh07AnDdddexefPmQEtAv379SEpKCvtcaWkpiYmJIfsmTpzImDFjuOyyy5gzZw4As2bNYvbs2QC0b9+e1NRUsrKyTlumpKQktm/fzvfffx9oWenZs+cp9wer7X7jx49Ho9HQqlUrkpOTw75gzJw5k1deeQWXyxVWrpycHMaMGcPo0aMZPnw47du35/zzzz/ts0jS6cg+dalFGzx4MC6Xix07dqAoCg6Hg8GDBwPw3//+l+XLl+N2u3G73QghTnmd0tJSTCZTYDs+Pj7wc1FREXPmzGHv3r0IISgsLOTmm28+bbmKioqIi4sLbMfFxYXU/ivvpdFogIqm6WDx8fEoikJeXh5t27at7TXUKPgZRo8ezd13383MmTNZu3Yt48aNA8BqtfL888/z2muvAeB2u+nbt+9pr1tcXBzybCaTCVVVKS4uDrtvsKSkJCwWC36/H0WpqG8sW7YMgLfffjvQhL9r165AbVlRFAoKCsLeT3Vjx46ltLSUN954gyNHjnDVVVfx2GOPnXJ/sNruF9yKoNFowlpVevXqxYUXXsj777/PgAEDQo4F96n7fD7++9//cvPNN7N06dLTPo8knYqsqUstmqIoTJgwgc8++4zPP/+cCRMmoCgKP/30E/Pnz+edd95h9erVPPvss6e9TlxcHFarNbBdVFQU+Pn1119Hq9WycuVKVq1axaWXXlpruVJSUigpKQlsl5SUkJKScsbPFRMTQ9++fWusNf/rX//ixIkTKIoSEmDKyspOeb0ePXqg0WjYv38/33//fWCQmNls5oknnmDVqlWsWrWKdevW8Ze//OW0ZUtOTg55ttLSUhRFCauFV9epUyfMZnONsw2CPfLII4wePZrVq1ezatWqkOsGP3NpaWnI56ZMmcLHH3/MF198wZ49e1ixYsVp95/J/c7UAw88wIIFCygoKDjlORqNhilTprB79+6Q3y9J+i1kUJdavIkTJ7Ju3Tq+/vrrwKj3oqIikpOTadOmDQ6Hg+XLl2O32zlV0sI+ffpw9OhRjh07BsDy5csDxywWC+np6ej1evbv38/27dux2+0AaLXakC8DlYYPH87ixYsDZVmzZk2N/eOnc9999/G3v/2N//3vfwCoqsqiRYv497//jclkwmw2c/ToUVwuFw6Ho9Z+3dGjRzNv3jx69uwZCFyXX345H3/8MT6fD1VVefvttwP3O5WhQ4fy448/BrogPvzwQ4YOHYpWe/qGQSEEDz/8MHPmzGHnzp2B/d9//z2LFi0KNOdbLBZ69+6NEILly5fjcDgC7zs1NZX9+/cDsHTp0kCN/6233mLJkiUAtGrVinbt2iGEOOX+YKe735kym83ccMMNzJs377TnrV27FrPZHNLSIUm/hWx+l1q8jh07YjabAz8DXHLJJSxatIiMjAxatWrFzJkz2bFjB/fee2+NA5WSkpJ49NFH+cMf/kBsbCzXXXdd4Nitt97Ko48+yrJlyxg4cCCPPvoojz/+OH379uWyyy7j4YcfJjs7OyRo33///Tz11FOMGTMGRVG44447am3Wru7iiy/mtdde469//Stz5sxBo9HQq1cvFi5cSGJiIoMGDaJfv36MHj2adu3acfnll4f021dXOQsguNVi2rRpZGVlccUVV6CqKr179661ayEtLY1nn32WO++8E4/HQ7t27QL94bUZN24cer2eZ599ltLSUjweD2lpaTz22GNcccUVQMWXmbvuuouEhASmTJnC5MmTmT17NosWLeKBBx7gqaee4q9//StTpkwJNI1PmDCBxx57jPnz5yOEoF+/fkyYMIH8/Pwa93/22WeBMp3ufr/Frbfeyscffxyyr7JPHSq+lJnNZt59991avwBJ0qkImU9dkiRJkloG2fwuSZIkSS2EDOqSJEmS1ELIoC5JkiRJLYQM6pIkSZLUQjTrIZZ+vx+bzYZOpzvtwiGSJEmS1BKoqorH4yE2NjYwZTNYsw7qNpuNAwcONHYxJEmSJKlBpaenh6xyWalZB3WdTgcQWPjjXLZ792569+7d2MU4J8h33XDku2448l03nLq8a7fbzYEDBwLxr7pmHdQrm9z1en0gMcW5TL6DhiPfdcOR77rhyHfdcOr6rk/V5SwHykmSJElSC9Gsa+qSJEktgdfrrTXTXENwu92NXYRzRm3vWlGUs1ouWNbUJUmSGpHVam0SwbRr166NXYRzxpm8a7fbXWMyqNrImrokSVIj8Xq9aDQaDAZDYxcFj8dzzg84bihn8q71ej12ux2v1/ubauyypi5JktRI/H6/zMgmnZJGo/nN3TIyqEuSJDUzK/dk8tnerMYuhhRhZ7OomvyKKEmS1Iw4PT4eWPEjQkBGt9ZE6zR1ut4LL7zAnj17yM/Px+l00qFDB+Lj43nzzTdr/ewDDzzA888/T3R0dNixgoIC5s2bxzPPPHPWZdu8eTNvvPEGiqJgs9mYMGECt9xyy1lf71wgg7okSVIz8uK63RwtKgfgpXW7eWJ0vzpdb8aMGQB88MEHnDhxgkcfffSMP/v666+f8lhqamqdAjrAE088wX/+8x9atWqF0+nklltuYdy4cZjN5jpdtyWTQV2SJKmZOGKx8tK6PYHtF9ftYfrALnRODl8utK5mzJiBTqejpKSE559/noceegi73Y7T6WT27Nn07duXESNGsHLlSubMmYPZbGbPnj2cPHmSV155hfj4eO69916WLVvGyJEjmTx5MuvXr8ftdvP++++jqir33nsvTqeTSy+9lI8++oh169aFlKGkpAS73Q5AdHQ0H374IQBlZWU8/PDDlJeXYzKZeO211/D7/cyYMYOysjK8Xi+zZs2iV69ejBo1it/97ncMHTqUAQMG8MwzzyCEIDY2lhdeeIG4uLh6f3eNSQZ1SZKkJuLPK7exZMfxUx7PL3fi9PoC206vjz4vr8RsDG/+rjSpX0deGn/BWZUnPj6eOXPmcPToUa677joyMjLYtGkT8+fPZ968eSHnut1u3nvvPT744ANWrFjBzTffHDjm8/no0qULt912Gw888AA//PADOTk5dO3alVmzZrFw4cIa73/fffcxadIkLrroIoYNG8aVV15JfHw87733HsOGDeOmm27iX//6F5s2bWL//v3069ePO+64g127dvH888+zYMECMjMzeeutt+jWrRs333wzzzzzDJ06dWLhwoUsXLiQP/3pT2f1bpoqOVCunqmqH5/fi8vjaOyiSJIk1Unfvn0BSElJYfXq1UydOpVXXnmFkpKSsHMHDhwIQFpaGuXl5ac9brVaOXz4MOeffz4Al19+eY33nzZtGqtWrWLUqFFs3LiRK664gvz8fPbu3Rv47C233EJGRga7d+9m0KBBAPTp04fjxyu+HMXExNCtWzcAdu7cyezZs5k+fTqffvopFovlrN9NUyVr6vWg3FmMzVWCT/X9Ov1ABSDZ2JYYvbFxCydJUrPx0vgLTlurPmKx0uellYHaerRWw65Hxkek+R2qkmb9+9//plWrVrz88svs2rWLl156KexcjaZqwJ6qqrUeV1U1kDr0VKO8nU4nqampXHPNNVxzzTU89thjbNiwocapXkKIkPtWHg9OfBITE8N//vOfFp2qW9bUq7E6irC7Ss/oXLfXSX7ZccqcFvyqH4FAo2jQKFo0ihaH+7evBiRJknQqXZJN/HlEr8D2oyN6RSygBysuLqZDhw4ArF27Fo/HU+drdujQgd27dwPwv//9L+z4sWPHmDhxIjabDagI0vn5+bRv357evXvzww8/APDhhx+yfPly+vTpw+bNmwH4+eefA7XzYD169Ajc6/PPP2fTpk11fo6mRtbUq/H63VidVmzuUuJjWqHXhmfS8at+Su0FONxlCKEgOMW3TE85qupHCPndSZKk+vHoiN7898cjCAF/HtEwqVInTJjAo48+yqpVq7jhhhv47LPPWLp0aZ2uec0113DnnXcyffp0Lr744kCtvVKnTp24/fbbueWWW4iOjsbj8TBixAgGDhxI9+7d+fOf/8z06dOJjY3llVdeAWDmzJncdNNNqKrKE088EXbPxx9/nNmzZzN//nyioqJ49dVX6/QMTZFQa2onaSZcLlcgL219pQwstuXi9Pz6zVBViY0yEatPwOW14/G68PhdeH1uQNTahKOqfuJiUjFGJ9RL2U5n27ZtXHDB2Q2GkX4b+a4bTkt/15Vrvv/W5VlX7slECMGVv2tXb2Wx2WzExsbW2/Vqk52dzZEjR7jkkkvYvn078+bN45///GeD3b8xnem7run3o7a4J2vqp6EIgd1lxeYqRaAEgviZ1ryFUHC4rQ0S1CVJOneM79W+sYtQZyaTiX/961+89dZbQEUtWqo7GdRrIYRAcPYrNrl9Drw+D1qNrvaTJUmSzhFxcXG89957jV2MFkd29kaYQDnjgXeSJEmSVBcyqEeYEAKHJ3zOpiRJkiTVNxnUG4DP78bldTZ2MSRJkqQWTgb1BiCEBpsrfAUmSZKks5Fp2Utm0b7GLobUBMmg3kCcHluNqyxJkiT9Fl6/h81HPmPLkZV4/XVfBAYqFnq59957mTRpEhMnTmTOnDmB6VT1zWq1cskll4QtYDN58uTAYjTBNm/ezL333gtQ4zrtCxYsCFuHPtj+/fs5evQoUJEq1uk8+1bT3Nxcbr/9dm688UYmTZrEY489FrH3dLZkUG8gqurH4ZErzEmSVDe7Mr+h3FWE1VnE7qxv63w9n8/HPffcw80338ySJUsCi8pUTjWrbyaTif79+7Nx48bAvpMnT1JWVkbv3qdfTOedd975zfdbs2YNx44dAypSxdaU+/1MvfHGG0ycOJEFCxawZMkSdDod33333VlfLxLklLYgK/dkYnOVcGkXQ71fWxEKpfZCXB4HMTojUTpDi15/WJKk+md1WtidXRXId2V9Q1fz+Ziik876mhs2bKBLly6BRX6EEDzyyCMoikJWVhaPPPIIBoOBG2+8EYPBwOuvv45Wq6VVq1Y8//zzFBYWBs73+Xy8/PLLIdeo3Ne2bdvAPa+88kq+/PJLLr30UgBWrVrFFVdcwcaNG3njjTfQ6XTExcXxl7/8JaSsgwYNYvPmzWzatInnnnuOlJQUUlNTad++PV6vl0cffZS8vDzsdjv33HMPbdq04cMPPyQpKYnk5GTuv/9+Vq5cidVqZebMmXg8HoQQzJ07FyEEM2bMoH379vzyyy/07NmTuXPnhty/rKwsJFlNcL74Z599lp07d6LRaHj66adJT0/npZde4qeffsLn83HDDTdw9dVXM336dDp16oROp+PBBx9k5syZlJaW4vP5mDVrFj169Djrf0uQQT3A6fHxwIofUVUfa//Yj2htJBoxVJye8l+XlxXoNYbA/PWK+fA1Lzmr1xlqXK5WkqSWZevRLzhWuPOUx52ecnx+b2Db5/ey4qfXiNadOnFUp5S+XNh53CmPHzlyhJ49e4bsC67N7tu3j/Xr15OYmMiYMWN4//33ad26Nc888wwrV66krKyMiy++mLvuuos9e/ZQUFDA9u3bw/YFB/Xhw4fz4osv4na70ev1rFq1ipdeeol9+/bxyiuv0L59e/785z/z/fff17jy2quvvsrLL79Mjx49uP3222nfvj2lpaUMGzaMa665hszMTO677z6WLVvGJZdcwujRowMZ56Cixj1p0iTGjRvHqlWrePPNN7nnnnvYs2cPr7/+OsnJyfz+97+nrKwsJN/67bffzp133smyZcsYOnQo48ePp2PHjmzcuJHc3Fw++ugjtm7dyhdffEFpaSkHDx7kww8/xG63c9VVV5GRkQHAeeedx80338xbb73FJZdcwnXXXcehQ4eYO3cu77///in/rc6EDOq/enHdbo4WVXwDe3tDNg9eGrkVmypXpHP7HLh9tadoVZ2FxOjjSDCkynXkJUmqV0IIfD7fKY+3b9+exMRESkpKEELQunVroKLWvHXrVq6//nruvvturFYro0ePZsCAARgMhrB9waKiohg0aBDff/893bt3x+/306lTJ/Ly8pg1axY+n4/MzEwGDx5cY1DPzs4O1GgvvPBCXC4XcXFx7Nq1i8WLF6MoSo3pYSvt3r2bhx56KPAclV0NHTp0IDU1FQCz2YzVag0J6v379+frr79mw4YN/O9//2PSpEm8/vrr7Nu3L5AK9sILL+TCCy/k/fff58ILLwTAYDBw3nnnBdLB9upVkZRn+/btFBUV8emnnwLg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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "rfModel = create_model('rf', verbose=False)\n", + "plot_model(rfModel, plot='feature')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 478, + "referenced_widgets": [ + "a5c08029facf463a9683e5f23797fbcc", + "8257770e8802452db5e40e16c40c80da", + "b4c98f4b9fc646ebbf1e1c0d0ee9d3fc" + ] + }, + "id": "0tiJcVv5RooV", + "outputId": "196ef4da-4da5-44de-ff7a-06020022eb41" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAugAAAHNCAYAAABM046IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde1xUdf7H8feAgCCIIWZ4AUwSSTHBS2mKG5pbm/c2f1mWbuVlLU23Vskybc3U0ry15rW0Ns0s79lWZmZmaatWSFgLiqCR9ws4w0U4vz9cJ8kbDMPMkXk9Hw8fMud855zPmY/Iew7fc8ZiGIYhAAAAAKbg5e4CAAAAAPyGgA4AAACYCAEdAAAAMBECOgAAAGAiBHQAAADARAjoAAAAgIkQ0AEAAAATIaADAAAAJkJABwAAAEyEgA4ADkpKSlJ0dPRl/8yePdvdJVaIFStWKDo6Wunp6e4upVLatm3bRf+WGjdurDZt2uhvf/ub9u3bZx9LL4DKqYq7CwCAa1lISIjWrFlzyXXVqlVz+v5GjRqlevXqaejQoU7fdmU0c+ZM/fLLL5o0aZK7SymzqVOn6tZbb5UkFRYWKj09Xa+++qruv/9+rVmzRrVr13Z423379lWvXr3Uq1cvZ5ULwIk4gw4A5eDl5aVatWpd8k9AQIDT97dr1y6nb7Myu5Zfr+rVq9v/LdWpU0ft27fXzJkzdfLkSa1YscLh7Z49e1a7d+92YqUAnI2ADgAusHr1at13332Kj49X69atNWLECB06dKjEmDVr1qhnz56KjY1VixYt1KdPH23fvt2+Pjo6Wvv379drr72m6OhoHThwQLNmzVJ0dLTy8/NLbCs6OlpTpkyR9NuUiY8++khdu3ZVmzZt7OM2b96svn37qnXr1oqPj9eAAQPKPF3iwIEDio6O1qpVqzRq1Ci1bNlSrVu31uTJk5Wfn6/nn39erVu3Vps2bfTyyy/bn3e+rk2bNunJJ59UfHy8WrRooWeeeUZWq9U+rqCgQFOnTlViYqKaNm2qtm3bKikpSceOHbOPSUpKUvfu3bV06VL7vhMTE7V161atXLlS0dHR2rZtm/2Y+/Tpo+bNmysuLk49e/bUJ598ctHrt2jRIs2aNUvt27dXXFycHn74YWVkZJQYt3LlSnXt2lXNmjVTp06dNGPGDJ09e9a+ft++fRo6dKgSEhLUrFkz9erVSxs3bizT63uh+vXrq1q1avrll18uO+bzzz9X79691axZMzVv3lx9+vTRV199Jelcr5o0aSKbzaZnnnlG0dHRDtcCoOIQ0AGggq1evVojR45U8+bNtWLFCs2ePVt79+5V//79VVBQIEn69ttv9fe//10dOnTQ+vXrtXz5ckVGRmrQoEH2IH8+2D3yyCPasmWLwsLCylTHnDlz9OSTT2rlypWSpO3bt2vQoEG6/vrrtWTJEi1evFgFBQXq27evjh8/XubjnDNnjuLi4rRixQrdd999euONN9S/f3/deOONWr58ue69914tXLiwxJsOSZowYYI6dOiglStXasyYMVq3bp0mT55sX//cc89pyZIlGjZsmNavX6+JEydq27ZtGjBggAzDsI87ceKENmzYoLfffluDBg3S+++/r5CQEN19993asmWL4uLilJmZqSFDhujGG2/UqlWrtHr1arVr107Dhw/Xjz/+WKKud999VzabTYsXL9brr7+un376SePHj7evX7t2rZ599lnde++9Wrt2rZKSkrRo0SK9+uqr9nr69u2rrKwsvfrqq1q5cqVatmypxx9/XN98802ZX19JOnr0qM6cOXPZ3m/dulV//etf1bhxY73//vtatmyZateurYEDByolJUVhYWF65513JEmjR4/Wli1bHKoDQMUioANABZszZ45atWqlZ599VpGRkWrZsqUmTZqkvXv36uOPP5YkNWnSROvWrdMTTzyh+vXr68Ybb9Rjjz0mq9WqnTt3SpJCQ0MlSQEBAapVq5a8vb3LVEfbtm3VqVMn3XDDDZKkefPmqW7dunrllVcUFRWl2NhYTZ06Vbm5uXrvvffKfJxNmjTR/fffr/DwcD322GOSpKpVq6p///6KiIjQo48+KkkXBeG2bduqV69eioiIUI8ePXT33Xdr3bp1MgxDhw4d0po1azR48GD16NFD4eHh6tChg5KSkpSSkqIdO3bYt3Po0CGNGjVK0dHRqlGjhkJCQuTl5aWqVauqVq1a8vX1Ve3atbV69Wp7L8LDw/XEE0+oqKhIW7duLVFXQECARo4cqRtvvFG33XabEhMTlZycbF8/b948/eEPf7AfX6dOnTRy5EgVFRVJkpYvX65jx45p5syZatmypRo2bKjRo0crOjpa8+bNK/Pre+DAASUlJSkwMPCy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gH7s2DE1adJEkrR161bdddddkqTIyEgdOXLEedUBAAAAHsahgB4UFKTjx48rNzdX3377rdq2bSvp3HQXX19fpxYIAAAAeJIqjjypU6dO+stf/iIvLy9FRESoadOmys/P14QJE3Trrbc6u0YAAADAYzgU0JOSkrRo0SLl5OTowQcflCQVFxfrxIkTmjRpklMLBAAAADyJQwHd19dXAwcOLLHM399fb7zxhlOKAgAAADyVw/dB/+CDD/TQQw+pY8eOkqSCggLNmzfPaYUBAAAAnsihgP72229rwoQJatSokf2uLSdOnNCSJUsI6QAAAKcC4JYAACAASURBVEA5OBTQ//Wvf2n27NkaM2aMLBaLJKl27dqaNWsWnyYKAAAAlINDAf3XX3+95N1amjRpwn3QAQAAgHJwKKBff/31yszMvGj57t27FRwcXO6iAAAAAE/lUEDv1KmThg8frk2bNskwDKWkpGjZsmUaOnSo7rnnHmfXCAAAAHgMh26zOGLECI0ZM0ZDhgxRcXGx7r33XlWpUkW9e/fWU0895ewaAQAAAI/h8H3QJ0+erNGjR2v//v3y8/NTeHi4/P39nV0fAAAA4FEcmuLSq1cvSVJwcLCaNWum6OhowjkAAADgBA4F9Pz8fP3888/OrgUAAADweA5Ncendu7dGjBihdu3aqX79+vLx8bGvs1gs6t27t9MKBAAAADyJQwF94sSJkqT09PSL1hHQAQAAAMc5FND37Nnj7DoAAAAAyME56AAAAAAqhkNn0Bs3biyLxXLZ9ampqQ4XBAAAXM8wDH2597B+OW1VneoBan/j9Vf8WQ+g4jgU0MeOHVvim7aoqEj79u3TF198oSFDhjitOE+RmJioQ4cOycvr3C80fH19FR0dreHDh6t169Zurg4AUNmtTM7UqLU7lX4sx76sYc0gTe4ar56x4W6sDPBMDgX0Pn36XHJ5586dtWzZMvXs2bNcRXmi5557zv662mw2LV26VAMHDtTatWtVv359N1cHAKisViZnqvfizSo2jBLL04/lqPfizXqvXwIhHXAxhwL65bRq1Yoz6E7g7++vRx55RO+++642b96sBx980N0lXdIp+epXW5GqGoXuLgUulpdXRP89FL2vXAzD0FNrdlwUzs8rNgwlrdupHk3rM90FcCGnBvTPPvtMVao4dZMeraioSN7e3qUebxiGrFZr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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "etModel = create_model('et', verbose=False)\n", + "plot_model(etModel, plot='feature')" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 478, + "referenced_widgets": [ + "db14ff1586104c1bb34e607996c13318", + "50d16bc916de4be295898de3aca4a08d", + "315962e470d04c78a2afc0a866afc592" + ] + }, + "id": "BzkVfLQVTCEp", + "outputId": "ebe5ab3f-869f-4d38-88f9-435c9fa8081a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAugAAAHNCAYAAABM046IAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzde1xUdf7H8feAgKCIIWZ4AUwSSSnBS2mKG5rV5r2NzaJ0Ky9rabq1SpaXMlNL89aa19LaNLO8V2uZmZml/dQKCWtBETTyfgFnuAjn94frKIEIw8Ac5fV8PHzInPOdcz5n+IjvOXzPGYthGIYAAAAAmIKbqwsAAAAAcBEBHQAAADARAjoAAABgIgR0AAAAwEQI6AAAAICJENABAAAAEyGgAwAAACZCQAcAAABMhIAOAAAAmAgBHQAcFB8fr7CwsMv+mTNnjqtLrBArV65UWFiYUlJSXF3KNWn79u1FeqlZs2Zq166d/vGPf2j//v32sXwvgGtTNVcXAABXM39/f61du7bYdTVq1HD6/kaNGqWGDRtq6NChTt/2tWjWrFn67bffNHnyZFeXUmbTpk3TbbfdJknKy8tTSkqKXn/9dT344INau3at6tWr5/C24+Li1KdPH/Xp08dZ5QJwIs6gA0A5uLm5qW7dusX+8fHxcfr+du/e7fRtXsuu5terVq1a9l6qX7++OnbsqFmzZunUqVNauXKlw9s9d+6c9uzZ48RKATgbAR0AKsGaNWv0wAMPKCoqSm3bttWIESN0+PDhQmPWrl2r3r17KyIiQq1atVLfvn21Y8cO+/qwsDAdOHBAb7zxhsLCwnTw4EHNnj1bYWFhysnJKbStsLAwTZ06VdLFKROffvqpunfvrnbt2tnHbdmyRXFxcWrbtq2ioqI0YMCAMk+XOHjwoMLCwrR69WqNGjVKrVu3Vtu2bTVlyhTl5ORo7Nixatu2rdq1a6dXX33V/rwLdW3evFlPP/20oqKi1KpVKz333HOyWq32cbm5uZo2bZpiYmLUokULtW/fXvHx8Tp+/Lh9THx8vHr27Klly5bZ9x0TE6Nt27Zp1apVCgsL0/bt2+3H3LdvX7Vs2VKRkZHq3bu3PvvssyKv3+LFizV79mx17NhRkZGRevTRR5Wamlpo3KpVq9S9e3fdcsst6tKli2bOnKlz587Z1+/fv19Dhw5VdHS0brnlFvXp00ebNm0q0+t7qUaNGqlGjRr67bffLjvmyy+/VGxsrG655Ra1bNlSffv21TfffCPp/PeqefPmstlseu655xQWFuZwLQAqDgEdACrYmjVrNHLkSLVs2VIrV67UnDlztG/fPvXv31+5ubmSpO+//17//Oc/1alTJ33yySdasWKFQkJCNGjQIHuQvxDsHnvsMW3dulWBgYFlqmPu3Ll6+umntWrVKknSjh07NGjQIF1//fVaunSplixZotzcXMXFxenEiRNlPs65c+cqMjJSK1eu1AMPPKC33npL/fv314033qgVK1bo/vvv16JFiwq96ZCkiRMnqlOnTlq1apXGjBmj9evXa8qUKfb1L7zwgpYuXaphw4bpk08+0aRJk7R9+3YNGDBAhmHYx508eVIbN27Uu+++q0GDBunDDz+Uv7+/7r33Xm3dulWRkZFKS0vTkCFDdOONN2r16tVas2aNOnTooOHDh+vnn38uVNf7778vm82mJUuW6M0339Qvv/yiCRMm2NevW7dOzz//vO6//36tW7dO8fHxWrx4sV5//XV7PXFxcUpPT9frr7+uVatWqXXr1nryySf13Xfflfn1laRjx47p7Nmzl/3eb9u2TX//+9/VrFkzffjhh1q+fLnq1aungQMHKjExUYGBgXrvvfckSaNHj9bWrVsdqgNAxSKgA0AFmzt3rtq0aaPnn39eISEhat26tSZPnqx9+/Zpw4YNkqTmzZtr/fr1euqpp9SoUSPdeOONeuKJJ2S1WrVr1y5JUkBAgCTJx8dHdevWlbu7e5nqaN++vbp06aIbbrhBkjR//nw1aNBAr732mkJDQxUREaFp06YpKytLH3zwQZmPs3nz5nrwwQcVFBSkJ554QpJUvXp19e/fX8HBwXr88cclqUgQbt++vfr06aPg4GD16tVL9957r9avXy/DMHT48GGtXbtWgwcPVq9evRQUFKROnTopPj5eiYmJ2rlzp307hw8f1qhRoxQWFqbatWvL399fbm5uql69uurWrStPT0/Vq1dPa9assX8vgoKC9NRTTyk/P1/btm0rVJePj49GjhypG2+8UbfffrtiYmKUkJBgXz9//nz96U9/sh9fly5dNHLkSOXn50uSVqxYoePHj2vWrFlq3bq1mjRpotGjRyssLEzz588v8+t78OBBxcfHq2bNmpedO75o0SI1adJEL774opo2baqwsDC9+uqrqlmzppYuXSp3d3ddd911kiRfX1/VrVu3zHUAqHhcJAoA5XD8+HFFRkYWu27mzJmKiorSvn371KNHj0LrwsPDVbt2bf3888/q3r27fHx89MMPP2jMmDFKS0uTzWaznx0+deqUU2pt0aJFocc//fSTunbtWijoBwQE6KabbioSokujefPm9q9r164tSWrWrFmRZVlZWYWe17p160KPb775Zq1Zs0anT5/Wnj17ZBhGkTEXXvOff/7Zvs7Ly0tNmzYtsUYvLy8lJyfrpZdeUkpKis6ePWtf98fXuWXLloUe+/v76/Tp05Kk7Oxs/frrr+rWrVuhMX379rV//dNPPykoKEhBQUGFxtx+++3232KU5KmnnrJ/b86dO6fc3FzdcsstWrx4sf1N1h8lJCTonnvukcVisS/z9PRUixYtHPqeAnANAjoAlEPt2rW1fPnyYtddf/319kD3r3/9q8hZU5vNpiNHjkiSFi9erEmTJqlv374aPXq0/Pz8dPjwYT3yyCNOq9XX17fQ46ysLK1evVoff/xxoeU5OTny9PQs8/a9vb3tX18IiJdeKHth2aXTUqTzF0Ne6sLdbzIzM+1h/o+116xZU5IKBew/jinO559/rmHDhumee+7RjBkzFBAQIIvFoq5duxYZ+8eLfC8NvWfOnClUa3GysrKUnp5e5A1cXl6e8vLylJubW+LrPG7cOPubD4vFotq1axd5rYrb54XX5lI1atRQenp6ic8FYB4EdAAoB3d3dwUHB192fUFBgSSpf//+euCBB4qsvxAC165dq5YtW2r8+PH2daWZB15c6L00tJakVq1a6tChQ7G3bHQkoDvqj/VeeFyrVi17IM3MzCw05sLjKwXWP7pwe8Lp06fLze38LM8Lb5LK4rrrrpObm5v9DVhxatWqpUaNGmnBggXFrq9WreT/guvWrVtibxXH19e3yG8opPPBvTRvYACYA3PQAaAC1ahRQ02bNtX+/fsVHBxc6E9ubq7q1Kkj6fxZ1Qtzgy+4MA3ij2ecL318IXRdGuZ//PHHUtXWsmVLpaSkFKnr3LlzlTo3+cLdVS7Ys2ePAgIC5OfnpxYtWsjNzU3ff/99oTEX5p5HRERccfuXvl55eXny8/Ozh3Pp8q9zSTw8PNS4ceMidS1dulQDBw6UdP71zcjIUM2aNQu9vu7u7qpTp06hGpzl1ltv1c6dOwsdS05Ojvbs2VPktSrL8QKoXAR0AKhggwYN0hdffKHZs2crJSVFycnJmjJlinr37m2fF9yyZUtt375d27Zt04EDB/Taa6+poKBA7u7u+umnn3TixAl5enqqevXq+uGHH7R3716dOXNGt9xyi6TzF6KmpaXp22+/1ezZs4ud5vBHTzzxhH755ReNHz9ee/fuVWpqqubPn6/u3bvrq6++qtDX5FJbt27VihUrdODAAa1evVr/+c9/1KtXL0nnzyL37t1b8+fP1/r165Wenq4vvvhCkyZN0m233WY//supVauWfv75ZyUlJenYsWNq2bKlkpOT9cknnyg9PV2LFi3Sjz/+qMDAQP38889lOps+cOBAffvtt5o7d64OHTqkTZs2acaMGbrxxhslSX369JGfn5+GDRumnTt36uDBg/rkk0/0wAMPaPbs2Y6/YCV44okntG/fPo0fP14pKSlKSkrSiBEjlJOTY58u5efnJ+n8XXz27t2r7OzsCqkFgOOY4gIAFaxbt25yc3PTggULNG/ePFWrVk0RERFauHCh/cLN4cOH6+jRo3rqqafk5eWlHj16aNy4cfLx8dGyZctksVg0adIkDRkyRHPnztXDDz+shQsXKjIyUiNGjNB7772n1atXKzw8XGPGjNGgQYOuWFfr1q21cOFCzZ49W3/9619VUFCgsLAwTZ8+XZ07d67ol8Xu6aeftodui8WiHj16FJp2M378ePn7+2vq1Kk6evSorrvuOt1111165plnrrjtQYMGaeLEierbt68mTZqkRx99VPv27dO4ceNksVh055136tVXX9WKFSs0Y8YMPfvss3rnnXdKVXevXr107tw5vfXWW/rXv/6l66+/XnFxcfr73/8u6fz1CUuXLtXUqVM1ePBgWa1WBQYGql+/fhowYIBjL9YVtG3bVm+++abeeOMN9e7dW+7u7rr11lv1zjvvqEmTJpLOXwj80EMP6aOPPtLmzZu1evXqMt+yE0DFshj8jgsA4ALbt2/Xo48+qgULFig6OtrV5QCAaTDFBQAAADARAjoAAABgIkxxAQAAAEyEM+gAAACAiRDQAQAAABMhoAMAAAAmwn3QrxG7d++WYRjy8PBwdSkAAAAoRl5eniwWiyIjI0scxxn0a4RhGJX6sc2GYSg3N5ePiq7i6ANI9AEu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qGrVqqlbt24aNWqUPDw8tHLlSr399tuKi4vTrFmzlJeXp+HDh6tBgwaaOHGijh07pu7du+vFF1+UJMXExOjRRx/VV199pZ07d+qGG27Q5MmTFRUVJUk6dOiQJkyYoN27d6ugoEB33nmnxo4dq5o1a2r79u0aPHiwnn76ac2aNUuLFi1Sy5YtNW3aNK1bt05nzpxRSEiIRo8erTZt2mjChAlaunSp3NzctGHDBn3++ecKCwvTggULFB0dLUlatmyZFixYoE2bNungwYPq3Lmzxo0bpxkzZmjs2LHq1q2bPvnkE82bN08HDhxQnTp1NHDgQP31r3911benVE7LU7/b8lXdyHN1KXCR7Ox8+sBFDMPQM2t3qsAwil1fYBiKX79LvVo0YroLAFxlXBbQ165dq7CwMM2ZM0dt2rTRXXfdpUceeUQLFizQ4cOHNWTIEC1atEiDBw+WdD5UHz58WF9++aUWLlyo1157TZ07d9aqVauUmJioRx55RA888IBatGghSXr77bc1c+ZMhYeHa9asWXryySf19ddfy93dXUOGDFFUVJSmT58uq9Wqf/zjH5oyZYomTJggScrLy9OBAwe0bds2eXl5ac2aNVq9erU+/PBD1a1bV2+++aaGDRumrVu3asyYMfr1119166236tlnny318e/YsUObNm1SjRo1lJCQoOeff16zZ89Wu3bttHv3bg0YMEA33XST/U1FaRiGIavVWobvguNsNpt2uAVqR1qOpJxK2SdMij5wif2HT+jAiawSxyQfy9TGpHTdERJQobXYbLZCf6Pqohcg0QclMQyjVCdNTHGR6ObNm2UYhgYNGiRJatSokR5//HHNmzfPHtCzs7M1YMAAeXp66s4779TMmTP14IMPqkaNGmrbtq18fX114MABe0CPiYlRy5YtJUmDBg3SokWL9OOPP8rDw0P//e9/tWzZMnl7e8vb21tDhw7V448/rpdeeknS+YD+0EMPqXr16pKk7t27q3PnzvL19ZUk3XfffZo9e7Z+++03NWrUyKFj7tWrl2rWrClJWrlypf70pz+pQ4cOkqTWrVvr3nvv1Zo1a8oU0PPy8pSUlORQPQ5xu7qvHQCuZpm27FKN27k3Wf62oxVczXmpqamVsh+YH70AiT64HE9PzyuOMUVAT09P1/HjxxUREWFfZhhGoQPw8/OTt7e3pIsHVq9ePft6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oiLk5+dDr9ejrq4OK1aswOrVq5/+IJjpxIkTOH36NO7cuYPi4mKcPn0aoaGhAICoqCicOXMGeXl5uHPnDmpqaqBSqRASEoKhQ4c+MqajoyPUajVu3rwJZ2dn9O/fH2VlZWhra0NFRQVSU1Ph5uZm9jEHgOjoaGRnZ+Py5ctoa2tDTk4OtmzZAkdHRyiVSnh5eSElJQU3btxAW1sbvv/+e4SGhqKsrKzLx4iIeg+2uBARWang4GDIZDLU1NRg7ty5xud9fX2xbNkypKamYv369QgKCkJaWhocHR2RlpZmVmxzYwwZMgSTJ09GREQEtFotRo8ejZ07d3bYxhEaGgqtVoudO3di3bp1cHJywrRp07BmzZquH4wniImJwYEDB5CYmIg+ffogPj4ec+bMAXDv1pXp6enYs2cPUlNT4eLigldeeaXdXVweFh0djc2bNyMkJARHjhxBRkYGMjIy8O2338LLywvJyckoLy/Hpk2bsGbNGkRGRj4xz2XLlkEikWDp0qX4999/4enpic8//9zYl75r1y5kZGRg9uzZaG1txciRI/Hpp5/C39+/6weJiHoNieDvzYiIqBeTy+VISUl57DewEhH1JmxxISIiIiKyIizQiYiIiIisCFtciIiIiIisCK+gExERERFZERboRERERERWhAU6EREREZEVYYFORERERGRFWKATEREREVkRFuhERERERFaEBToRERERkRVhgU5EREREZEVYoBMRERERWZH/A5vMnasrWKB/AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {} + } + ] + } + ] +} \ No newline at end of file From 99eefca69395c789cf8a123cb7e599c16673b8f9 Mon Sep 17 00:00:00 2001 From: Vishist16 <101823906+Vishist16@users.noreply.github.com> Date: Mon, 31 Oct 2022 23:49:10 +0530 Subject: [PATCH 4/7] Create Readme.md --- scripts/Crop Prediction Model/Readme.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 scripts/Crop Prediction Model/Readme.md diff --git a/scripts/Crop Prediction Model/Readme.md b/scripts/Crop Prediction Model/Readme.md new file mode 100644 index 0000000..32e2ed1 --- /dev/null +++ b/scripts/Crop Prediction Model/Readme.md @@ -0,0 +1,11 @@ +# Crop Prediction Model + +A machine learning model to predict the best suitable crop to grow on a particular piece of land based on different factors like humidity, ph, rainfall. + +## Data set used + +The data set is taken from kaggle which includes data of several crops. +link - https://www.kaggle.com/datasets/atharvaingle/crop-recommendation-dataset + +## Pycaret +I have used pycaret to compare all the classification models and optimized them for the best results. From c2c4b5c8db6af008519f2162055943cefad61a47 Mon Sep 17 00:00:00 2001 From: Vishist16 <101823906+Vishist16@users.noreply.github.com> Date: Mon, 31 Oct 2022 23:57:34 +0530 Subject: [PATCH 5/7] Add files via upload --- .../Fetching trending stocks using nlp/app.py | 77 +++ .../data/History_102.txt | 53 ++ .../data/ind_nifty500list.csv | 502 ++++++++++++++++++ .../data/ind_nifty50list.csv | 51 ++ .../requirements.txt | 4 + 5 files changed, 687 insertions(+) create mode 100644 scripts/Fetching trending stocks using nlp/app.py create mode 100644 scripts/Fetching trending stocks using nlp/data/History_102.txt create mode 100644 scripts/Fetching trending stocks using nlp/data/ind_nifty500list.csv create mode 100644 scripts/Fetching trending stocks using nlp/data/ind_nifty50list.csv create mode 100644 scripts/Fetching trending stocks using nlp/requirements.txt diff --git a/scripts/Fetching trending stocks using nlp/app.py b/scripts/Fetching trending stocks using nlp/app.py new file mode 100644 index 0000000..362f329 --- /dev/null +++ b/scripts/Fetching trending stocks using nlp/app.py @@ -0,0 +1,77 @@ +import pandas as pd +import requests +import spacy +import streamlit as st +import os + +from spacy import displacy +from bs4 import BeautifulSoup +import yfinance as yf +import matplotlib + +st.title('Trending Stocks :zap:') + +def extract_text_from_rss(rss_link): + headings = [] + r1 = requests.get('https://economictimes.indiatimes.com/markets/stocks/rssfeeds/2146842.cms') + r2 = requests.get(rss_link) + soup1 = BeautifulSoup(r1.content, features='lxml') + soup2 = BeautifulSoup(r2.content, features='lxml') + headings1 = soup1.findAll('title') + headings2 = (soup2.findAll('title')) + print(headings2) + headings = headings1 + headings2 + return headings + + +token_dict = { + 'Org': [], + 'Symbol': [], + 'currentPrice': [], + 'dayHigh': [], + 'dayLow': [], + 'forwardPE': [], + 'dividendYield': [] +} +nlp = spacy.load("en_core_web_sm") + +def stock_info(headings): + + stocks_df = pd.read_csv("./data/ind_nifty500list.csv") + for title in headings: + doc = nlp(title.text) + for token in doc.ents: + try: + if stocks_df['Company Name'].str.contains(token.text).sum(): + symbol = stocks_df[stocks_df['Company Name'].\ + str.contains(token.text)]['Symbol'].values[0] + org_name = stocks_df[stocks_df['Company Name'].\ + str.contains(token.text)]['Company Name'].values[0] + token_dict['Org'].append(org_name) + print(symbol+".NS") + token_dict['Symbol'].append(symbol) + stock_info = yf.Ticker(symbol+".NS").info + token_dict['currentPrice'].append(stock_info['currentPrice']) + token_dict['dayHigh'].append(stock_info['dayHigh']) + token_dict['dayLow'].append(stock_info['dayLow']) + token_dict['forwardPE'].append(stock_info['forwardPE']) + token_dict['dividendYield'].append(stock_info['dividendYield']) + else: + pass + except: + pass + output_df = pd.DataFrame(token_dict) + return output_df + + +user_input = st.text_input("Add your RSS link here!", "https://www.moneycontrol.com/rss/buzzingstocks.xml") + +fin_headings = extract_text_from_rss(user_input) + +output_df = stock_info(fin_headings) +output_df.drop_duplicates(inplace=True) +st.dataframe(output_df) + +with st.expander("Expand for Financial News!"): + for h in fin_headings: + st.markdown("* " + h.text) diff --git a/scripts/Fetching trending stocks using nlp/data/History_102.txt b/scripts/Fetching trending stocks using nlp/data/History_102.txt new file mode 100644 index 0000000..68e6acb --- /dev/null +++ b/scripts/Fetching trending stocks using nlp/data/History_102.txt @@ -0,0 +1,53 @@ +0 Betancourt, Rómulo +The chief long-term effect was the prolonged divi- U.S. intromission in this oil-rich country, Betancourt +sion of Germany. The Western Allies had confronted the contributed in enduring ways to the institutionaliza- +Soviets and had maintained their commitments without tion of Venezuelan democracy. +having to resort to armed action. The blockade also Born in the town of Guatire in the state of Miranda +proved damaging to world opinion of the Soviet Union. to a family of modest means, he starting working at +Berlin, long perceived as a bastion of German-Prussian 14 years of age to put himself through high school, +militarism, had been transformed into a symbol of free- college, and law school. In 1928 he participated in stu- +dom. The allied presence in Berlin would be the source dent protests against the dictatorship of Juan Vicente +of almost constant difficulty for the East German state, Gómez, events marking him as a leading member of +as it provided an enclave of Western liberalism and eco- the “Generation of 28” dedicated to democratization +nomic prosperity that was a constant source of entice- and social reform. After being jailed by the Gómez +ment for the citizens of the communist state. West Berlin regime he went into exile and became active in various +would be a popular destination for East German emi- leftist political groups, including the Communist Party +grants over the course of the next decade, their massive of Costa Rica. +flight from the east stopped only by the erection of the At age 23 he penned the Plan of Barranquilla, a +Berlin Wall in 1961. Marxist-inspired document outlining his vision of +See also cold war. his homeland’s political future. After Gómez’s death +in 1936, he returned clandestinely to Venezuela and +Further reading: Eisenberg, Carolyn. Drawing the Line: became engaged in political activity against the mili- +The American Decision to Divide Germany, 1944–1949. tary regime. In 1940 he went into exile in Chile, where +New York: Cambridge University Press, 1996; Gaddis, he published Venezuelan Problems (Problemas Vene- +John Lewis. The Cold War: A New History. New York: zolanos). A year later he returned to Venezuela and +Penguin Press, 2005; Haydock, Michael. City Under Siege: founded AD, gathering around him a team commit- +The Berlin Blockade and Airlift, 1948–1949. Washington, ted to reform that formed the nucleus of the party and +D.C.: Brassey’s, 1999; Large, David Clay. Berlin. Berlin: skillfully using the press and other media to dissemi- +Basic Books, 2000; Parrish, Thomas. Berlin in the Bal- nate his ideas. +ance, 1945–1949: The Blockade, Airlift, the First Major On October 19, 1945, a coalition of AD reformers +Battle of the Cold War. Reading, MA: Addison-Wesley, 1999; and disgruntled army officers overthrew the military +Trachtenberg, Marc. A Constructed Peace: The Making of regime and installed Betancourt as president of a provi- +the European Settlement, 1945–1963. Princeton, NJ: Princ- sional government. During his first presidency (1945– +eton University Press, 1999. 48), Betancourt’s government instituted a wide range +of political, economic, and social reforms, including +Nicholas J. Schlosser universal suffrage; mechanisms for free and fair elec- +tions; an accord with foreign oil companies that guar- +anteed a reasonable profit, decent wages, and ensured +Betancourt, Rómulo +labor peace; agrarian reform; expansion of public edu- +(1908–1981) Venezuelan president cation and public health facilities; and related initia- +tives. Declining to run for a second successive term, in +One of the leading figures of 20th-century Venezuelan 1948 he transferred power to his successor, the novel- +history, Rómulo Betancourt is generally credited with ist and activist Rómulo Gallegos. Later that year, in +playing a pivotal role in helping to establish viable and December, the military in collusion with conservative +sustainable democratic institutions in Venezuela that elements overthrew the Gallegos government, ruling +endured from his second presidency (1959–64) to the Venezuela for the next 10 years under General Marcos +2000s. A moderate social reformer and forerunner of Pérez Jiménez. +latter-day Venezuelan president Hugo Chávez in his In 1958 a resurgent coalition of reformers and +advocacy of populist social democracy focusing on the army officers overthrew the Jiménez regime, installing +needs of the poor, Betancourt founded the political party a democratic AD-dominated government, with Betan- +Democratic Action (Acción Democrática, AD) in 1941, court again as president, which broadened and deep- +which would play a major role in subsequent Venezu- ened the reforms of the 1940s. Since 1958 Venezuela +elan political life. Threading a difficult line between the has been ruled by a succession of democratically elect- +far Left, the far Right, and the omnipresent specter of ed governments. Surviving an assassination attempt \ No newline at end of file diff --git a/scripts/Fetching trending stocks using nlp/data/ind_nifty500list.csv b/scripts/Fetching trending stocks using nlp/data/ind_nifty500list.csv new file mode 100644 index 0000000..0ef065f --- /dev/null +++ b/scripts/Fetching trending stocks using nlp/data/ind_nifty500list.csv @@ -0,0 +1,502 @@ +Company Name,Industry,Symbol,Series,ISIN Code +3M India Ltd.,CONSUMER GOODS,3MINDIA,EQ,INE470A01017 +ABB India Ltd.,INDUSTRIAL MANUFACTURING,ABB,EQ,INE117A01022 +ABB Power Products and Systems India Ltd.,INDUSTRIAL MANUFACTURING,POWERINDIA,EQ,INE07Y701011 +ACC Ltd.,CEMENT & CEMENT PRODUCTS,ACC,EQ,INE012A01025 +AIA Engineering Ltd.,INDUSTRIAL MANUFACTURING,AIAENG,EQ,INE212H01026 +APL Apollo Tubes Ltd.,METALS,APLAPOLLO,EQ,INE702C01027 +AU Small Finance Bank Ltd.,FINANCIAL SERVICES,AUBANK,EQ,INE949L01017 +Aarti Drugs Ltd.,PHARMA,AARTIDRUGS,EQ,INE767A01016 +Aarti Industries Ltd.,CHEMICALS,AARTIIND,EQ,INE769A01020 +Aavas Financiers Ltd.,FINANCIAL SERVICES,AAVAS,EQ,INE216P01012 +Abbott India Ltd.,PHARMA,ABBOTINDIA,EQ,INE358A01014 +Adani Enterprises Ltd.,METALS,ADANIENT,EQ,INE423A01024 +Adani Green Energy Ltd.,POWER,ADANIGREEN,EQ,INE364U01010 +Adani Ports and Special Economic Zone Ltd.,SERVICES,ADANIPORTS,EQ,INE742F01042 +Adani Total Gas Ltd.,OIL & GAS,ATGL,BE,INE399L01023 +Adani Transmission Ltd.,POWER,ADANITRANS,BE,INE931S01010 +Aditya Birla Capital Ltd.,FINANCIAL SERVICES,ABCAPITAL,EQ,INE674K01013 +Aditya Birla Fashion and Retail Ltd.,CONSUMER SERVICES,ABFRL,EQ,INE647O01011 +Advanced Enzyme Tech Ltd.,CONSUMER GOODS,ADVENZYMES,EQ,INE837H01020 +Aegis Logistics Ltd.,SERVICES,AEGISCHEM,EQ,INE208C01025 +Affle (India) Ltd.,IT,AFFLE,EQ,INE00WC01019 +Ajanta Pharmaceuticals Ltd.,PHARMA,AJANTPHARM,EQ,INE031B01049 +Akzo Nobel India Ltd.,CONSUMER GOODS,AKZOINDIA,EQ,INE133A01011 +Alembic Ltd.,PHARMA,ALEMBICLTD,EQ,INE426A01027 +Alembic Pharmaceuticals Ltd.,PHARMA,APLLTD,EQ,INE901L01018 +Alkem Laboratories Ltd.,PHARMA,ALKEM,EQ,INE540L01014 +Alkyl Amines Chemicals Ltd.,CHEMICALS,ALKYLAMINE,EQ,INE150B01039 +Alok Industries Ltd.,TEXTILES,ALOKINDS,EQ,INE270A01029 +Amara Raja Batteries Ltd.,AUTOMOBILE,AMARAJABAT,EQ,INE885A01032 +Amber Enterprises India Ltd.,CONSUMER GOODS,AMBER,EQ,INE371P01015 +Ambuja Cements Ltd.,CEMENT & CEMENT PRODUCTS,AMBUJACEM,EQ,INE079A01024 +Angel Broking Ltd.,FINANCIAL SERVICES,ANGELBRKG,EQ,INE732I01013 +Apollo Hospitals Enterprise Ltd.,HEALTHCARE SERVICES,APOLLOHOSP,EQ,INE437A01024 +Apollo Tyres Ltd.,AUTOMOBILE,APOLLOTYRE,EQ,INE438A01022 +Asahi India Glass Ltd.,AUTOMOBILE,ASAHIINDIA,EQ,INE439A01020 +Ashok Leyland Ltd.,AUTOMOBILE,ASHOKLEY,EQ,INE208A01029 +Ashoka Buildcon Ltd.,CONSTRUCTION,ASHOKA,EQ,INE442H01029 +Asian Paints Ltd.,CONSUMER GOODS,ASIANPAINT,EQ,INE021A01026 +Aster DM Healthcare Ltd.,HEALTHCARE SERVICES,ASTERDM,EQ,INE914M01019 +AstraZenca Pharma India Ltd.,PHARMA,ASTRAZEN,EQ,INE203A01020 +Astral Ltd.,INDUSTRIAL MANUFACTURING,ASTRAL,EQ,INE006I01046 +Atul Ltd.,CHEMICALS,ATUL,EQ,INE100A01010 +Aurobindo Pharma Ltd.,PHARMA,AUROPHARMA,EQ,INE406A01037 +Avanti Feeds Ltd.,CONSUMER GOODS,AVANTIFEED,EQ,INE871C01038 +Avenue Supermarts Ltd.,CONSUMER SERVICES,DMART,EQ,INE192R01011 +Axis Bank Ltd.,FINANCIAL SERVICES,AXISBANK,EQ,INE238A01034 +BASF India Ltd.,CHEMICALS,BASF,EQ,INE373A01013 +BEML Ltd.,INDUSTRIAL MANUFACTURING,BEML,EQ,INE258A01016 +BSE Ltd.,FINANCIAL SERVICES,BSE,EQ,INE118H01025 +Bajaj Auto Ltd.,AUTOMOBILE,BAJAJ-AUTO,EQ,INE917I01010 +Bajaj Consumer Care Ltd.,CONSUMER GOODS,BAJAJCON,EQ,INE933K01021 +Bajaj Electricals Ltd,CONSUMER GOODS,BAJAJELEC,EQ,INE193E01025 +Bajaj Finance Ltd.,FINANCIAL SERVICES,BAJFINANCE,EQ,INE296A01024 +Bajaj Finserv Ltd.,FINANCIAL SERVICES,BAJAJFINSV,EQ,INE918I01018 +Bajaj Holdings & Investment Ltd.,FINANCIAL SERVICES,BAJAJHLDNG,EQ,INE118A01012 +Balaji Amines Ltd.,CHEMICALS,BALAMINES,EQ,INE050E01027 +Balkrishna Industries Ltd.,AUTOMOBILE,BALKRISIND,EQ,INE787D01026 +Balmer Lawrie & Co. Ltd.,INDUSTRIAL MANUFACTURING,BALMLAWRIE,EQ,INE164A01016 +Balrampur Chini Mills Ltd.,CONSUMER GOODS,BALRAMCHIN,EQ,INE119A01028 +Bandhan Bank Ltd.,FINANCIAL SERVICES,BANDHANBNK,EQ,INE545U01014 +Bank of Baroda,FINANCIAL SERVICES,BANKBARODA,EQ,INE028A01039 +Bank of India,FINANCIAL SERVICES,BANKINDIA,EQ,INE084A01016 +Bank of Maharashtra.,FINANCIAL SERVICES,MAHABANK,EQ,INE457A01014 +Bata India Ltd.,CONSUMER GOODS,BATAINDIA,EQ,INE176A01028 +Bayer Cropscience Ltd.,FERTILISERS & PESTICIDES,BAYERCROP,EQ,INE462A01022 +Berger Paints India Ltd.,CONSUMER GOODS,BERGEPAINT,EQ,INE463A01038 +Bharat Dynamics Ltd.,INDUSTRIAL MANUFACTURING,BDL,EQ,INE171Z01018 +Bharat Electronics Ltd.,INDUSTRIAL MANUFACTURING,BEL,EQ,INE263A01024 +Bharat Forge Ltd.,INDUSTRIAL MANUFACTURING,BHARATFORG,EQ,INE465A01025 +Bharat Heavy Electricals Ltd.,INDUSTRIAL MANUFACTURING,BHEL,EQ,INE257A01026 +Bharat Petroleum Corporation Ltd.,OIL & GAS,BPCL,EQ,INE029A01011 +Bharat Rasayan Ltd.,FERTILISERS & PESTICIDES,BHARATRAS,EQ,INE838B01013 +Bharti Airtel Ltd.,TELECOM,BHARTIARTL,EQ,INE397D01024 +Biocon Ltd.,PHARMA,BIOCON,EQ,INE376G01013 +Birla Corporation Ltd.,CEMENT & CEMENT PRODUCTS,BIRLACORPN,EQ,INE340A01012 +Birlasoft Ltd.,IT,BSOFT,EQ,INE836A01035 +Bliss GVS Pharma Ltd.,PHARMA,BLISSGVS,EQ,INE416D01022 +Blue Dart Express Ltd.,SERVICES,BLUEDART,EQ,INE233B01017 +Blue Star Ltd.,CONSUMER GOODS,BLUESTARCO,EQ,INE472A01039 +Bombay Burmah Trading Corporation Ltd.,CONSUMER GOODS,BBTC,EQ,INE050A01025 +Bosch Ltd.,AUTOMOBILE,BOSCHLTD,EQ,INE323A01026 +Brigade Enterprises Ltd.,CONSTRUCTION,BRIGADE,EQ,INE791I01019 +Britannia Industries Ltd.,CONSUMER GOODS,BRITANNIA,EQ,INE216A01030 +Burger King India Ltd.,CONSUMER SERVICES,BURGERKING,EQ,INE07T201019 +CCL Products (I) Ltd.,CONSUMER GOODS,CCL,EQ,INE421D01022 +CESC Ltd.,POWER,CESC,EQ,INE486A01013 +CRISIL Ltd.,FINANCIAL SERVICES,CRISIL,EQ,INE007A01025 +CSB Bank Ltd.,FINANCIAL SERVICES,CSBBANK,EQ,INE679A01013 +Cadila Healthcare Ltd.,PHARMA,CADILAHC,EQ,INE010B01027 +Can Fin Homes Ltd.,FINANCIAL SERVICES,CANFINHOME,EQ,INE477A01020 +Canara Bank,FINANCIAL SERVICES,CANBK,EQ,INE476A01014 +Caplin Point Laboratories Ltd.,PHARMA,CAPLIPOINT,EQ,INE475E01026 +Capri Global Capital Ltd.,FINANCIAL SERVICES,CGCL,EQ,INE180C01026 +Carborundum Universal Ltd.,INDUSTRIAL MANUFACTURING,CARBORUNIV,EQ,INE120A01034 +Castrol India Ltd.,OIL & GAS,CASTROLIND,EQ,INE172A01027 +Ceat Ltd.,AUTOMOBILE,CEATLTD,EQ,INE482A01020 +Central Bank of India,FINANCIAL SERVICES,CENTRALBK,EQ,INE483A01010 +Central Depository Services (India) Ltd.,FINANCIAL SERVICES,CDSL,BE,INE736A01011 +Century Plyboards (India) Ltd.,CONSUMER GOODS,CENTURYPLY,EQ,INE348B01021 +Century Textile & Industries Ltd.,PAPER AND JUTE,CENTURYTEX,EQ,INE055A01016 +Cera Sanitaryware Ltd,CONSUMER GOODS,CERA,EQ,INE739E01017 +Chalet Hotels Ltd.,CONSUMER SERVICES,CHALET,EQ,INE427F01016 +Chambal Fertilizers & Chemicals Ltd.,FERTILISERS & PESTICIDES,CHAMBLFERT,EQ,INE085A01013 +Cholamandalam Financial Holdings Ltd.,FINANCIAL SERVICES,CHOLAHLDNG,EQ,INE149A01033 +Cholamandalam Investment and Finance Company Ltd.,FINANCIAL SERVICES,CHOLAFIN,EQ,INE121A01024 +Cipla Ltd.,PHARMA,CIPLA,EQ,INE059A01026 +City Union Bank Ltd.,FINANCIAL SERVICES,CUB,EQ,INE491A01021 +Coal India Ltd.,METALS,COALINDIA,EQ,INE522F01014 +Cochin Shipyard Ltd.,INDUSTRIAL MANUFACTURING,COCHINSHIP,EQ,INE704P01017 +Coforge Ltd.,IT,COFORGE,EQ,INE591G01017 +Colgate Palmolive (India) Ltd.,CONSUMER GOODS,COLPAL,EQ,INE259A01022 +Computer Age Management Services Ltd.,FINANCIAL SERVICES,CAMS,EQ,INE596I01012 +Container Corporation of India Ltd.,SERVICES,CONCOR,EQ,INE111A01025 +Coromandel International Ltd.,FERTILISERS & PESTICIDES,COROMANDEL,EQ,INE169A01031 +CreditAccess Grameen Ltd.,FINANCIAL SERVICES,CREDITACC,EQ,INE741K01010 +Crompton Greaves Consumer Electricals Ltd.,CONSUMER GOODS,CROMPTON,EQ,INE299U01018 +Cummins India Ltd.,INDUSTRIAL MANUFACTURING,CUMMINSIND,EQ,INE298A01020 +Cyient Ltd.,IT,CYIENT,EQ,INE136B01020 +DCB Bank Ltd.,FINANCIAL SERVICES,DCBBANK,EQ,INE503A01015 +DCM Shriram Ltd.,CONSUMER GOODS,DCMSHRIRAM,EQ,INE499A01024 +DLF Ltd.,CONSTRUCTION,DLF,EQ,INE271C01023 +Dabur India Ltd.,CONSUMER GOODS,DABUR,EQ,INE016A01026 +Dalmia Bharat Ltd.,CEMENT & CEMENT PRODUCTS,DALBHARAT,EQ,INE00R701025 +Deepak Nitrite Ltd.,CHEMICALS,DEEPAKNTR,EQ,INE288B01029 +Delta Corp Ltd.,CONSUMER SERVICES,DELTACORP,EQ,INE124G01033 +Dhani Services Ltd.,FINANCIAL SERVICES,DHANI,EQ,INE274G01010 +Dhanuka Agritech Ltd.,FERTILISERS & PESTICIDES,DHANUKA,EQ,INE435G01025 +Dilip Buildcon Ltd.,CONSTRUCTION,DBL,EQ,INE917M01012 +Dish TV India Ltd.,MEDIA ENTERTAINMENT & PUBLICATION,DISHTV,EQ,INE836F01026 +Dishman Carbogen Amcis Ltd.,PHARMA,DCAL,EQ,INE385W01011 +Divi's Laboratories Ltd.,PHARMA,DIVISLAB,EQ,INE361B01024 +Dixon Technologies (India) Ltd.,CONSUMER GOODS,DIXON,EQ,INE935N01020 +Dr. Lal Path Labs Ltd.,HEALTHCARE SERVICES,LALPATHLAB,EQ,INE600L01024 +Dr. Reddy's Laboratories Ltd.,PHARMA,DRREDDY,EQ,INE089A01023 +E.I.D. Parry (India) Ltd.,CONSUMER GOODS,EIDPARRY,EQ,INE126A01031 +EIH Ltd.,CONSUMER SERVICES,EIHOTEL,EQ,INE230A01023 +EPL Ltd.,INDUSTRIAL MANUFACTURING,EPL,EQ,INE255A01020 +Edelweiss Financial Services Ltd.,FINANCIAL SERVICES,EDELWEISS,EQ,INE532F01054 +Eicher Motors Ltd.,AUTOMOBILE,EICHERMOT,EQ,INE066A01021 +Elgi Equipments Ltd.,INDUSTRIAL MANUFACTURING,ELGIEQUIP,EQ,INE285A01027 +Emami Ltd.,CONSUMER GOODS,EMAMILTD,EQ,INE548C01032 +Endurance Technologies Ltd.,AUTOMOBILE,ENDURANCE,EQ,INE913H01037 +Engineers India Ltd.,CONSTRUCTION,ENGINERSIN,EQ,INE510A01028 +Equitas Holdings Ltd.,FINANCIAL SERVICES,EQUITAS,EQ,INE988K01017 +Eris Lifesciences Ltd.,PHARMA,ERIS,EQ,INE406M01024 +Escorts Ltd.,AUTOMOBILE,ESCORTS,EQ,INE042A01014 +Exide Industries Ltd.,AUTOMOBILE,EXIDEIND,EQ,INE302A01020 +FDC Ltd.,PHARMA,FDC,EQ,INE258B01022 +Federal Bank Ltd.,FINANCIAL SERVICES,FEDERALBNK,EQ,INE171A01029 +Fine Organic Industries Ltd.,CHEMICALS,FINEORG,EQ,INE686Y01026 +Finolex Cables Ltd.,INDUSTRIAL MANUFACTURING,FINCABLES,EQ,INE235A01022 +Finolex Industries Ltd.,INDUSTRIAL MANUFACTURING,FINPIPE,EQ,INE183A01024 +Firstsource Solutions Ltd.,IT,FSL,EQ,INE684F01012 +Fortis Healthcare Ltd.,HEALTHCARE SERVICES,FORTIS,EQ,INE061F01013 +Future Consumer Ltd.,CONSUMER SERVICES,FCONSUMER,EQ,INE220J01025 +Future Retail Ltd.,CONSUMER SERVICES,FRETAIL,EQ,INE752P01024 +GAIL (India) Ltd.,OIL & GAS,GAIL,EQ,INE129A01019 +GE Power India Ltd.,INDUSTRIAL MANUFACTURING,GEPIL,EQ,INE878A01011 +GMM Pfaudler Ltd.,INDUSTRIAL MANUFACTURING,GMMPFAUDLR,EQ,INE541A01023 +GMR Infrastructure Ltd.,CONSTRUCTION,GMRINFRA,EQ,INE776C01039 +Galaxy Surfactants Ltd.,CHEMICALS,GALAXYSURF,EQ,INE600K01018 +Garden Reach Shipbuilders & Engineers Ltd.,INDUSTRIAL MANUFACTURING,GRSE,EQ,INE382Z01011 +Garware Technical Fibres Ltd.,TEXTILES,GARFIBRES,EQ,INE276A01018 +General Insurance Corporation of India,FINANCIAL SERVICES,GICRE,EQ,INE481Y01014 +Gillette India Ltd.,CONSUMER GOODS,GILLETTE,EQ,INE322A01010 +Gland Pharma Ltd.,PHARMA,GLAND,EQ,INE068V01023 +Glaxosmithkline Pharmaceuticals Ltd.,PHARMA,GLAXO,EQ,INE159A01016 +Glenmark Pharmaceuticals Ltd.,PHARMA,GLENMARK,EQ,INE935A01035 +Godfrey Phillips India Ltd.,CONSUMER GOODS,GODFRYPHLP,EQ,INE260B01028 +Godrej Agrovet Ltd.,CONSUMER GOODS,GODREJAGRO,EQ,INE850D01014 +Godrej Consumer Products Ltd.,CONSUMER GOODS,GODREJCP,EQ,INE102D01028 +Godrej Industries Ltd.,CONSUMER GOODS,GODREJIND,EQ,INE233A01035 +Godrej Properties Ltd.,CONSTRUCTION,GODREJPROP,EQ,INE484J01027 +Granules India Ltd.,PHARMA,GRANULES,EQ,INE101D01020 +Graphite India Ltd.,INDUSTRIAL MANUFACTURING,GRAPHITE,EQ,INE371A01025 +Grasim Industries Ltd.,CEMENT & CEMENT PRODUCTS,GRASIM,EQ,INE047A01021 +Great Eastern Shipping Co. Ltd.,SERVICES,GESHIP,EQ,INE017A01032 +Greaves Cotton Ltd.,INDUSTRIAL MANUFACTURING,GREAVESCOT,EQ,INE224A01026 +Grindwell Norton Ltd.,INDUSTRIAL MANUFACTURING,GRINDWELL,EQ,INE536A01023 +Gujarat Alkalies & Chemicals Ltd.,CHEMICALS,GUJALKALI,EQ,INE186A01019 +Gujarat Ambuja Exports Ltd.,CONSUMER GOODS,GAEL,EQ,INE036B01030 +Gujarat Fluorochemicals Ltd.,CHEMICALS,FLUOROCHEM,EQ,INE09N301011 +Gujarat Gas Ltd.,OIL & GAS,GUJGASLTD,EQ,INE844O01030 +Gujarat Narmada Valley Fertilizers and Chemicals Ltd.,CHEMICALS,GNFC,EQ,INE113A01013 +Gujarat Pipavav Port Ltd.,SERVICES,GPPL,EQ,INE517F01014 +Gujarat State Fertilizers & Chemicals Ltd.,FERTILISERS & PESTICIDES,GSFC,EQ,INE026A01025 +Gujarat State Petronet Ltd.,OIL & GAS,GSPL,EQ,INE246F01010 +Gulf Oil Lubricants India Ltd.,OIL & GAS,GULFOILLUB,EQ,INE635Q01029 +H.E.G. Ltd.,INDUSTRIAL MANUFACTURING,HEG,EQ,INE545A01016 +HCL Technologies Ltd.,IT,HCLTECH,EQ,INE860A01027 +HDFC Asset Management Company Ltd.,FINANCIAL SERVICES,HDFCAMC,EQ,INE127D01025 +HDFC Bank Ltd.,FINANCIAL SERVICES,HDFCBANK,EQ,INE040A01034 +HDFC Life Insurance Company Ltd.,FINANCIAL SERVICES,HDFCLIFE,EQ,INE795G01014 +HFCL Ltd.,TELECOM,HFCL,BE,INE548A01028 +Happiest Minds Technologies Ltd.,IT,HAPPSTMNDS,EQ,INE419U01012 +Hatsun Agro Product Ltd.,CONSUMER GOODS,HATSUN,EQ,INE473B01035 +Havells India Ltd.,CONSUMER GOODS,HAVELLS,EQ,INE176B01034 +HeidelbergCement India Ltd.,CEMENT & CEMENT PRODUCTS,HEIDELBERG,EQ,INE578A01017 +Hemisphere Properties India Ltd.,CONSTRUCTION,HEMIPROP,EQ,INE0AJG01018 +Hero MotoCorp Ltd.,AUTOMOBILE,HEROMOTOCO,EQ,INE158A01026 +Himadri Speciality Chemical Ltd.,CHEMICALS,HSCL,EQ,INE019C01026 +Hindalco Industries Ltd.,METALS,HINDALCO,EQ,INE038A01020 +Hindustan Aeronautics Ltd.,INDUSTRIAL MANUFACTURING,HAL,EQ,INE066F01012 +Hindustan Copper Ltd.,METALS,HINDCOPPER,EQ,INE531E01026 +Hindustan Petroleum Corporation Ltd.,OIL & GAS,HINDPETRO,EQ,INE094A01015 +Hindustan Unilever Ltd.,CONSUMER GOODS,HINDUNILVR,EQ,INE030A01027 +Hindustan Zinc Ltd.,METALS,HINDZINC,EQ,INE267A01025 +Honeywell Automation India Ltd.,INDUSTRIAL MANUFACTURING,HONAUT,EQ,INE671A01010 +Housing & Urban Development Corporation Ltd.,FINANCIAL SERVICES,HUDCO,EQ,INE031A01017 +Housing Development Finance Corporation Ltd.,FINANCIAL SERVICES,HDFC,EQ,INE001A01036 +Huhtamaki India Ltd.,INDUSTRIAL MANUFACTURING,HUHTAMAKI,EQ,INE275B01026 +ICICI Bank Ltd.,FINANCIAL SERVICES,ICICIBANK,EQ,INE090A01021 +ICICI Lombard General Insurance Company Ltd.,FINANCIAL SERVICES,ICICIGI,EQ,INE765G01017 +ICICI Prudential Life Insurance Company Ltd.,FINANCIAL SERVICES,ICICIPRULI,EQ,INE726G01019 +ICICI Securities Ltd.,FINANCIAL SERVICES,ISEC,EQ,INE763G01038 +IDBI Bank Ltd.,FINANCIAL SERVICES,IDBI,EQ,INE008A01015 +IDFC First Bank Ltd.,FINANCIAL SERVICES,IDFCFIRSTB,EQ,INE092T01019 +IDFC Ltd.,FINANCIAL SERVICES,IDFC,EQ,INE043D01016 +IFB Industries Ltd.,CONSUMER GOODS,IFBIND,EQ,INE559A01017 +IIFL Finance Ltd.,FINANCIAL SERVICES,IIFL,EQ,INE530B01024 +IIFL Wealth Management Ltd.,FINANCIAL SERVICES,IIFLWAM,EQ,INE466L01020 +IOL Chem and Pharma Ltd.,PHARMA,IOLCP,EQ,INE485C01011 +IRB Infrastructure Developers Ltd.,CONSTRUCTION,IRB,EQ,INE821I01014 +IRCON International Ltd.,CONSTRUCTION,IRCON,EQ,INE962Y01021 +ITC Ltd.,CONSUMER GOODS,ITC,EQ,INE154A01025 +ITI Ltd.,TELECOM,ITI,EQ,INE248A01017 +India Cements Ltd.,CEMENT & CEMENT PRODUCTS,INDIACEM,EQ,INE383A01012 +Indiabulls Housing Finance Ltd.,FINANCIAL SERVICES,IBULHSGFIN,EQ,INE148I01020 +Indiabulls Real Estate Ltd.,CONSTRUCTION,IBREALEST,EQ,INE069I01010 +Indiamart Intermesh Ltd.,CONSUMER SERVICES,INDIAMART,EQ,INE933S01016 +Indian Bank,FINANCIAL SERVICES,INDIANB,EQ,INE562A01011 +Indian Energy Exchange Ltd.,FINANCIAL SERVICES,IEX,EQ,INE022Q01020 +Indian Hotels Co. Ltd.,CONSUMER SERVICES,INDHOTEL,EQ,INE053A01029 +Indian Oil Corporation Ltd.,OIL & GAS,IOC,EQ,INE242A01010 +Indian Overseas Bank,FINANCIAL SERVICES,IOB,EQ,INE565A01014 +Indian Railway Catering And Tourism Corporation Ltd.,SERVICES,IRCTC,EQ,INE335Y01012 +Indo Count Industries Ltd.,TEXTILES,ICIL,EQ,INE483B01026 +Indoco Remedies Ltd.,PHARMA,INDOCO,EQ,INE873D01024 +Indraprastha Gas Ltd.,OIL & GAS,IGL,EQ,INE203G01027 +Indus Towers Ltd.,TELECOM,INDUSTOWER,EQ,INE121J01017 +IndusInd Bank Ltd.,FINANCIAL SERVICES,INDUSINDBK,EQ,INE095A01012 +Infibeam Avenues Ltd.,IT,INFIBEAM,EQ,INE483S01020 +Info Edge (India) Ltd.,CONSUMER SERVICES,NAUKRI,EQ,INE663F01024 +Infosys Ltd.,IT,INFY,EQ,INE009A01021 +Ingersoll Rand (India) Ltd.,INDUSTRIAL MANUFACTURING,INGERRAND,EQ,INE177A01018 +Inox Leisure Ltd.,MEDIA ENTERTAINMENT & PUBLICATION,INOXLEISUR,EQ,INE312H01016 +Intellect Design Arena Ltd.,IT,INTELLECT,EQ,INE306R01017 +InterGlobe Aviation Ltd.,SERVICES,INDIGO,EQ,INE646L01027 +Ipca Laboratories Ltd.,PHARMA,IPCALAB,EQ,INE571A01020 +J.B. Chemicals & Pharmaceuticals Ltd.,PHARMA,JBCHEPHARM,EQ,INE572A01028 +J.K. Cement Ltd.,CEMENT & CEMENT PRODUCTS,JKCEMENT,EQ,INE823G01014 +JK Lakshmi Cement Ltd.,CEMENT & CEMENT PRODUCTS,JKLAKSHMI,EQ,INE786A01032 +JK Paper Ltd.,PAPER AND JUTE,JKPAPER,EQ,INE789E01012 +JK Tyre & Industries Ltd.,AUTOMOBILE,JKTYRE,EQ,INE573A01042 +JM Financial Ltd.,FINANCIAL SERVICES,JMFINANCIL,EQ,INE780C01023 +JSW Energy Ltd.,POWER,JSWENERGY,BE,INE121E01018 +JSW Steel Ltd.,METALS,JSWSTEEL,EQ,INE019A01038 +JTEKT India Ltd.,AUTOMOBILE,JTEKTINDIA,EQ,INE643A01035 +Jamna Auto Industries Ltd.,AUTOMOBILE,JAMNAAUTO,EQ,INE039C01032 +Jindal Saw Ltd.,METALS,JINDALSAW,EQ,INE324A01024 +Jindal Stainless (Hisar) Ltd.,METALS,JSLHISAR,EQ,INE455T01018 +Jindal Stainless Ltd.,METALS,JSL,EQ,INE220G01021 +Jindal Steel & Power Ltd.,METALS,JINDALSTEL,EQ,INE749A01030 +Johnson Controls - Hitachi Air Conditioning India Ltd.,CONSUMER GOODS,JCHAC,EQ,INE782A01015 +Jubilant Foodworks Ltd.,CONSUMER SERVICES,JUBLFOOD,EQ,INE797F01012 +Justdial Ltd.,CONSUMER SERVICES,JUSTDIAL,EQ,INE599M01018 +Jyothy Labs Ltd.,CONSUMER GOODS,JYOTHYLAB,EQ,INE668F01031 +K.P.R. Mill Ltd.,TEXTILES,KPRMILL,EQ,INE930H01023 +KEI Industries Ltd.,INDUSTRIAL MANUFACTURING,KEI,EQ,INE878B01027 +KNR Constructions Ltd.,CONSTRUCTION,KNRCON,EQ,INE634I01029 +KPIT Technologies Ltd.,IT,KPITTECH,EQ,INE04I401011 +KRBL Ltd.,CONSUMER GOODS,KRBL,EQ,INE001B01026 +KSB Ltd.,INDUSTRIAL MANUFACTURING,KSB,EQ,INE999A01015 +Kajaria Ceramics Ltd.,CONSUMER GOODS,KAJARIACER,EQ,INE217B01036 +Kalpataru Power Transmission Ltd.,POWER,KALPATPOWR,EQ,INE220B01022 +Kansai Nerolac Paints Ltd.,CONSUMER GOODS,KANSAINER,EQ,INE531A01024 +Karur Vysya Bank Ltd.,FINANCIAL SERVICES,KARURVYSYA,EQ,INE036D01028 +Kaveri Seed Company Ltd.,CONSUMER GOODS,KSCL,EQ,INE455I01029 +Kec International Ltd.,POWER,KEC,EQ,INE389H01022 +Kotak Mahindra Bank Ltd.,FINANCIAL SERVICES,KOTAKBANK,EQ,INE237A01028 +L&T Finance Holdings Ltd.,FINANCIAL SERVICES,L&TFH,EQ,INE498L01015 +L&T Technology Services Ltd.,IT,LTTS,EQ,INE010V01017 +LIC Housing Finance Ltd.,FINANCIAL SERVICES,LICHSGFIN,EQ,INE115A01026 +La Opala RG Ltd.,CONSUMER GOODS,LAOPALA,EQ,INE059D01020 +Lakshmi Machine Works Ltd.,INDUSTRIAL MANUFACTURING,LAXMIMACH,EQ,INE269B01029 +Larsen & Toubro Infotech Ltd.,IT,LTI,EQ,INE214T01019 +Larsen & Toubro Ltd.,CONSTRUCTION,LT,EQ,INE018A01030 +Laurus Labs Ltd.,PHARMA,LAURUSLABS,EQ,INE947Q01028 +Lemon Tree Hotels Ltd.,CONSUMER SERVICES,LEMONTREE,EQ,INE970X01018 +Linde India Ltd.,CHEMICALS,LINDEINDIA,EQ,INE473A01011 +Lupin Ltd.,PHARMA,LUPIN,EQ,INE326A01037 +Lux Industries Ltd.,TEXTILES,LUXIND,EQ,INE150G01020 +MAS Financial Services Ltd.,FINANCIAL SERVICES,MASFIN,EQ,INE348L01012 +MMTC Ltd.,SERVICES,MMTC,EQ,INE123F01029 +MOIL Ltd.,METALS,MOIL,EQ,INE490G01020 +MRF Ltd.,AUTOMOBILE,MRF,EQ,INE883A01011 +Mahanagar Gas Ltd.,OIL & GAS,MGL,EQ,INE002S01010 +Maharashtra Scooters Ltd.,FINANCIAL SERVICES,MAHSCOOTER,EQ,INE288A01013 +Maharashtra Seamless Ltd.,METALS,MAHSEAMLES,EQ,INE271B01025 +Mahindra & Mahindra Financial Services Ltd.,FINANCIAL SERVICES,M&MFIN,EQ,INE774D01024 +Mahindra & Mahindra Ltd.,AUTOMOBILE,M&M,EQ,INE101A01026 +Mahindra CIE Automotive Ltd.,INDUSTRIAL MANUFACTURING,MAHINDCIE,EQ,INE536H01010 +Mahindra Holidays & Resorts India Ltd.,CONSUMER SERVICES,MHRIL,EQ,INE998I01010 +Mahindra Logistics Ltd.,SERVICES,MAHLOG,EQ,INE766P01016 +Manappuram Finance Ltd.,FINANCIAL SERVICES,MANAPPURAM,EQ,INE522D01027 +Mangalore Refinery & Petrochemicals Ltd.,OIL & GAS,MRPL,EQ,INE103A01014 +Marico Ltd.,CONSUMER GOODS,MARICO,EQ,INE196A01026 +Maruti Suzuki India Ltd.,AUTOMOBILE,MARUTI,EQ,INE585B01010 +Max Financial Services Ltd.,FINANCIAL SERVICES,MFSL,EQ,INE180A01020 +Max Healthcare Institute Ltd.,HEALTHCARE SERVICES,MAXHEALTH,EQ,INE027H01010 +Mazagoan Dock Shipbuilders Ltd.,INDUSTRIAL MANUFACTURING,MAZDOCK,EQ,INE249Z01012 +Metropolis Healthcare Ltd.,HEALTHCARE SERVICES,METROPOLIS,EQ,INE112L01020 +MindTree Ltd.,IT,MINDTREE,EQ,INE018I01017 +Minda Corporation Ltd.,AUTOMOBILE,MINDACORP,EQ,INE842C01021 +Minda Industries Ltd.,AUTOMOBILE,MINDAIND,EQ,INE405E01023 +Mishra Dhatu Nigam Ltd.,METALS,MIDHANI,EQ,INE099Z01011 +Motilal Oswal Financial Services Ltd.,FINANCIAL SERVICES,MOTILALOFS,EQ,INE338I01027 +MphasiS Ltd.,IT,MPHASIS,EQ,INE356A01018 +Multi Commodity Exchange of India Ltd.,FINANCIAL SERVICES,MCX,EQ,INE745G01035 +Muthoot Finance Ltd.,FINANCIAL SERVICES,MUTHOOTFIN,EQ,INE414G01012 +NATCO Pharma Ltd.,PHARMA,NATCOPHARM,EQ,INE987B01026 +NBCC (India) Ltd.,CONSTRUCTION,NBCC,EQ,INE095N01031 +NCC Ltd.,CONSTRUCTION,NCC,EQ,INE868B01028 +NESCO Ltd.,SERVICES,NESCO,EQ,INE317F01035 +NHPC Ltd.,POWER,NHPC,EQ,INE848E01016 +NLC India Ltd.,POWER,NLCINDIA,EQ,INE589A01014 +NMDC Ltd.,METALS,NMDC,EQ,INE584A01023 +NOCIL Ltd.,CHEMICALS,NOCIL,EQ,INE163A01018 +NTPC Ltd.,POWER,NTPC,EQ,INE733E01010 +Narayana Hrudayalaya Ltd.,HEALTHCARE SERVICES,NH,EQ,INE410P01011 +National Aluminium Co. Ltd.,METALS,NATIONALUM,EQ,INE139A01034 +National Fertilizers Ltd.,FERTILISERS & PESTICIDES,NFL,EQ,INE870D01012 +Navin Fluorine International Ltd.,CHEMICALS,NAVINFLUOR,EQ,INE048G01026 +Nestle India Ltd.,CONSUMER GOODS,NESTLEIND,EQ,INE239A01016 +Network18 Media & Investments Ltd.,MEDIA ENTERTAINMENT & PUBLICATION,NETWORK18,EQ,INE870H01013 +Nilkamal Ltd.,INDUSTRIAL MANUFACTURING,NILKAMAL,EQ,INE310A01015 +Nippon Life India Asset Management Ltd.,FINANCIAL SERVICES,NAM-INDIA,EQ,INE298J01013 +Oberoi Realty Ltd.,CONSTRUCTION,OBEROIRLTY,EQ,INE093I01010 +Oil & Natural Gas Corporation Ltd.,OIL & GAS,ONGC,EQ,INE213A01029 +Oil India Ltd.,OIL & GAS,OIL,EQ,INE274J01014 +Oracle Financial Services Software Ltd.,IT,OFSS,EQ,INE881D01027 +Orient Electric Ltd.,CONSUMER GOODS,ORIENTELEC,EQ,INE142Z01019 +PI Industries Ltd.,FERTILISERS & PESTICIDES,PIIND,EQ,INE603J01030 +PNB Housing Finance Ltd.,FINANCIAL SERVICES,PNBHOUSING,EQ,INE572E01012 +PNC Infratech Ltd.,CONSTRUCTION,PNCINFRA,EQ,INE195J01029 +PVR Ltd.,MEDIA ENTERTAINMENT & PUBLICATION,PVR,EQ,INE191H01014 +Page Industries Ltd.,TEXTILES,PAGEIND,EQ,INE761H01022 +Persistent Systems Ltd.,IT,PERSISTENT,EQ,INE262H01013 +Petronet LNG Ltd.,OIL & GAS,PETRONET,EQ,INE347G01014 +Pfizer Ltd.,PHARMA,PFIZER,EQ,INE182A01018 +Phillips Carbon Black Ltd.,CHEMICALS,PHILIPCARB,EQ,INE602A01023 +Phoenix Mills Ltd.,CONSTRUCTION,PHOENIXLTD,EQ,INE211B01039 +Pidilite Industries Ltd.,CHEMICALS,PIDILITIND,EQ,INE318A01026 +Piramal Enterprises Ltd.,FINANCIAL SERVICES,PEL,EQ,INE140A01024 +Poly Medicure Ltd.,HEALTHCARE SERVICES,POLYMED,EQ,INE205C01021 +Polycab India Ltd.,INDUSTRIAL MANUFACTURING,POLYCAB,EQ,INE455K01017 +Polyplex Corporation Ltd.,INDUSTRIAL MANUFACTURING,POLYPLEX,EQ,INE633B01018 +Power Finance Corporation Ltd.,FINANCIAL SERVICES,PFC,EQ,INE134E01011 +Power Grid Corporation of India Ltd.,POWER,POWERGRID,EQ,INE752E01010 +Prestige Estates Projects Ltd.,CONSTRUCTION,PRESTIGE,EQ,INE811K01011 +Prince Pipes and Fittings Ltd.,INDUSTRIAL MANUFACTURING,PRINCEPIPE,EQ,INE689W01016 +Prism Johnson Ltd.,CEMENT & CEMENT PRODUCTS,PRSMJOHNSN,EQ,INE010A01011 +Procter & Gamble Health Ltd.,PHARMA,PGHL,EQ,INE199A01012 +Procter & Gamble Hygiene & Health Care Ltd.,CONSUMER GOODS,PGHH,EQ,INE179A01014 +Punjab National Bank,FINANCIAL SERVICES,PNB,EQ,INE160A01022 +Quess Corp Ltd.,SERVICES,QUESS,EQ,INE615P01015 +RBL Bank Ltd.,FINANCIAL SERVICES,RBLBANK,EQ,INE976G01028 +REC Ltd.,FINANCIAL SERVICES,RECLTD,EQ,INE020B01018 +RHI MAGNESITA INDIA LTD.,INDUSTRIAL MANUFACTURING,RHIM,EQ,INE743M01012 +RITES Ltd.,SERVICES,RITES,EQ,INE320J01015 +Radico Khaitan Ltd,CONSUMER GOODS,RADICO,EQ,INE944F01028 +Rail Vikas Nigam Ltd.,CONSTRUCTION,RVNL,EQ,INE415G01027 +Rain Industries Ltd,CHEMICALS,RAIN,EQ,INE855B01025 +Rajesh Exports Ltd.,CONSUMER GOODS,RAJESHEXPO,EQ,INE343B01030 +Rallis India Ltd.,FERTILISERS & PESTICIDES,RALLIS,EQ,INE613A01020 +Rashtriya Chemicals & Fertilizers Ltd.,FERTILISERS & PESTICIDES,RCF,EQ,INE027A01015 +Ratnamani Metals & Tubes Ltd.,METALS,RATNAMANI,EQ,INE703B01027 +Raymond Ltd.,TEXTILES,RAYMOND,EQ,INE301A01014 +Redington (India) Ltd.,SERVICES,REDINGTON,EQ,INE891D01026 +Relaxo Footwears Ltd.,CONSUMER GOODS,RELAXO,EQ,INE131B01039 +Reliance Industries Ltd.,OIL & GAS,RELIANCE,EQ,INE002A01018 +Responsive Industries Ltd.,CONSUMER GOODS,RESPONIND,EQ,INE688D01026 +Rossari Biotech Ltd.,CHEMICALS,ROSSARI,EQ,INE02A801020 +Route Mobile Ltd.,IT,ROUTE,EQ,INE450U01017 +SBI Cards and Payment Services Ltd.,FINANCIAL SERVICES,SBICARD,EQ,INE018E01016 +SBI Life Insurance Company Ltd.,FINANCIAL SERVICES,SBILIFE,EQ,INE123W01016 +SIS Ltd.,SERVICES,SIS,EQ,INE285J01028 +SJVN Ltd.,POWER,SJVN,EQ,INE002L01015 +SKF India Ltd.,INDUSTRIAL MANUFACTURING,SKFINDIA,EQ,INE640A01023 +SRF Ltd.,CHEMICALS,SRF,EQ,INE647A01010 +Sanofi India Ltd.,PHARMA,SANOFI,EQ,INE058A01010 +Schaeffler India Ltd.,INDUSTRIAL MANUFACTURING,SCHAEFFLER,EQ,INE513A01014 +Schneider Electric Infrastructure Ltd.,INDUSTRIAL MANUFACTURING,SCHNEIDER,EQ,INE839M01018 +Sequent Scientific Ltd.,PHARMA,SEQUENT,EQ,INE807F01027 +Sharda Cropchem Ltd.,FERTILISERS & PESTICIDES,SHARDACROP,EQ,INE221J01015 +Sheela Foam Ltd.,CONSUMER GOODS,SFL,EQ,INE916U01025 +Shilpa Medicare Ltd.,PHARMA,SHILPAMED,EQ,INE790G01031 +Shipping Corporation of India Ltd.,SERVICES,SCI,EQ,INE109A01011 +Shoppers Stop Ltd.,CONSUMER SERVICES,SHOPERSTOP,EQ,INE498B01024 +Shree Cement Ltd.,CEMENT & CEMENT PRODUCTS,SHREECEM,EQ,INE070A01015 +Shriram City Union Finance Ltd.,FINANCIAL SERVICES,SHRIRAMCIT,EQ,INE722A01011 +Shriram Transport Finance Co. Ltd.,FINANCIAL SERVICES,SRTRANSFIN,EQ,INE721A01013 +Siemens Ltd.,INDUSTRIAL MANUFACTURING,SIEMENS,EQ,INE003A01024 +Sobha Ltd.,CONSTRUCTION,SOBHA,EQ,INE671H01015 +Solar Industries India Ltd.,CHEMICALS,SOLARINDS,EQ,INE343H01029 +Solara Active Pharma Sciences Ltd.,PHARMA,SOLARA,EQ,INE624Z01016 +Sonata Software Ltd.,IT,SONATSOFTW,EQ,INE269A01021 +Spandana Sphoorty Financial Ltd.,FINANCIAL SERVICES,SPANDANA,EQ,INE572J01011 +Spicejet Ltd.,SERVICES,SPICEJET,EQ,INE285B01017 +Star Cement Ltd.,CEMENT & CEMENT PRODUCTS,STARCEMENT,EQ,INE460H01021 +State Bank of India,FINANCIAL SERVICES,SBIN,EQ,INE062A01020 +Steel Authority of India Ltd.,METALS,SAIL,EQ,INE114A01011 +Sterling And Wilson Solar Ltd.,CONSTRUCTION,SWSOLAR,EQ,INE00M201021 +Sterlite Technologies Ltd.,TELECOM,STLTECH,EQ,INE089C01029 +Strides Pharma Science Ltd.,PHARMA,STAR,EQ,INE939A01011 +Sudarshan Chemical Industries Ltd.,CHEMICALS,SUDARSCHEM,EQ,INE659A01023 +Sumitomo Chemical India Ltd.,FERTILISERS & PESTICIDES,SUMICHEM,EQ,INE258G01013 +Sun Pharma Advanced Research Company Ltd.,PHARMA,SPARC,EQ,INE232I01014 +Sun Pharmaceutical Industries Ltd.,PHARMA,SUNPHARMA,EQ,INE044A01036 +Sun TV Network Ltd.,MEDIA ENTERTAINMENT & PUBLICATION,SUNTV,EQ,INE424H01027 +Sundaram Clayton Ltd.,AUTOMOBILE,SUNCLAYLTD,EQ,INE105A01035 +Sundaram Finance Ltd.,FINANCIAL SERVICES,SUNDARMFIN,EQ,INE660A01013 +Sundram Fasteners Ltd.,AUTOMOBILE,SUNDRMFAST,EQ,INE387A01021 +Sunteck Realty Ltd.,CONSTRUCTION,SUNTECK,EQ,INE805D01034 +Suprajit Engineering Ltd.,AUTOMOBILE,SUPRAJIT,EQ,INE399C01030 +Supreme Industries Ltd.,INDUSTRIAL MANUFACTURING,SUPREMEIND,EQ,INE195A01028 +Supreme Petrochem Ltd.,CHEMICALS,SUPPETRO,EQ,INE663A01017 +Suven Pharmaceuticals Ltd.,PHARMA,SUVENPHAR,EQ,INE03QK01018 +Suzlon Energy Ltd.,INDUSTRIAL MANUFACTURING,SUZLON,EQ,INE040H01021 +Swan Energy Ltd.,TEXTILES,SWANENERGY,EQ,INE665A01038 +Symphony Ltd.,CONSUMER GOODS,SYMPHONY,EQ,INE225D01027 +Syngene International Ltd.,HEALTHCARE SERVICES,SYNGENE,EQ,INE398R01022 +TCI Express Ltd.,SERVICES,TCIEXP,EQ,INE586V01016 +TCNS Clothing Co. Ltd.,TEXTILES,TCNSBRANDS,EQ,INE778U01029 +TTK Prestige Ltd.,CONSUMER GOODS,TTKPRESTIG,EQ,INE690A01010 +TV18 Broadcast Ltd.,MEDIA ENTERTAINMENT & PUBLICATION,TV18BRDCST,EQ,INE886H01027 +TVS Motor Company Ltd.,AUTOMOBILE,TVSMOTOR,EQ,INE494B01023 +Tanla Platforms Ltd.,IT,TANLA,BE,INE483C01032 +Tasty Bite Eatables Ltd.,CONSUMER GOODS,TASTYBITE,EQ,INE488B01017 +Tata Chemicals Ltd.,CHEMICALS,TATACHEM,EQ,INE092A01019 +Tata Coffee Ltd.,CONSUMER GOODS,TATACOFFEE,EQ,INE493A01027 +Tata Communications Ltd.,TELECOM,TATACOMM,EQ,INE151A01013 +Tata Consultancy Services Ltd.,IT,TCS,EQ,INE467B01029 +Tata Consumer Products Ltd.,CONSUMER GOODS,TATACONSUM,EQ,INE192A01025 +Tata Elxsi Ltd.,IT,TATAELXSI,EQ,INE670A01012 +Tata Investment Corporation Ltd.,FINANCIAL SERVICES,TATAINVEST,EQ,INE672A01018 +Tata Motors Ltd DVR,AUTOMOBILE,TATAMTRDVR,EQ,IN9155A01020 +Tata Motors Ltd.,AUTOMOBILE,TATAMOTORS,EQ,INE155A01022 +Tata Power Co. Ltd.,POWER,TATAPOWER,EQ,INE245A01021 +Tata Steel Ltd.,METALS,TATASTEEL,EQ,INE081A01012 +Teamlease Services Ltd.,SERVICES,TEAMLEASE,EQ,INE985S01024 +Tech Mahindra Ltd.,IT,TECHM,EQ,INE669C01036 +The New India Assurance Company Ltd.,FINANCIAL SERVICES,NIACL,EQ,INE470Y01017 +The Ramco Cements Ltd.,CEMENT & CEMENT PRODUCTS,RAMCOCEM,EQ,INE331A01037 +Thermax Ltd.,INDUSTRIAL MANUFACTURING,THERMAX,EQ,INE152A01029 +Thyrocare Technologies Ltd.,HEALTHCARE SERVICES,THYROCARE,EQ,INE594H01019 +Timken India Ltd.,INDUSTRIAL MANUFACTURING,TIMKEN,EQ,INE325A01013 +Titan Company Ltd.,CONSUMER GOODS,TITAN,EQ,INE280A01028 +Torrent Pharmaceuticals Ltd.,PHARMA,TORNTPHARM,EQ,INE685A01028 +Torrent Power Ltd.,POWER,TORNTPOWER,EQ,INE813H01021 +Trent Ltd.,CONSUMER SERVICES,TRENT,EQ,INE849A01020 +Trident Ltd.,TEXTILES,TRIDENT,EQ,INE064C01022 +Triveni Turbine Ltd.,INDUSTRIAL MANUFACTURING,TRITURBINE,EQ,INE152M01016 +Tube Investments of India Ltd.,AUTOMOBILE,TIINDIA,EQ,INE974X01010 +UCO Bank,FINANCIAL SERVICES,UCOBANK,EQ,INE691A01018 +UFLEX Ltd.,INDUSTRIAL MANUFACTURING,UFLEX,EQ,INE516A01017 +UPL Ltd.,FERTILISERS & PESTICIDES,UPL,EQ,INE628A01036 +UTI Asset Management Company Ltd.,FINANCIAL SERVICES,UTIAMC,EQ,INE094J01016 +Ujjivan Financial Services Ltd.,FINANCIAL SERVICES,UJJIVAN,EQ,INE334L01012 +Ujjivan Small Finance Bank Ltd.,FINANCIAL SERVICES,UJJIVANSFB,EQ,INE551W01018 +UltraTech Cement Ltd.,CEMENT & CEMENT PRODUCTS,ULTRACEMCO,EQ,INE481G01011 +Union Bank of India,FINANCIAL SERVICES,UNIONBANK,EQ,INE692A01016 +United Breweries Ltd.,CONSUMER GOODS,UBL,EQ,INE686F01025 +United Spirits Ltd.,CONSUMER GOODS,MCDOWELL-N,EQ,INE854D01024 +V-Guard Industries Ltd.,CONSUMER GOODS,VGUARD,EQ,INE951I01027 +V-Mart Retail Ltd.,CONSUMER SERVICES,VMART,EQ,INE665J01013 +V.I.P. Industries Ltd.,CONSUMER GOODS,VIPIND,EQ,INE054A01027 +VST Industries Ltd.,CONSUMER GOODS,VSTIND,EQ,INE710A01016 +Vaibhav Global Ltd.,CONSUMER SERVICES,VAIBHAVGBL,EQ,INE884A01027 +Vakrangee Ltd.,IT,VAKRANGEE,EQ,INE051B01021 +Valiant Organics Ltd.,CHEMICALS,VALIANTORG,EQ,INE565V01010 +Vardhman Textiles Ltd.,TEXTILES,VTL,EQ,INE825A01012 +Varroc Engineering Ltd.,AUTOMOBILE,VARROC,EQ,INE665L01035 +Varun Beverages Ltd.,CONSUMER GOODS,VBL,EQ,INE200M01013 +Vedanta Ltd.,METALS,VEDL,EQ,INE205A01025 +Venky's (India) Ltd.,CONSUMER GOODS,VENKEYS,EQ,INE398A01010 +Vinati Organics Ltd.,CHEMICALS,VINATIORGA,EQ,INE410B01037 +Vodafone Idea Ltd.,TELECOM,IDEA,EQ,INE669E01016 +Voltas Ltd.,CONSUMER GOODS,VOLTAS,EQ,INE226A01021 +WABCO India Ltd.,AUTOMOBILE,WABCOINDIA,EQ,INE342J01019 +Welspun Corp Ltd.,METALS,WELCORP,EQ,INE191B01025 +Welspun India Ltd.,TEXTILES,WELSPUNIND,EQ,INE192B01031 +Westlife Development Ltd.,CONSUMER SERVICES,WESTLIFE,EQ,INE274F01020 +Whirlpool of India Ltd.,CONSUMER GOODS,WHIRLPOOL,EQ,INE716A01013 +Wipro Ltd.,IT,WIPRO,EQ,INE075A01022 +Wockhardt Ltd.,PHARMA,WOCKPHARMA,EQ,INE049B01025 +Yes Bank Ltd.,FINANCIAL SERVICES,YESBANK,EQ,INE528G01035 +Zee Entertainment Enterprises Ltd.,MEDIA ENTERTAINMENT & PUBLICATION,ZEEL,EQ,INE256A01028 +Zensar Technolgies Ltd.,IT,ZENSARTECH,EQ,INE520A01027 +Zydus Wellness Ltd.,CONSUMER GOODS,ZYDUSWELL,EQ,INE768C01010 +eClerx Services Ltd.,IT,ECLERX,BE,INE738I01010 diff --git a/scripts/Fetching trending stocks using nlp/data/ind_nifty50list.csv b/scripts/Fetching trending stocks using nlp/data/ind_nifty50list.csv new file mode 100644 index 0000000..f418a3d --- /dev/null +++ b/scripts/Fetching trending stocks using nlp/data/ind_nifty50list.csv @@ -0,0 +1,51 @@ +Company Name,Industry,Symbol,Series,ISIN Code +Adani Ports and Special Economic Zone Ltd.,SERVICES,ADANIPORTS,EQ,INE742F01042 +Asian Paints Ltd.,CONSUMER GOODS,ASIANPAINT,EQ,INE021A01026 +Axis Bank Ltd.,FINANCIAL SERVICES,AXISBANK,EQ,INE238A01034 +Bajaj Auto Ltd.,AUTOMOBILE,BAJAJ-AUTO,EQ,INE917I01010 +Bajaj Finance Ltd.,FINANCIAL SERVICES,BAJFINANCE,EQ,INE296A01024 +Bajaj Finserv Ltd.,FINANCIAL SERVICES,BAJAJFINSV,EQ,INE918I01018 +Bharat Petroleum Corporation Ltd.,OIL & GAS,BPCL,EQ,INE029A01011 +Bharti Airtel Ltd.,TELECOM,BHARTIARTL,EQ,INE397D01024 +Britannia Industries Ltd.,CONSUMER GOODS,BRITANNIA,EQ,INE216A01030 +Cipla Ltd.,PHARMA,CIPLA,EQ,INE059A01026 +Coal India Ltd.,METALS,COALINDIA,EQ,INE522F01014 +Divi's Laboratories Ltd.,PHARMA,DIVISLAB,EQ,INE361B01024 +Dr. Reddy's Laboratories Ltd.,PHARMA,DRREDDY,EQ,INE089A01023 +Eicher Motors Ltd.,AUTOMOBILE,EICHERMOT,EQ,INE066A01021 +Grasim Industries Ltd.,CEMENT & CEMENT PRODUCTS,GRASIM,EQ,INE047A01021 +HCL Technologies Ltd.,IT,HCLTECH,EQ,INE860A01027 +HDFC Bank Ltd.,FINANCIAL SERVICES,HDFCBANK,EQ,INE040A01034 +HDFC Life Insurance Company Ltd.,FINANCIAL SERVICES,HDFCLIFE,EQ,INE795G01014 +Hero MotoCorp Ltd.,AUTOMOBILE,HEROMOTOCO,EQ,INE158A01026 +Hindalco Industries Ltd.,METALS,HINDALCO,EQ,INE038A01020 +Hindustan Unilever Ltd.,CONSUMER GOODS,HINDUNILVR,EQ,INE030A01027 +Housing Development Finance Corporation Ltd.,FINANCIAL SERVICES,HDFC,EQ,INE001A01036 +ICICI Bank Ltd.,FINANCIAL SERVICES,ICICIBANK,EQ,INE090A01021 +ITC Ltd.,CONSUMER GOODS,ITC,EQ,INE154A01025 +Indian Oil Corporation Ltd.,OIL & GAS,IOC,EQ,INE242A01010 +IndusInd Bank Ltd.,FINANCIAL SERVICES,INDUSINDBK,EQ,INE095A01012 +Infosys Ltd.,IT,INFY,EQ,INE009A01021 +JSW Steel Ltd.,METALS,JSWSTEEL,EQ,INE019A01038 +Kotak Mahindra Bank Ltd.,FINANCIAL SERVICES,KOTAKBANK,EQ,INE237A01028 +Larsen & Toubro Ltd.,CONSTRUCTION,LT,EQ,INE018A01030 +Mahindra & Mahindra Ltd.,AUTOMOBILE,M&M,EQ,INE101A01026 +Maruti Suzuki India Ltd.,AUTOMOBILE,MARUTI,EQ,INE585B01010 +NTPC Ltd.,POWER,NTPC,EQ,INE733E01010 +Nestle India Ltd.,CONSUMER GOODS,NESTLEIND,EQ,INE239A01016 +Oil & Natural Gas Corporation Ltd.,OIL & GAS,ONGC,EQ,INE213A01029 +Power Grid Corporation of India Ltd.,POWER,POWERGRID,EQ,INE752E01010 +Reliance Industries Ltd.,OIL & GAS,RELIANCE,EQ,INE002A01018 +SBI Life Insurance Company Ltd.,FINANCIAL SERVICES,SBILIFE,EQ,INE123W01016 +Shree Cement Ltd.,CEMENT & CEMENT PRODUCTS,SHREECEM,EQ,INE070A01015 +State Bank of India,FINANCIAL SERVICES,SBIN,EQ,INE062A01020 +Sun Pharmaceutical Industries Ltd.,PHARMA,SUNPHARMA,EQ,INE044A01036 +Tata Consultancy Services Ltd.,IT,TCS,EQ,INE467B01029 +Tata Consumer Products Ltd.,CONSUMER GOODS,TATACONSUM,EQ,INE192A01025 +Tata Motors Ltd.,AUTOMOBILE,TATAMOTORS,EQ,INE155A01022 +Tata Steel Ltd.,METALS,TATASTEEL,EQ,INE081A01012 +Tech Mahindra Ltd.,IT,TECHM,EQ,INE669C01036 +Titan Company Ltd.,CONSUMER GOODS,TITAN,EQ,INE280A01028 +UPL Ltd.,FERTILISERS & PESTICIDES,UPL,EQ,INE628A01036 +UltraTech Cement Ltd.,CEMENT & CEMENT PRODUCTS,ULTRACEMCO,EQ,INE481G01011 +Wipro Ltd.,IT,WIPRO,EQ,INE075A01022 diff --git a/scripts/Fetching trending stocks using nlp/requirements.txt b/scripts/Fetching trending stocks using nlp/requirements.txt new file mode 100644 index 0000000..f589ab7 --- /dev/null +++ b/scripts/Fetching trending stocks using nlp/requirements.txt @@ -0,0 +1,4 @@ +spacy - en_core_web_sm model +requests +streamlit +yfinance \ No newline at end of file From 998ec863fca455c5f309df1d1c5c88088fd7a80f Mon Sep 17 00:00:00 2001 From: Vishist16 <101823906+Vishist16@users.noreply.github.com> Date: Tue, 1 Nov 2022 00:00:42 +0530 Subject: [PATCH 6/7] Create Readme.md --- scripts/Fetching trending stocks using nlp/Readme.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 scripts/Fetching trending stocks using nlp/Readme.md diff --git a/scripts/Fetching trending stocks using nlp/Readme.md b/scripts/Fetching trending stocks using nlp/Readme.md new file mode 100644 index 0000000..a0b1c33 --- /dev/null +++ b/scripts/Fetching trending stocks using nlp/Readme.md @@ -0,0 +1,5 @@ +## How to run the app +To run the app, simply open the cmd in the directory and run +command - streamlit run app.py + +Note: It can take 5-10 mins to load and show the trending stocks. From 78aa93c8633100f703c41ccb8fe53927c7d66e98 Mon Sep 17 00:00:00 2001 From: Vishist16 <101823906+Vishist16@users.noreply.github.com> Date: Tue, 1 Nov 2022 00:20:07 +0530 Subject: [PATCH 7/7] Add files via upload --- .../sentiment_analysis.ipynb | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 scripts/Simple Sentiment analysis using spacy/sentiment_analysis.ipynb diff --git a/scripts/Simple Sentiment analysis using spacy/sentiment_analysis.ipynb b/scripts/Simple Sentiment analysis using spacy/sentiment_analysis.ipynb new file mode 100644 index 0000000..d6f3c7d --- /dev/null +++ b/scripts/Simple Sentiment analysis using spacy/sentiment_analysis.ipynb @@ -0,0 +1,138 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Cd5CzPSIVspD", + "outputId": "0edab2ce-0706-440c-be56-752051c6095b" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", + "Collecting spacytextblob\n", + " Downloading spacytextblob-4.0.0-py3-none-any.whl (4.5 kB)\n", + "Requirement already satisfied: spacy<4.0,>=3.0 in /usr/local/lib/python3.7/dist-packages (from spacytextblob) (3.4.2)\n", + "Requirement already satisfied: textblob<0.16.0,>=0.15.3 in /usr/local/lib/python3.7/dist-packages (from spacytextblob) (0.15.3)\n", + "Requirement already satisfied: typer<0.5.0,>=0.3.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (0.4.2)\n", + "Requirement already satisfied: wasabi<1.1.0,>=0.9.1 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (0.10.1)\n", + "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (2.0.7)\n", + "Requirement already satisfied: typing-extensions<4.2.0,>=3.7.4 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (4.1.1)\n", + "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (2.4.5)\n", + "Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (57.4.0)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (21.3)\n", + "Requirement already satisfied: pathy>=0.3.5 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (0.6.2)\n", + "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (1.0.9)\n", + "Requirement already satisfied: jinja2 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (2.11.3)\n", + "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<1.11.0,>=1.7.4 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (1.10.2)\n", + "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (1.0.3)\n", + "Requirement already satisfied: thinc<8.2.0,>=8.1.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (8.1.5)\n", + "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (2.0.8)\n", + "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (2.23.0)\n", + "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (3.3.0)\n", + "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (4.64.1)\n", + "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.10 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (3.0.10)\n", + "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (3.0.8)\n", + "Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.7/dist-packages (from spacy<4.0,>=3.0->spacytextblob) (1.21.6)\n", + "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from catalogue<2.1.0,>=2.0.6->spacy<4.0,>=3.0->spacytextblob) (3.10.0)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->spacy<4.0,>=3.0->spacytextblob) (3.0.9)\n", + "Requirement already satisfied: smart-open<6.0.0,>=5.2.1 in /usr/local/lib/python3.7/dist-packages (from pathy>=0.3.5->spacy<4.0,>=3.0->spacytextblob) (5.2.1)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0,>=3.0->spacytextblob) (2.10)\n", + "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0,>=3.0->spacytextblob) (1.24.3)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0,>=3.0->spacytextblob) (2022.9.24)\n", + "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.0,>=3.0->spacytextblob) (3.0.4)\n", + "Requirement already satisfied: nltk>=3.1 in /usr/local/lib/python3.7/dist-packages (from textblob<0.16.0,>=0.15.3->spacytextblob) (3.7)\n", + "Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from nltk>=3.1->textblob<0.16.0,>=0.15.3->spacytextblob) (1.2.0)\n", + "Requirement already satisfied: click in /usr/local/lib/python3.7/dist-packages (from nltk>=3.1->textblob<0.16.0,>=0.15.3->spacytextblob) (7.1.2)\n", + "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.7/dist-packages (from nltk>=3.1->textblob<0.16.0,>=0.15.3->spacytextblob) (2022.6.2)\n", + "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.7/dist-packages (from thinc<8.2.0,>=8.1.0->spacy<4.0,>=3.0->spacytextblob) (0.7.9)\n", + "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.7/dist-packages (from thinc<8.2.0,>=8.1.0->spacy<4.0,>=3.0->spacytextblob) (0.0.3)\n", + "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.7/dist-packages (from jinja2->spacy<4.0,>=3.0->spacytextblob) (2.0.1)\n", + "Installing collected packages: spacytextblob\n", + "Successfully installed spacytextblob-4.0.0\n" + ] + } + ], + "source": [ + "import spacy\n", + "!pip install spacytextblob" + ] + }, + { + "cell_type": "code", + "source": [ + "# Sample Texts\n", + "text_1 = \"I enjoy learning new stuff\"\n", + "text_2 = \"Yesterday was an amazing day\"\n", + "text_3 = \"The service at that store is bad\"\n", + "\n", + "texts = [text_1, text_2, text_3]" + ], + "metadata": { + "id": "9MhsKRgKXWWV" + }, + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import spacy\n", + "from spacytextblob.spacytextblob import SpacyTextBlob\n", + "nlp = spacy.load(\"en_core_web_sm\")\n", + "nlp.add_pipe(\"spacytextblob\")\n", + "\n", + "for text in texts:\n", + " doc = nlp(text)\n", + " print(f\"Text: {text}\\nSentiment_Analysis: {doc._.blob.polarity}, Subjectivity_Analysis: {doc._.blob.subjectivity}\")\n", + " print(\"=====================================================\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "MBNCVNjgXFxd", + "outputId": "29a4f7c8-fa9b-4bbd-beb9-f8c2d798bd05" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Text: I enjoy learning new stuff\n", + "Sentiment_Analysis: 0.2681818181818182, Subjectivity_Analysis: 0.4772727272727273\n", + "=====================================================\n", + "Text: Yesterday was an amazing day\n", + "Sentiment_Analysis: 0.6000000000000001, Subjectivity_Analysis: 0.9\n", + "=====================================================\n", + "Text: The service at that store is bad\n", + "Sentiment_Analysis: -0.6999999999999998, Subjectivity_Analysis: 0.6666666666666666\n", + "=====================================================\n" + ] + } + ] + } + ] +} \ No newline at end of file