{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/anaconda3/envs/nnets/lib/python3.7/site-packages/smart_open/ssh.py:34: UserWarning: paramiko missing, opening SSH/SCP/SFTP paths will be disabled. `pip install paramiko` to suppress\n",
" warnings.warn('paramiko missing, opening SSH/SCP/SFTP paths will be disabled. `pip install paramiko` to suppress')\n",
"WARNING:root:tensorflow or tensorflow-hub not found, loading tfhub models won't work\n"
]
}
],
"source": [
"import os\n",
"import pandas as pd\n",
"import numpy as np\n",
"import seaborn as sns\n",
"import scipy\n",
"\n",
"import sklearn\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"import scikitplot\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"\n",
"import mlutil"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"File ‘../data/steam_reviews.csv’ already there; not retrieving.\r\n"
]
}
],
"source": [
"!wget -nc https://query.data.world/s/plpwlqfrn2xqis5wvpnd6uucus76dq -O ../data/steam_reviews.csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Metacritic game reviews\n",
"\n",
"Data from [kaggle dataset](https://www.kaggle.com/dahlia25/metacritic-video-game-comments)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"DATA_PATH = os.path.abspath('../data')\n",
"metacritic_game_info_path = os.path.join(DATA_PATH, 'metacritic_game_info.csv')\n",
"metacritic_game_comments_path = os.path.join(DATA_PATH, 'metacritic_game_user_comments.csv')\n",
"steam_review_path = os.path.join(DATA_PATH, 'steam_reviews.csv')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"if not os.path.exists(os.path.abspath(metacritic_game_info_path)):\n",
" !unzip ../data/metacritic-video-game-comments.zip -d ../data\n",
" !chmod +rwx ../data/*csv "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def clean_game_dfs(game_info_df, game_comments_df):\n",
" game_info_df = game_info_df[game_info_df['Metascore'] != 'not specified']\n",
" game_info_df = game_info_df[game_info_df['Avg_Userscore'] != 'not specified']\n",
" game_info_df = game_info_df[game_info_df['Avg_Userscore'] != 'tbd']\n",
" \n",
" for col in ['Metascore', 'Avg_Userscore', 'Year']:\n",
" game_info_df[col] = game_info_df[col].astype('float')\n",
" pc_game_info_df = game_info_df[game_info_df['Platform'] == 'PC']\n",
" pc_game_comments_df = game_comments_df[game_comments_df['Title'].isin(pc_game_info_df['Title'])]\n",
" return pc_game_info_df, pc_game_comments_df"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"game_info_df = pd.read_csv(metacritic_game_info_path, index_col='Unnamed: 0')\n",
"game_comments_df = pd.read_csv(metacritic_game_comments_path, index_col='Unnamed: 0')\n",
"\n",
"pc_game_info_df, pc_game_comments_df = clean_game_dfs(game_info_df, game_comments_df)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Title | \n",
" Year | \n",
" Publisher | \n",
" Genre | \n",
" Platform | \n",
" Metascore | \n",
" Avg_Userscore | \n",
" No_Players | \n",
"
\n",
" \n",
" \n",
" \n",
" 20 | \n",
" Half-Life 2 | \n",
" 2004.0 | \n",
" ValveSoftware | \n",
" Action;Shooter;Shooter;First-Person;Sci-Fi;Sci... | \n",
" PC | \n",
" 96.0 | \n",
" 9.1 | \n",
" No Online Multiplayer | \n",
"
\n",
" \n",
" 21 | \n",
" Grand Theft Auto V | \n",
" 2015.0 | \n",
" RockstarNorth | \n",
" Modern;Action Adventure;Open-World | \n",
" PC | \n",
" 96.0 | \n",
" 7.7 | \n",
" Up to 32 | \n",
"
\n",
" \n",
" 28 | \n",
" The Orange Box | \n",
" 2007.0 | \n",
" ValveSoftware | \n",
" Action;Miscellaneous;Shooter;Compilation;First... | \n",
" PC | \n",
" 96.0 | \n",
" 9.2 | \n",
" 16 Online | \n",
"
\n",
" \n",
" 34 | \n",
" Half-Life | \n",
" 1998.0 | \n",
" ValveSoftware | \n",
" Action;Shooter;Shooter;First-Person;Sci-Fi;Sci... | \n",
" PC | \n",
" 96.0 | \n",
" 9.1 | \n",
" 1-32 | \n",
"
\n",
" \n",
" 38 | \n",
" BioShock | \n",
" 2007.0 | \n",
" IrrationalGames,2KMarin | \n",
" Action;Shooter;Shooter;First-Person;Sci-Fi;Sci... | \n",
" PC | \n",
" 96.0 | \n",
" 8.5 | \n",
" No Online Multiplayer | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Title Year Publisher \\\n",
"20 Half-Life 2 2004.0 ValveSoftware \n",
"21 Grand Theft Auto V 2015.0 RockstarNorth \n",
"28 The Orange Box 2007.0 ValveSoftware \n",
"34 Half-Life 1998.0 ValveSoftware \n",
"38 BioShock 2007.0 IrrationalGames,2KMarin \n",
"\n",
" Genre Platform Metascore \\\n",
"20 Action;Shooter;Shooter;First-Person;Sci-Fi;Sci... PC 96.0 \n",
"21 Modern;Action Adventure;Open-World PC 96.0 \n",
"28 Action;Miscellaneous;Shooter;Compilation;First... PC 96.0 \n",
"34 Action;Shooter;Shooter;First-Person;Sci-Fi;Sci... PC 96.0 \n",
"38 Action;Shooter;Shooter;First-Person;Sci-Fi;Sci... PC 96.0 \n",
"\n",
" Avg_Userscore No_Players \n",
"20 9.1 No Online Multiplayer \n",
"21 7.7 Up to 32 \n",
"28 9.2 16 Online \n",
"34 9.1 1-32 \n",
"38 8.5 No Online Multiplayer "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pc_game_info_df.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"pc_game_info_df['Genre'].str.split(\";\").apply(len).plot.hist()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Int64Index: 1368 entries, 20 to 4995\n",
"Data columns (total 8 columns):\n",
"Title 1368 non-null object\n",
"Year 1368 non-null float64\n",
"Publisher 1368 non-null object\n",
"Genre 1368 non-null object\n",
"Platform 1368 non-null object\n",
"Metascore 1368 non-null float64\n",
"Avg_Userscore 1368 non-null float64\n",
"No_Players 1367 non-null object\n",
"dtypes: float64(3), object(5)\n",
"memory usage: 96.2+ KB\n"
]
}
],
"source": [
"pc_game_info_df.info()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(187517, 5)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pc_game_comments_df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Correlation between user and metascore"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.21381816860581535"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.corrcoef(pc_game_info_df['Avg_Userscore'], pc_game_info_df['Metascore'])[0,1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Spearman rank correlation coefficient"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SpearmanrResult(correlation=0.2678004214955681, pvalue=6.729732567969086e-24)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"scipy.stats.spearmanr(pc_game_info_df['Avg_Userscore'], pc_game_info_df['Metascore'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Average user vs metascore"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.pairplot(pc_game_info_df[['Avg_Userscore', 'Metascore']]);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Steam reviews"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"steam_reviews_df = pd.read_csv(steam_review_path)\n",
"genre_columns = [col for col in steam_reviews_df if 'Genre' in col]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 13357 entries, 0 to 13356\n",
"Data columns (total 78 columns):\n",
"QueryID 13357 non-null int64\n",
"ResponseID 13357 non-null int64\n",
"QueryName 13356 non-null object\n",
"ResponseName 13357 non-null object\n",
"ReleaseDate 13357 non-null object\n",
"RequiredAge 13357 non-null int64\n",
"DemoCount 13357 non-null int64\n",
"DeveloperCount 13357 non-null int64\n",
"DLCCount 13357 non-null int64\n",
"Metacritic 13357 non-null int64\n",
"MovieCount 13357 non-null int64\n",
"PackageCount 13357 non-null int64\n",
"RecommendationCount 13357 non-null int64\n",
"PublisherCount 13357 non-null int64\n",
"ScreenshotCount 13357 non-null int64\n",
"SteamSpyOwners 13357 non-null int64\n",
"SteamSpyOwnersVariance 13357 non-null int64\n",
"SteamSpyPlayersEstimate 13357 non-null int64\n",
"SteamSpyPlayersVariance 13357 non-null int64\n",
"AchievementCount 13357 non-null int64\n",
"AchievementHighlightedCount 13357 non-null int64\n",
"ControllerSupport 13357 non-null bool\n",
"IsFree 13357 non-null bool\n",
"FreeVerAvail 13357 non-null bool\n",
"PurchaseAvail 13357 non-null bool\n",
"SubscriptionAvail 13357 non-null bool\n",
"PlatformWindows 13357 non-null bool\n",
"PlatformLinux 13357 non-null bool\n",
"PlatformMac 13357 non-null bool\n",
"PCReqsHaveMin 13357 non-null bool\n",
"PCReqsHaveRec 13357 non-null bool\n",
"LinuxReqsHaveMin 13357 non-null bool\n",
"LinuxReqsHaveRec 13357 non-null bool\n",
"MacReqsHaveMin 13357 non-null bool\n",
"MacReqsHaveRec 13357 non-null bool\n",
"CategorySinglePlayer 13357 non-null bool\n",
"CategoryMultiplayer 13357 non-null bool\n",
"CategoryCoop 13357 non-null bool\n",
"CategoryMMO 13357 non-null bool\n",
"CategoryInAppPurchase 13357 non-null bool\n",
"CategoryIncludeSrcSDK 13357 non-null bool\n",
"CategoryIncludeLevelEditor 13357 non-null bool\n",
"CategoryVRSupport 13357 non-null bool\n",
"GenreIsNonGame 13357 non-null bool\n",
"GenreIsIndie 13357 non-null bool\n",
"GenreIsAction 13357 non-null bool\n",
"GenreIsAdventure 13357 non-null bool\n",
"GenreIsCasual 13357 non-null bool\n",
"GenreIsStrategy 13357 non-null bool\n",
"GenreIsRPG 13357 non-null bool\n",
"GenreIsSimulation 13357 non-null bool\n",
"GenreIsEarlyAccess 13357 non-null bool\n",
"GenreIsFreeToPlay 13357 non-null bool\n",
"GenreIsSports 13357 non-null bool\n",
"GenreIsRacing 13357 non-null bool\n",
"GenreIsMassivelyMultiplayer 13357 non-null bool\n",
"PriceCurrency 13357 non-null object\n",
"PriceInitial 13357 non-null float64\n",
"PriceFinal 13357 non-null float64\n",
"SupportEmail 13355 non-null object\n",
"SupportURL 13356 non-null object\n",
"AboutText 13357 non-null object\n",
"Background 13357 non-null object\n",
"ShortDescrip 13357 non-null object\n",
"DetailedDescrip 13357 non-null object\n",
"DRMNotice 13357 non-null object\n",
"ExtUserAcctNotice 13357 non-null object\n",
"HeaderImage 13357 non-null object\n",
"LegalNotice 13356 non-null object\n",
"Reviews 13357 non-null object\n",
"SupportedLanguages 13357 non-null object\n",
"Website 13357 non-null object\n",
"PCMinReqsText 13357 non-null object\n",
"PCRecReqsText 13357 non-null object\n",
"LinuxMinReqsText 13357 non-null object\n",
"LinuxRecReqsText 13357 non-null object\n",
"MacMinReqsText 13357 non-null object\n",
"MacRecReqsText 13357 non-null object\n",
"dtypes: bool(35), float64(2), int64(18), object(23)\n",
"memory usage: 4.8+ MB\n"
]
}
],
"source": [
"steam_reviews_df.info()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" QueryID | \n",
" ResponseID | \n",
" RequiredAge | \n",
" DemoCount | \n",
" DeveloperCount | \n",
" DLCCount | \n",
" Metacritic | \n",
" MovieCount | \n",
" PackageCount | \n",
" RecommendationCount | \n",
" PublisherCount | \n",
" ScreenshotCount | \n",
" SteamSpyOwners | \n",
" SteamSpyOwnersVariance | \n",
" SteamSpyPlayersEstimate | \n",
" SteamSpyPlayersVariance | \n",
" AchievementCount | \n",
" AchievementHighlightedCount | \n",
" PriceInitial | \n",
" PriceFinal | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 1.335700e+04 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 1.335700e+04 | \n",
" 13357.000000 | \n",
" 1.335700e+04 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
" 13357.000000 | \n",
"
\n",
" \n",
" mean | \n",
" 353637.916149 | \n",
" 353471.814030 | \n",
" 0.837688 | \n",
" 0.089541 | \n",
" 1.032492 | \n",
" 0.805944 | \n",
" 12.285319 | \n",
" 1.321255 | \n",
" 1.088418 | \n",
" 1.180463e+03 | \n",
" 0.989668 | \n",
" 9.561204 | \n",
" 1.668493e+05 | \n",
" 5486.408550 | \n",
" 1.081638e+05 | \n",
" 4082.329490 | \n",
" 14.434678 | \n",
" 4.170098 | \n",
" 9.155717 | \n",
" 8.798596 | \n",
"
\n",
" \n",
" std | \n",
" 146988.380337 | \n",
" 147085.351999 | \n",
" 3.625701 | \n",
" 0.286058 | \n",
" 0.437113 | \n",
" 10.034901 | \n",
" 27.510876 | \n",
" 1.178400 | \n",
" 0.855219 | \n",
" 1.517606e+04 | \n",
" 0.336972 | \n",
" 6.442893 | \n",
" 1.127122e+06 | \n",
" 9044.093874 | \n",
" 1.006635e+06 | \n",
" 7454.869744 | \n",
" 41.467021 | \n",
" 4.831106 | \n",
" 14.345029 | \n",
" 13.606061 | \n",
"
\n",
" \n",
" min | \n",
" 10.000000 | \n",
" 10.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.000000 | \n",
" 0.000000e+00 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
"
\n",
" \n",
" 25% | \n",
" 282860.000000 | \n",
" 282640.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000e+00 | \n",
" 1.000000 | \n",
" 6.000000 | \n",
" 8.970000e+02 | \n",
" 906.000000 | \n",
" 5.370000e+02 | \n",
" 745.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 1.990000 | \n",
" 1.990000 | \n",
"
\n",
" \n",
" 50% | \n",
" 374040.000000 | \n",
" 373870.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
" 0.000000e+00 | \n",
" 1.000000 | \n",
" 8.000000 | \n",
" 9.506000e+03 | \n",
" 2551.000000 | \n",
" 4.125000e+03 | \n",
" 1717.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 5.990000 | \n",
" 5.990000 | \n",
"
\n",
" \n",
" 75% | \n",
" 465920.000000 | \n",
" 465860.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 1.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 2.000000 | \n",
" 1.000000 | \n",
" 2.430000e+02 | \n",
" 1.000000 | \n",
" 12.000000 | \n",
" 6.044100e+04 | \n",
" 6434.000000 | \n",
" 2.815800e+04 | \n",
" 4392.000000 | \n",
" 20.000000 | \n",
" 10.000000 | \n",
" 9.990000 | \n",
" 9.990000 | \n",
"
\n",
" \n",
" max | \n",
" 568150.000000 | \n",
" 568150.000000 | \n",
" 18.000000 | \n",
" 2.000000 | \n",
" 12.000000 | \n",
" 630.000000 | \n",
" 96.000000 | \n",
" 20.000000 | \n",
" 18.000000 | \n",
" 1.427633e+06 | \n",
" 4.000000 | \n",
" 114.000000 | \n",
" 9.068758e+07 | \n",
" 215972.000000 | \n",
" 9.068758e+07 | \n",
" 215972.000000 | \n",
" 1629.000000 | \n",
" 10.000000 | \n",
" 449.990000 | \n",
" 449.990000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" QueryID ResponseID RequiredAge DemoCount \\\n",
"count 13357.000000 13357.000000 13357.000000 13357.000000 \n",
"mean 353637.916149 353471.814030 0.837688 0.089541 \n",
"std 146988.380337 147085.351999 3.625701 0.286058 \n",
"min 10.000000 10.000000 0.000000 0.000000 \n",
"25% 282860.000000 282640.000000 0.000000 0.000000 \n",
"50% 374040.000000 373870.000000 0.000000 0.000000 \n",
"75% 465920.000000 465860.000000 0.000000 0.000000 \n",
"max 568150.000000 568150.000000 18.000000 2.000000 \n",
"\n",
" DeveloperCount DLCCount Metacritic MovieCount PackageCount \\\n",
"count 13357.000000 13357.000000 13357.000000 13357.000000 13357.000000 \n",
"mean 1.032492 0.805944 12.285319 1.321255 1.088418 \n",
"std 0.437113 10.034901 27.510876 1.178400 0.855219 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 1.000000 0.000000 0.000000 1.000000 1.000000 \n",
"50% 1.000000 0.000000 0.000000 1.000000 1.000000 \n",
"75% 1.000000 0.000000 0.000000 2.000000 1.000000 \n",
"max 12.000000 630.000000 96.000000 20.000000 18.000000 \n",
"\n",
" RecommendationCount PublisherCount ScreenshotCount SteamSpyOwners \\\n",
"count 1.335700e+04 13357.000000 13357.000000 1.335700e+04 \n",
"mean 1.180463e+03 0.989668 9.561204 1.668493e+05 \n",
"std 1.517606e+04 0.336972 6.442893 1.127122e+06 \n",
"min 0.000000e+00 0.000000 0.000000 0.000000e+00 \n",
"25% 0.000000e+00 1.000000 6.000000 8.970000e+02 \n",
"50% 0.000000e+00 1.000000 8.000000 9.506000e+03 \n",
"75% 2.430000e+02 1.000000 12.000000 6.044100e+04 \n",
"max 1.427633e+06 4.000000 114.000000 9.068758e+07 \n",
"\n",
" SteamSpyOwnersVariance SteamSpyPlayersEstimate \\\n",
"count 13357.000000 1.335700e+04 \n",
"mean 5486.408550 1.081638e+05 \n",
"std 9044.093874 1.006635e+06 \n",
"min 0.000000 0.000000e+00 \n",
"25% 906.000000 5.370000e+02 \n",
"50% 2551.000000 4.125000e+03 \n",
"75% 6434.000000 2.815800e+04 \n",
"max 215972.000000 9.068758e+07 \n",
"\n",
" SteamSpyPlayersVariance AchievementCount AchievementHighlightedCount \\\n",
"count 13357.000000 13357.000000 13357.000000 \n",
"mean 4082.329490 14.434678 4.170098 \n",
"std 7454.869744 41.467021 4.831106 \n",
"min 0.000000 0.000000 0.000000 \n",
"25% 745.000000 0.000000 0.000000 \n",
"50% 1717.000000 0.000000 0.000000 \n",
"75% 4392.000000 20.000000 10.000000 \n",
"max 215972.000000 1629.000000 10.000000 \n",
"\n",
" PriceInitial PriceFinal \n",
"count 13357.000000 13357.000000 \n",
"mean 9.155717 8.798596 \n",
"std 14.345029 13.606061 \n",
"min 0.000000 0.000000 \n",
"25% 1.990000 1.990000 \n",
"50% 5.990000 5.990000 \n",
"75% 9.990000 9.990000 \n",
"max 449.990000 449.990000 "
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"steam_reviews_df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Return to the Black Mesa Research Facility as one of the military specialists assigned to eliminate Gordon Freeman. Experience an entirely new episode of single player action. Meet fierce alien opponents and experiment with new weaponry. Named Game of the Year by the Academy of Interactive Arts and Sciences.'"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"steam_reviews_df['AboutText'][4]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1226"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sum(steam_reviews_df['DetailedDescrip'] != steam_reviews_df['AboutText'])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" GenreIsNonGame | \n",
" GenreIsIndie | \n",
" GenreIsAction | \n",
" GenreIsAdventure | \n",
" GenreIsCasual | \n",
" GenreIsStrategy | \n",
" GenreIsRPG | \n",
" GenreIsSimulation | \n",
" GenreIsEarlyAccess | \n",
" GenreIsFreeToPlay | \n",
" GenreIsSports | \n",
" GenreIsRacing | \n",
" GenreIsMassivelyMultiplayer | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
" 13357 | \n",
"
\n",
" \n",
" unique | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" top | \n",
" False | \n",
" True | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
" False | \n",
"
\n",
" \n",
" freq | \n",
" 13038 | \n",
" 7780 | \n",
" 7724 | \n",
" 9038 | \n",
" 9793 | \n",
" 10734 | \n",
" 11270 | \n",
" 11255 | \n",
" 11887 | \n",
" 12692 | \n",
" 12816 | \n",
" 12881 | \n",
" 12968 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" GenreIsNonGame GenreIsIndie GenreIsAction GenreIsAdventure \\\n",
"count 13357 13357 13357 13357 \n",
"unique 2 2 2 2 \n",
"top False True False False \n",
"freq 13038 7780 7724 9038 \n",
"\n",
" GenreIsCasual GenreIsStrategy GenreIsRPG GenreIsSimulation \\\n",
"count 13357 13357 13357 13357 \n",
"unique 2 2 2 2 \n",
"top False False False False \n",
"freq 9793 10734 11270 11255 \n",
"\n",
" GenreIsEarlyAccess GenreIsFreeToPlay GenreIsSports GenreIsRacing \\\n",
"count 13357 13357 13357 13357 \n",
"unique 2 2 2 2 \n",
"top False False False False \n",
"freq 11887 12692 12816 12881 \n",
"\n",
" GenreIsMassivelyMultiplayer \n",
"count 13357 \n",
"unique 2 \n",
"top False \n",
"freq 12968 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"steam_reviews_df[genre_columns].describe()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[==================================================] 100.0% 128.1/128.1MB downloaded\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:smart_open.smart_open_lib:this function is deprecated, use smart_open.open instead\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 46.7 s, sys: 4.22 s, total: 50.9 s\n",
"Wall time: 1min 31s\n"
]
}
],
"source": [
"%%time\n",
"word_embedding_vectorizer = mlutil.embeddings.WordEmbeddingsVectorizer.from_gensim_embedding_model('glove-wiki-gigaword-100')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 5.6 s, sys: 0 ns, total: 5.6 s\n",
"Wall time: 5.6 s\n"
]
}
],
"source": [
"%%time\n",
"steam_description_vectors = word_embedding_vectorizer.transform(steam_reviews_df['DetailedDescrip'])"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(13357, 100)"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"steam_description_vectors.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Genre classification using description\n",
"\n",
"Note this is multilabel classification, as games on steam can have several genres\n",
"\n",
"We'll use Random Forest algorithm as it supports mutlilabel classification out of the box"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"X = steam_description_vectors\n",
"Y = steam_reviews_df[genre_columns]\n",
"\n",
"X_train, X_test, Y_train, Y_test = sklearn.model_selection.train_test_split(X, Y, test_size=0.2)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"rf_clf = RandomForestClassifier(n_estimators=50, n_jobs=-1)\n",
"rf_clf.fit(X_train, Y_train)\n",
"\n",
"Y_test_pred = rf_clf.predict(X_test)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2672, 13)"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Y_test.shape"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"