{"cells":[{"metadata":{},"cell_type":"markdown","source":"This is a notebook for a new model I want to try to solve the current question answer correctness problem.\nAll data were run in maltab because I have barely any expriemence in python and R coding. Sorry for that\nThis is a Case-based reasoning (CBR) like type of learning, actually it is not a typical supervised learning, or there is no learning progress.\n9 features were used.\n\n%% prediction using simplist similarity herb vote\n%% Leinian Li 20201212\nclc;clear all;\nload('tranData.mat');\ntestNum=100;\naucAll=[];\n\n%% extrame timeduration should depressed into a small scale, the 0.1 is decided for it can make similarity values between preidiction and most train sets fairly distributed\nTrainData.timestampLog=TrainData.timestamp.^0.1;\nTrainData.priorcrrtLog=TrainData.priorcrrt.^0.1;\n\npreLabelAll=[];\nfor ai=1:1:100\n    TrainSample=TrainData;\n    randPerm=randperm(length(TrainSample.part));\n    randPerm=randPerm(1:testNum);\n    \n    %% Seperate train data and test data\n    % TestData.usrid=TrainSample.usrid(randPerm,:);\n    % TrainSample.usrid(randPerm,:)=[];\n    \n    TestData.timestamp=TrainSample.timestamp(randPerm,:);\n    TrainSample.timestamp(randPerm,:)=[];\n    \n    TestData.timestampLog=TrainSample.timestampLog(randPerm,:);\n    TrainSample.timestampLog(randPerm,:)=[];\n    \n    TestData.contentid=TrainSample.contentid(randPerm,:);\n    TrainSample.contentid(randPerm,:)=[];\n    \n    TestData.taskid=TrainSample.taskid(randPerm,:);\n    TrainSample.taskid(randPerm,:)=[];\n    \n    TestData.answer=TrainSample.answer(randPerm,:);\n    TrainSample.answer(randPerm,:)=[];\n    \n    TestData.answercrrt=TrainSample.answercrrt(randPerm,:);\n    TrainSample.answercrrt(randPerm,:)=[];\n    \n    TestData.priorcrrt=TrainSample.priorcrrt(randPerm,:);\n    TrainSample.priorcrrt(randPerm,:)=[];\n    \n    TestData.priorcrrtLog=TrainSample.priorcrrtLog(randPerm,:);\n    TrainSample.priorcrrtLog(randPerm,:)=[];\n    \n    TestData.priorexplain=TrainSample.priorexplain(randPerm,:);\n    TrainSample.priorexplain(randPerm,:)=[];\n    \n    TestData.bundle=TrainSample.bundle(randPerm,:);\n    TrainSample.bundle(randPerm,:)=[];\n    \n    TestData.coanswer=TrainSample.coanswer(randPerm,:);\n    TrainSample.coanswer(randPerm,:)=[];\n    \n    TestData.part=TrainSample.part(randPerm,:);\n    TrainSample.part(randPerm,:)=[];\n    \n    TestData.tags=TrainSample.tags(randPerm,:);\n    TrainSample.tags(randPerm,:)=[];\n    \n    \n    %% prediction using simplist similarity herd vote\n    N=10;\n    for aui=1:1:100\n        N=N+10;\n        PredictionLabel=[];\n        \n        \n        \n        for i=1:1:testNum\n            % similarity between class data\n            %     similarityUsrId=(TrainSample.usrid==TestData.usrid(i))-0.5;\n            similarityContentId=(TrainSample.contentid==TestData.contentid(i))-0.5;\n            similarityTaskId=(TrainSample.taskid==TestData.taskid(i))-0.5;\n            similarityPriorExplain=(TrainSample.priorexplain==TestData.priorexplain(i))-0.5;\n            similarityBundle=(TrainSample.bundle==TestData.bundle(i))-0.5;\n            similarityCoAnswer=(TrainSample.coanswer==TestData.coanswer(i))-0.5;\n            similarityPart=(TrainSample.part==TestData.part(i))-0.5;\n            \n            % similarity between tags data\n            similarityTags = tagsSimilarity(TrainSample.tags,TestData.tags(i,:))-0.5;\n            \n            % similarity between weighted values\n            similarityTimeStamp=TrainSample.timestamp-TestData.timestamp(i);\n            similarityTimeStamp=abs(similarityTimeStamp);\n            similarityTimeStamp = 1-mapminmax(similarityTimeStamp', 0, 1)'-0.5;\n            % similarityTimeStamp = mapminmax(similarityTimeStamp')';\n            \n            similarityPriorQuestionTime=TrainSample.priorcrrt-TestData.priorcrrt(i);\n            similarityPriorQuestionTime=abs(similarityPriorQuestionTime);\n            similarityPriorQuestionTime = 1-mapminmax(similarityPriorQuestionTime', 0, 1)'-0.5;\n            \n            similarityTimeStampLog=TrainSample.timestampLog-TestData.timestampLog(i);\n            similarityTimeStampLog=abs(similarityTimeStampLog);\n            similarityTimeStampLog = 1-mapminmax(similarityTimeStampLog', 0, 1)'-0.5;\n            % similarityTimeStamp = mapminmax(similarityTimeStamp')';\n            \n            similarityPriorQuestionTimeLog=TrainSample.priorcrrtLog-TestData.priorcrrtLog(i);\n            similarityPriorQuestionTimeLog=abs(similarityPriorQuestionTimeLog);\n            similarityPriorQuestionTimeLog = 1-mapminmax(similarityPriorQuestionTimeLog', 0, 1)'-0.5;\n            \n            \n            \n            % similarityPriorQuestionTime = mapminmax(similarityPriorQuestionTime')';\n            %allSimilarity=(similarityContentId+similarityTaskId+similarityAnswer+similarityPriorExplain+similarityBundle+similarityCoAnswer+similarityPart+similarityTags+similarityTimeStamp+similarityPriorQuestionTime)/10;\n            %allSimilarity=(similarityContentId+similarityTaskId+similarityPriorExplain+similarityBundle+similarityCoAnswer+similarityPart+similarityTags+similarityTimeStamp+similarityPriorQuestionTime)/9;\n            allSimilarity=(similarityContentId+similarityBundle+similarityTaskId+similarityPriorExplain+similarityCoAnswer+similarityPart+similarityTags+similarityTimeStamp+similarityPriorQuestionTime+similarityTimeStampLog+similarityPriorQuestionTimeLog);\n            allSimilarity=[allSimilarity,(1:1:length(allSimilarity))'];\n            yNum = sortrows(allSimilarity,1,'descend');\n            win100=yNum(1:N,2);\n            PredictionLabel=[PredictionLabel;mean(TrainSample.answercrrt(win100))];\n        end\n        \n        [Px,Py,Auc]=calculate_roc(PredictionLabel,TestData.answercrrt);\n        Auc\n        aucAll=[aucAll;Auc];\n        preLabelAll=[preLabelAll,PredictionLabel];\n    end\nend"}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}