スタッフトレーニングでレコメンデーションシステムを構築するための手順

近年、ユーザーのプロファイルに関する特定の情報を使用して、ユーザーが関心を持つオブジェクトを予測しようとするプログラムが普及しています。2006年まで、そのようなアルゴリズムは普及していませんでした。しかし、2006年の秋にNetflixが開発者に最高の予測アルゴリズムのために1,000,000ドルを提供したとき、それはすべて変わりました。大会は3年間続きました。





今日は、人材育成におけるレコメンデーションシステム構築の経験についてお話しましょう。





.





?

– IT- . , . . , , .





. . , .









1. Content-based filtering ( )

, . , .





2.  Collaborative filtering ( )

, .





3. ,

– . , .  





?

  • . Users. , , Users.





  • . ( ). , , . …





  • features ( ) Users.





Users :





  • / ( );





  • / ;





  • ;





  • (, Data Analist, Data Engineer, Data Scientist);





  • ( );





  • ( ).





Users .





MVP , . . Users :





  • (-1, +2);





  • – ;





  • – ;





  • – Data Scientist;





  • – 5 ( 20 65);





  • - 5 .





Users – 3 .





– 6 ( 2 User).





– Python.





(DataSet), , , Users.





User 3 Users .





#    DataSet
for row in df:
    corrMatr = df.corrwith(df[row])  #   
    corrMatr = pd.DataFrame(corrMatr)
    tempMatr = corrMatr  #  
    tempMatr = tempMatr.drop([row], axis=0)
    li = list()
    li2 = list()
    print(row)
    k = 0
    while k < 6:
        if len(tempMatr) == 0:  #    tempMatr  0,    while
            break
        name = tempMatr.idxmax().item()  #        
        dp = df3[df3['Tab'] == name].set_index('Tab')  #      ,
            #     Tab  name
        if name not in li2 and ((df[name]['pos'] <= df[row]['pos'] + 2 and df[name]['pos'] >= df[row]['pos'])):
            #         
            li2.append(name)
            col_dp = dp.columns.tolist()  #    DataFrame
            random.shuffle(col_dp)  #  
            for yy in col_dp:  #   
                if pd.DataFrame(df3[df3['Tab'] == name][yy]).reset_index()[yy][0] == 1 and \
                    pd.DataFrame(df3[df3['Tab'] == row][yy]).reset_index()[yy][0] == 0 and \
                        yy not in li and yy in df777[''].tolist():
                    #         
                    recList.append([row, name, yy,
                                    pd.DataFrame(df4[df4['Tab'] == row]['TB']).reset_index()['TB'][0], \
                                    pd.DataFrame(df4[df4['Tab'] == name]['TB']).reset_index()['TB'][0], \
                                    pd.DataFrame(df4[df4['Tab'] == row]['FIO']).reset_index()['FIO'][0], \
                                    pd.DataFrame(df4[df4['Tab'] == name]['FIO']).reset_index()['FIO'][0]])
                    k += 1
                    li.append(yy)
                    #     tempMatr
                    tempMatr = tempMatr.drop([tempMatr.idxmax().item()], axis=0)
                    break  #    for
        else:  #     tempMatr
            tempMatr = tempMatr.drop([tempMatr.idxmax().item()], axis=0)
#   DataFrame     Excel
recomendations = recomendations.append(recList, ignore_index=True)
recomendations.to_excel('.xlsx')
      
      



.





. :





  • (, );





  • .





.





この推奨アルゴリズムは、パイロットモード(4分の1の間)で実装されました。作成されたMVPは、経営陣が設定した目標コンバージョン率25%に達しました。これにより、MVPが成功し、業界での実装の準備ができていると認識できます。








All Articles