Я пытаюсь запустить систему текстовых рекомендаций, чтобы найти категорию детали из файла размером примерно 56 КБ: Например: медная трубка -> Провод, Телевидение -> Электроника и т. Д.
Однако,Требуется около 4 часов для получения рекомендуемой выходной системы при работе в моей системе 8 ГБ ОЗУ.Я попытался запустить тот же сценарий на оперативной памяти около 32 ГБ, но нет никакого улучшения во времени вычислений, которое все еще занимает 4 часа.Тренировочный набор для системы рекомендаций составляет около 11 тыс.
Как я могу заставить мою рекомендательную систему работать быстрее?Кажется, что сценарий не использует память эффективно.Любая помощь будет принята с благодарностью.
Примечание: приведенный пример приведен только для иллюстрации, а исходный набор данных гораздо сложнее.
from sklearn.neighbors import NearestNeighbors
#Code for recommendation system
def recommendhts(x,model,train):
distance,index=model.kneighbors(x.toarray(),n_neighbors=1)
mi=distance.argmax()
idx=index[mi][0]
return(train.iloc[idx]['sHTS'],distance[0][0])
#Training the model of training set
train=pd.read_csv('train0207190144.csv')
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(train['keywords'])
x=X.toarray()
df=pd.DataFrame(x,columns=vectorizer.get_feature_names())
model=NearestNeighbors(metric='correlation',n_neighbors=1)
model.fit(df)
vect=vectorizer.fit(train['keywords'])
#Fitting the Count vectoriser on keywords(product description to be queried)
x_new=vect.transform(product['keywords'])
for i in range(len(product)):
key=x_new[i]
output,probability=recommendhts(key,model,train)
Редактировать: я прилагаю снимок экранарезультат профилирования Результаты профилирования кода , как предлагается в комментариях.Я проверил его на выборке из 1000 строк, а время заняло около 1085 секунд.