안녕하세요 Mahout 커뮤니티!Mahout recommender를 더 빨리 작동시키는 방법은 무엇입니까?
나는 추천 계산 속도를 높이는 데 몇 가지 질문이 있습니다. 내 서버에는 Mahout이 Hadoop없이 설치되어 있습니다. 또한 jRuby는 권장 스크립트로 사용됩니다. 데이터베이스에는 3k 명의 사용자와 100,000 개의 항목 (조인 테이블의 270k 항목)이 있습니다. 사용자가 권장 사항을 요청할 그래서 때 간단한 스크립트 작업을 시작합니다
connection = org.postgresql.ds.PGPoolingDataSource.new()
connection.setDataSourceName("db_name");
connection.setServerName("localhost")
connection.setPortNumber(5432)
connection.setDatabaseName("db_name")
connection.setUser("mahout")
connection.setPassword("password")
connection.setMaxConnections(100)
connection
내가이 경고를 얻을 :
첫째는이 같은 PGPoolingDataSource
를 사용하여 DB 연결을 설정
WARNING: You are not using ConnectionPoolDataSource. Make sure your DataSource pools connections to the database itself, or database performance will be severely reduced.
모든 아이디어를 어떻게 해결하는 방법 그?
는 후에 나는 권고를 만듭니다 들어
model = PostgreSQLJDBCDataModel.new(
connection,
'stars',
'user_id',
'repo_id',
'preference',
'created_at'
)
similarity = TanimotoCoefficientSimilarity.new(model)
neighborhood = NearestNUserNeighborhood.new(5, similarity, model)
recommender = GenericBooleanPrefUserBasedRecommender.new(model, neighborhood, similarity)
recommendations = recommender.recommend user_id, 30
지금은 하나의 사용자에 대한 추천을 생성하기 위해 5 ~ 10 초 정도 걸립니다. 질문은 권장 사항을 더 빨리 만드는 방법입니다 (200ms는 좋을 것입니까?).
Sean, 답변을 기다리고있었습니다. 대단히 감사합니다. ReloadFromJDBCDataModel은 내가 필요한 것입니다. 다시로드하지 않으면 사용자가 8 초가 걸리고 다시로드하면 18 초 안에 119 명의 사용자가 처리됩니다. 속도는 53 배입니다! – makaroni4