Unlocking the Thrills of Ice Hockey Today
Ice hockey, a sport celebrated for its speed, skill, and strategy, offers fans an exhilarating experience with each match. Our platform provides the latest updates on fresh matches, ensuring you never miss a moment of the action. With expert betting predictions, we help you make informed decisions, enhancing your engagement with the sport. Dive into the world of ice hockey today with our comprehensive coverage.
Today's Top Ice Hockey Matches
Stay ahead of the game with our daily updates on the most anticipated ice hockey matches. Whether you're a seasoned fan or new to the sport, our coverage brings you closer to the ice, offering insights into team strategies, player performances, and pivotal moments that define each game.
Key Highlights
- Live scores and real-time updates
- Detailed analysis of team dynamics
- Spotlight on star players and emerging talents
Expert Betting Predictions
Our team of seasoned analysts provides expert betting predictions, leveraging data-driven insights to guide your wagers. With a focus on accuracy and reliability, we offer predictions that enhance your betting strategy and increase your chances of success.
How Our Predictions Work
- Data analysis of past performances
- Evaluation of current team form and injuries
- Consideration of head-to-head statistics
Understanding Ice Hockey Strategies
Ice hockey is a game of tactics and precision. Understanding the strategies employed by teams can significantly enhance your viewing experience. From offensive plays to defensive maneuvers, our insights delve into the intricacies of the game.
Offensive Strategies
- Puck possession and control
- Power play opportunities
- Creative passing and shooting techniques
Defensive Strategies
- Zonal vs. man-to-man defense
- Giving up goals strategically to protect leads
- Penalty kill effectiveness
The Role of Key Players
In ice hockey, individual brilliance often makes the difference between victory and defeat. Our coverage highlights key players whose performances can turn the tide in crucial matches.
All-Star Players to Watch
- Goalkeepers with remarkable save percentages
- Forwards known for their scoring prowess
- Defensemen who excel in both offense and defense
Injury Reports and Team Updates
Injuries can significantly impact team performance. Our platform provides timely updates on player injuries and team changes, helping you stay informed about factors that could influence match outcomes.
Current Injury Concerns
- Status of key players returning from injury
- Potential impact on team line-ups
- Adjustments made by coaches in response to injuries
Historical Context: Iconic Matches and Moments
Ice hockey is rich with history, featuring iconic matches and unforgettable moments. Our retrospective pieces explore these highlights, providing context to today's games.
Famous Rivalries
- The historic battles between long-standing rivals
- Moments that defined these rivalries
- Impact on current team dynamics and fan culture
Engaging with the Community: Forums and Discussions
Join our vibrant community of ice hockey enthusiasts. Engage in discussions, share your opinions, and connect with fellow fans through our forums.
Why Join Our Community?
- Diverse perspectives on matches and players
- Opportunities to participate in fan polls and quizzes
- A platform to share your own predictions and analyses
Tips for New Fans: Getting Started with Ice Hockey Today
New to ice hockey? We provide tips to help you get started, ensuring you understand the rules, appreciate the nuances of the game, and enjoy every match.
Fundamental Rules of Ice Hockey
- The basics of scoring and penalties
<|repo_name|>Turtleman1/thesis<|file_sep|>/scripts/experiments/score_learning.py
import os
import numpy as np
import pandas as pd
from sklearn import linear_model
from sklearn.metrics import mean_squared_error
from scipy.stats import spearmanr
# Set working directory.
os.chdir(os.path.dirname(os.path.abspath(__file__)))
BASE_PATH = os.path.join(os.pardir)
DATA_PATH = os.path.join(BASE_PATH,'data')
RESULTS_PATH = os.path.join(BASE_PATH,'results')
EXPERIMENTS_PATH = os.path.join(RESULTS_PATH,'experiments')
def main():
# Load scores.
scores = pd.read_csv(os.path.join(DATA_PATH,'scores.csv'),index_col=0)
# Score models.
models = ['LDA','LDA_4','SVM','SVM_4','QDA','QDA_4']
ml_models = [linear_model.LinearRegression() for _ in range(len(models))]
for i,model in enumerate(models):
print(model)
X = scores.loc[:,model].values.reshape(-1,1)
y = scores.loc[:,'Human'].values.reshape(-1,1)
ml_models[i].fit(X,y)
y_pred = ml_models[i].predict(X)
print('RMSE: {}'.format(np.sqrt(mean_squared_error(y,y_pred))))
print('R^2: {}'.format(ml_models[i].score(X,y)))
print('Spearman correlation: {}'.format(spearmanr(scores.loc[:,model],scores.loc[:,'Human'])[0]))
if __name__ == '__main__':
main()<|file_sep|># Thesis
Code for my Master's thesis "Towards understanding what makes music memorable" (https://dspace.library.uu.nl/handle/1874/385662).
## Abstract
Memorability is an important quality of music that affects how it is perceived by listeners. Although there are many studies that have investigated memorability from a perceptual perspective (i.e., by measuring memorability from ratings or behavioral experiments), there has been less work done from a computational perspective (i.e., by modeling memorability using machine learning). The purpose of this thesis is to investigate how musical features affect memorability using machine learning techniques.
To do so, I first built models that predict memorability from musical features using data from three different datasets (the COGEME dataset (https://cogeme.uantwerpen.be), a dataset collected by myself using Amazon Mechanical Turk (MTurk), as well as data collected from an experiment I ran at Utrecht University). These models were used to determine which features are most predictive of memorability.
Next I compared my models to a model trained on audio features using convolutional neural networks (CNNs). I found that my models outperform this CNN model across all three datasets.
I then used an importance ranking algorithm called SHAP (SHapley Additive exPlanations) to determine which features are most important for predicting memorability. These feature rankings were compared across all three datasets.
Finally I used a feature selection algorithm called LASSO regression to determine which features are most important for predicting memorability. This resulted in different feature subsets for each dataset which were used to train new models. These models were compared against previous models.
## Repository structure
- **data** - Contains all data used for this project.
- **figures** - Contains figures generated during this project.
- **results** - Contains results generated during this project.
- **scripts** - Contains scripts used for this project.
- **thesis.pdf** - A PDF version of my thesis.
## Scripts
Scripts are located in `scripts/experiments` or `scripts/feature_selection` depending on their purpose.
### Experiments
These scripts are used for training machine learning models as well as evaluating them.
- `score_learning.py` - Trains machine learning models that learn how well each feature set predicts human ratings.
- `main.py` - Trains machine learning models that predict memorability from musical features using data from three different datasets.
- `evaluate_models.py` - Evaluates machine learning models trained by `main.py`.
- `evaluate_cnn.py` - Evaluates a convolutional neural network trained on audio features.
### Feature selection
These scripts are used for determining which features are most important for predicting memorability.
- `shap_feature_ranking.py` - Uses SHAP (SHapley Additive exPlanations) to determine which features are most important for predicting memorability.
- `feature_importance_plot.py` - Plots feature importance rankings obtained by `shap_feature_ranking.py`.
- `lasso_regression.py` - Uses LASSO regression to determine which features are most important for predicting memorability.<|repo_name|>Turtleman1/thesis<|file_sep|>/scripts/experiments/evaluate_models.py
import os
import numpy as np
import pandas as pd
from sklearn.metrics import mean_squared_error
from scipy.stats import spearmanr
# Set working directory.
os.chdir(os.path.dirname(os.path.abspath(__file__)))
BASE_PATH = os.path.join(os.pardir)
DATA_PATH = os.path.join(BASE_PATH,'data')
RESULTS_PATH = os.path.join(BASE_PATH,'results')
EXPERIMENTS_PATH = os.path.join(RESULTS_PATH,'experiments')
def main():
# Load scores.
scores = pd.read_csv(os.path.join(DATA_PATH,'scores.csv'),index_col=0)
# Load model results.
results_cogeme = pd.read_csv(os.path.join(EXPERIMENTS_PATH,'cogeme_results.csv'),index_col=0)
results_mturk = pd.read_csv(os.path.join(EXPERIMENTS_PATH,'mturk_results.csv'),index_col=0)
results_experiment = pd.read_csv(os.path.join(EXPERIMENTS_PATH,'experiment_results.csv'),index_col=0)
models = ['LDA','LDA_4','SVM','SVM_4','QDA','QDA_4']
for model in models:
print(model)
if model == 'LDA':
y_pred_cogeme = results_cogeme.loc[:,model]
y_pred_mturk = results_mturk.loc[:,model]
y_pred_experiment = results_experiment.loc[:,model]
print('COGEME')
print('RMSE: {}'.format(np.sqrt(mean_squared_error(scores.loc[:,'Cogeme'],y_pred_cogeme))))
print('R^2: {}'.format(np.corrcoef(scores.loc[:,'Cogeme'],y_pred_cogeme)[0][1]**2))
print('Spearman correlation: {}'.format(spearmanr(scores.loc[:,'Cogeme'],y_pred_cogeme)[0]))
print('\nMTurk')
print('RMSE: {}'.format(np.sqrt(mean_squared_error(scores.loc[:,'MTurk'],y_pred_mturk))))
print('R^2: {}'.format(np.corrcoef(scores.loc[:,'MTurk'],y_pred_mturk)[0][1]**2))
print('Spearman correlation: {}'.format(spearmanr(scores.loc[:,'MTurk'],y_pred_mturk)[0]))
print('\nExperiment')
print('RMSE: {}'.format(np.sqrt(mean_squared_error(scores.loc[:,'Experiment'],y_pred_experiment))))
print('R^2: {}'.format(np.corrcoef(scores.loc[:,'Experiment'],y_pred_experiment)[0][1]**2))
print('Spearman correlation: {}'.format(spearmanr(scores.loc[:,'Experiment'],y_pred_experiment)[0]))
else:
y_pred_cogeme = results_cogeme.loc[:,model].values.reshape(-1,1)
y_pred_mturk = results_mturk.loc[:,model].values.reshape(-1,1)
y_pred_experiment = results_experiment.loc[:,model].values.reshape(-1,1)
print('COGEME')
print('RMSE: {}'.format(np.sqrt(mean_squared_error(scores.loc[:,'Cogeme'].values.reshape(-1,1),y_pred_cogeme))))
print('R^2: {}'.format(np.corrcoef(scores.loc[:,'Cogeme'].values.reshape(-1,1),y_pred_cogeme)[0][1]**2))
print('Spearman correlation: {}'.format(spearmanr(scores.loc[:,'Cogeme'],y_pred_cogeme.ravel())[0]))
print('\nMTurk')
print('RMSE: {}'.format(np.sqrt(mean_squared_error(scores.loc[:,'MTurk'].values.reshape(-1,1),y_pred_mturk))))
print('R^2: {}'.format(np.corrcoef(scores.loc[:,'MTurk'].values.reshape(-1,1),y_pred_mturk)[0][1]**2))
print('Spearman correlation: {}'.format(spearmanr(scores.loc[:,'MTurk'],y_pred_mturk.ravel())[0]))
print('\nExperiment')
print('RMSE: {}'.format(np.sqrt(mean_squared_error(scores.loc[:,'Experiment'].values.reshape(-1,1),y_pred_experiment))))
print('R^2: {}'.format(np.corrcoef(scores.loc[:,'Experiment'].values.reshape(-1,1),y_pred_experiment)[0][1]**2))
print('Spearman correlation: {}'.format(spearmanr(scores.loc[:,'Experiment'],y_pred_experiment.ravel())[0]))
if __name__ == '__main__':
main()<|repo_name|>Turtleman1/thesis<|file_sep|>/scripts/experiments/main.py
import os
import numpy as np
import pandas as pd
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as QDA
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# Set working directory.
os.chdir(os.path.dirname(os.path.abspath(__file__)))
BASE_PATH = os.path.join(os.pardir)
DATA_PATH = os.path.join(BASE_PATH,'data')
RESULTS_PATH = os.path.join(BASE_PATH,'results')
EXPERIMENTS_PATH = os.path.join(RESULTS_PATH,'experiments')
def main():
# Load scores.
scores_cogeme_train = pd.read_csv(os.path.join(DATA_PATH,
'cogeme_train_scores.csv'),index_col=0)
scores_cogeme_test = pd.read_csv(os.path.join(DATA_PATH,
'cogeme_test_scores.csv'),index_col=0)
scores_mturk_train = pd.read_csv(os.path.join(DATA_PATH,
'mturk_train_scores.csv'),index_col=0)
scores_mturk_test = pd.read_csv(os.path.join(DATA_PATH,
'mturk_test_scores.csv'),index_col=0)
scores_experiment_train = pd.read_csv(os.path.join(DATA_PATH,
'experiment_train_scores.csv'),index_col=0)
scores_experiment_test = pd.read_csv(os.path.join(DATA_PATH,
'experiment_test_scores.csv'),index_col=0)
scores_human_train_mean_std_devs_mean_std_devs_train_mean_std_devs_all_data_mean_std_devs_all_data_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_labels_features_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_all_data_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_LDA_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_SVM_QDA_QDA_QDA_QDA_QDA_QDA_QDA_QDA_QDA_QDA_QDA_QDAScaleLADAScaleLADAScaleLADAScaleLDAScaleLDAScaleLDAScaleLDAScaleLDAScaleLDAScaleLDAScaleLADAScaleLADAScaleLDAScaleLADAScaleLADAScaleLADAScaleLADAScaleLADASScaleSVMScaleSVMScaleSVMScaleSVMScaleSVMScaleSVMScaleSVMScaleSVMScaleSVMScaleSVMScaleSVMScalesVMScalesVMScalesVMScalesVMScalesVMScalesVMScalesVMScalesVMScalesVMScalesVMScalesVDAScalesVDAScalesVDAScalesVDAScalesVDAScalesVDAScalesVDAScalesVDAScalesVDAClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesClusterFeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesclusterfeaturesAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataAllDataTestSetTestSetTestSetTestSetTestSetTestSetTestSetTestSetTestSetTestSetTestSetTestSetTrainSetTrainSetTrainSetTrainSetTrainSetTrainSetTrainSetTrainSetTrainSetTrainSet',encoding='unicode_escape').rename(columns={'Unnamed: ': 'Label'})
# Train/test split.
X_train_cogeme,LABELS_train_cogeme,Y_train_cogemescore,Y_test_cogemescore,scores_cogemescore_model_scores_human_score_label_X_test_cogemescore_model_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label_scores_human_score_label