48 import daal.algorithms.implicit_als.training.init
49 import daal.algorithms.implicit_als.prediction.ratings
50 from daal.algorithms.implicit_als
import training, prediction
51 from daal.data_management
import FileDataSource, DataSourceIface
53 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
54 if utils_folder
not in sys.path:
55 sys.path.insert(0, utils_folder)
56 from utils
import printNumericTable
58 DAAL_PREFIX = os.path.join(
'..',
'data')
61 trainDatasetFileName = os.path.join(DAAL_PREFIX,
'batch',
'implicit_als_dense.csv')
71 def initializeModel():
72 global dataTable, initialModel
75 dataSource = FileDataSource(
76 trainDatasetFileName, DataSourceIface.doAllocateNumericTable,
77 DataSourceIface.doDictionaryFromContext
81 dataSource.loadDataBlock()
83 dataTable = dataSource.getNumericTable()
85 initAlgorithm = training.init.Batch()
86 initAlgorithm.parameter.nFactors = nFactors
89 initAlgorithm.input.set(training.init.data, dataTable)
90 res = initAlgorithm.compute()
93 initialModel = res.get(training.init.model)
100 algorithm = training.Batch()
103 algorithm.input.setTable(training.data, dataTable)
104 algorithm.input.setModel(training.inputModel, initialModel)
106 algorithm.parameter.nFactors = nFactors
109 trainingResult = algorithm.compute()
115 algorithm = prediction.ratings.Batch()
116 algorithm.parameter.nFactors = nFactors
118 algorithm.input.set(prediction.ratings.model, trainingResult.get(training.model))
120 res = algorithm.compute()
121 predictedRatings = res.get(prediction.ratings.prediction)
123 printNumericTable(predictedRatings,
"Predicted ratings:")
125 if __name__ ==
"__main__":