Download Latest Version ra32svm.tar.gz (28.3 kB)
Email in envelope

Get an email when there's a new version of ra32svm

Home
Name Modified Size InfoDownloads / Week
README 2010-06-08 2.2 kB
ra32svm.tar.gz 2010-06-08 28.3 kB
ra32svm.cpp 2010-06-08 2.9 kB
ra32svm.h 2010-06-08 43.4 kB
LIBSVM-COPYRIGHT 2010-06-08 1.5 kB
RA32SVM-COPYRIGHT 2010-06-08 1.5 kB
vertex.h 2010-06-08 858 Bytes
value.h 2010-06-08 1.1 kB
svm.h 2010-06-08 2.9 kB
svm.cpp 2010-06-08 61.3 kB
road.h 2010-06-08 947 Bytes
model.h 2010-06-08 897 Bytes
Makefile 2010-06-08 142 Bytes
jam.h 2010-06-08 2.7 kB
edge.h 2010-06-08 1.1 kB
Totals: 15 Items   151.8 kB 0
Program predicts a jam for chosen task on road graph.
Download data file example: http://imat2010.yandex.ru
There are 30 days with information about jams since 16:00 till 22:00.
Need to predict jams at 31st. ( At 31st day information since 16:00 till 18:00 is available).
Algorithm is based on SVM library. BSD licence.

Author: Basov Yuriy, Rambler Internet Holding.
E-mail: basov_yo@pisem.net

Usage:
cd ra32svm
make
wget http://download.yandex.ru/imat2010/imat2010.zip
mkdir ./imat2010
mv ./imat2010.zip ./imat2010
cd ./imat2010
unzip imat2010.zip
cd ..
./ra32svm --work-dir=./imat2010 --task-road=317746 --result=./result317746.txt
cat ./result317746.txt

Results:
Program saves predicted jams to file, defined by option --result.

Algorithm:
1. Read recommended speed on that road and save it as result value.
2. Calculate baseline speed on that road ( average speed at that time ) and resave it as result value.
3. Split speed values, using 4 km/h grid and train svm models to identify that speed classes.
4. Use speed on neighbours streets as parameters of svm models. Train models and compare results with baseline.
5. Resave the best result of svm models as result value.

SVM-algorithm:
http://www.csie.ntu.edu.tw/~cjlin/libsvm/

How it works:
1. Search neighbourhoud roads on the graph (max list length = 64).
2. Sort neighbourhoud roads by distance from chosen one.
3. Load jams on neighbourhoud roads for all days.
4. Remove neighbourhoud roads without information at last day (resize list to length = 16).
5. Analyse each available day with step 4 minutes and prepare data vectors with same situation.
6. Use last day data vectors for tests.
7. Use speed on neighbours streets as parameters of svm models. RBF-kernel (gamma 0.001) has been taken.
7. Split speed values, using 4 km/h grid and train svm models to identify that speed classes.
8. For each speed class calculate average speed value, that would be used as a result, if svm model choose that class.
9. Compare results of baseline algorithm and results of svm-model on a test day.
10. If svm-model results are better (70% of all tasks), than we save them as final.
11. Othervise - save baseline speed ( average speed at that time ).
Source: README, updated 2010-06-08