2016-09-27 1 views
2

나는 인지력있는 광부 인 AI Bot을 만들고있다. My Bot은 두 가지 작업을 수행합니다. 하나는 열차이고 다른 하나는 예측입니다. 일부/일부 ML 기능을 사용하고 있습니다. 그래서 여기에 나는 많은 문서 (~ 200,000 개의 문서)를 가지고있다. 그리고 나서 쿼리를 예측할 때, 나는 훈련으로부터 얻은 가장 정확한 매치 된 문서 (점수, 각 문서에 대한 자신감을 보임)를 찾기위한 몇 가지 단계를 수행하고 있습니다. 그리고 TF-IDF, n-gram, 코사인 유사성 (similarity) 같은 것을 찾는 질문을 통해 얻을 수있는 각 토큰의 유사 함수를 사용하고있는 알려진 함수들도 있습니다. 이렇게하려면 핵심 파이썬, 파이썬 타사 라이브러리, 교육 데이터를 유지하기위한 NoSQL 데이터베이스를 사용하고 있습니다.팬더 데이터 프레임에 ML 라이브러리를 적용하는 것이 좋은 생각입니까?

참고 : 성능 향상으로 코어 파이썬을 가능한 한 많이 사용했습니다. (Elastic Search 또는 python whoosh를 사용할 제안을하지 마십시오. 왜냐하면 저는 다른 바 10 년 동안 바보 같은 코드를 사용하기를 원하기 때문입니다 :))

성능 문제가 있습니다. 점수를하는 것처럼 2 ~ 3 초 정도 걸립니다. 그건 좋지 않아. 그 결과가 몇 밀리 초 안에 오길 바래.

내 질문에 내가 팬더를 사용하고 위의 모든 기능을 적용하려고하면 성능이 향상 될 것인가? 또는 numpy 매트릭스 계산이 더 나은 성능을 제공합니까?

여기 코드는 붙여 넣기가 필요하지 않습니다. 나는 단지 내 문제에 대한 경험이 풍부한 사람들의 견해를 필요로한다. 물론 솔루션을 확장 할 수 있어야합니다.

답변

2

성능면에서는 차이가 없을 것입니다.

팬더는 데이터를로드하고 여러 가지 방법으로 그룹화 (피벗, 기존 열에서 새 열 만들기 등)에 매우 효율적입니다.

데이터가 기계 학습 알고리즘 (예 : sklearn)으로 전달할 준비가되면 기본적으로 pd.DataFrame.as_matrix()은 전체 성능에 근본적인 영향을 미치지 않으면 서 numpy 배열로 변환 할 수 있습니다. 어떤 비용이 이것을 지배하지 않는 어떤 sklearn 예측/분류 단계를 생각하기는 어렵습니다.

sklearn-pandas package은이 문제를 더욱 용이하게합니다.

성능이 만족스럽지 않은 경우 해결책은 다른 곳에 있습니다.

+0

감사합니다. 한 가지 더 알고 싶은 대답은 !! 나는 TF-IDF를 사용하는 등의 작업을하고있다.이 작업은 거대한 (크기 5k 이상) 루프에 사용된다. 내가 numpy 행렬 (벡터 연산을 알고 있음)에서 동일한 작업을 수행한다면 성능이 향상 될 것인가? –

+0

가능한 경우 성능 및 기타 이유로 numpy 행렬로 전달해야합니다. –

+0

@Achyutanandasahoo 걱정하지 마십시오. 새로운 담당자에게 축하해! –

관련 문제