Statistical analysis of video game sales data with preprocessing, visualization, and predictive modeling
Project description
Sales Forecast ML Package
A Python package for reading, preprocessing, visualizing, and modeling sales data. It provides utilities to:
- Load tabular sales data from CSV (
read.read_data) - Clean and engineer features (
preprocess.process_data,preprocess.prepare_data) - Visualize sales distributions by genre or platform (
viz.print_genre_distribution,viz.print_platform_distribution) - Train and tune a Random Forest model and generate predictions (
model.rf_fit,model.predict)
Overview
This package is designed to help you work with video game sales and activity data. It includes tools for reading raw CSV files, preprocessing and feature engineering, visualizing distributions, and building predictive models using Random Forest.
Features
- CSV Reader: Reads a CSV file and applies basic type cleaning for year, drops an extraneous index column.
- Data Processing: Aggregates per
Nameand combines sales/metadata, removes duplicates. - Feature Preparation: Multi-label binarization for
PlatformandGenre; concatenates with numeric predictors, drops missingYear. - Visualization:
print_genre_distribution(sales, genre, area): Histogram of sales for a given genre and region.print_platform_distribution(sales, platform, area): Histogram of sales for a given platform and region.
- Modeling: Grid search over Random Forest hyperparameters; evaluation prints R², RMSE (log scale), and top feature importances.
- Prediction: Scales inputs consistently and returns predictions on the original scale via
expm1.
Included Datasets
The package includes two sample datasets in the data/ directory for quick experimentation:
data/vgsales.csv: Raw sales data with columns likeName,Platform,Year,Genre,Publisher, regional sales, andGlobal_Sales.data/game_data.csv: Steam activity metrics (all_time_peak,last_30_day_avg) for integration with sales data aggrigated with the vgsales dataset.
Use get_data_path(filename) from read.py to access these files programmatically.
Installation
pip install -U pip
pip install -U scikit-learn pandas numpy matplotlib seaborn
# If packaged for PyPI:
# pip install your-package-name
Quickstart
from your_package import (
read_data, process_data, prepare_data,
print_genre_distribution, print_platform_distribution,
rf_fit, predict
)
# 1) Read
data = read_data("data/sales.csv")
# 2) Process & Prepare
sales_combined = process_data(data)
final_df = prepare_data(sales_combined)
# 3) Visualize
print_genre_distribution(data, genre="Action", area="Global_Sales")
print_platform_distribution(data, platform="PS4", area="Global_Sales")
# 4) Train model
best_model = rf_fit(final_df, area="Global_Sales")
# 5) Predict
new_data = final_df.drop(columns=["Global_Sales"]).iloc[:5]
preds = predict(best_model, area="Global_Sales", new_data=new_data)
print(preds)
API Reference
Top-Level Functions
read_data(file_path)process_data(df)prepare_data(df)print_genre_distribution(sales, genre, area)print_platform_distribution(sales, platform, area)rf_fit(final_df, area)predict(model, area, new_data)
Dependencies
- pandas
- numpy
- scikit-learn
- matplotlib
- seaborn
Contributing
Issues and PRs are welcome. Please include reproducible examples and data schema.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stat386_final-0.1.6.tar.gz.
File metadata
- Download URL: stat386_final-0.1.6.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74c73650f0e8e96d02c558373c1a7e65a10a425c0c11cc633bf83508607d02ba
|
|
| MD5 |
148517ade619ddf8616fc65289be9279
|
|
| BLAKE2b-256 |
561f1319616cdb94c0f59833a07949042fe582ed8035a4a76ececbb1fbae153e
|
File details
Details for the file stat386_final-0.1.6-py3-none-any.whl.
File metadata
- Download URL: stat386_final-0.1.6-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c7653869ce63bd4928634a67c1280a334efcf5aa290cf06323b526996167f89
|
|
| MD5 |
62df1149c4724b6e549db70ba594927a
|
|
| BLAKE2b-256 |
cc22192b0d6382d99c21655c628c7565fe882afd4e9bd67f67792fc50308f254
|