feekood的基礎知識--資料分析函數,feekood資料分析
feekood的基礎知識--資料分析函數
資料分析函數: :> 概述:定義蘊含關係式參數P1(n1,n2…):>P2樣本 //定義多個狀態擴充行為_add1(x) :> x+=1; //x自加1_dec1(x) :> x-=1; //x自減1_mul2(x) :> x*=2;//x自乘2_mul10(x) :> x*=10;//x自乘10_dev2(x) :> x=int(x/2);//x自除2//定義初始條件m=2;//利用狀態擴充行為搜尋到達結果的步驟result=target(m, //指令碼值value==500,//達到的目標value~==500,//啟發搜尋的運算式,越接近1的節點越先被擴充(提高搜尋速度){"_add1","_dec1","_mul10","_mul2","_dev2"},//支援的行為10000//搜尋狀態最大數量);print(result);//列印{ M*=2; M+=1; M*=10; M*=10;};資料分析函數: ANNCREATE 概述:建立人工神經網路節點神經網路訓練類型BP:反向回饋訓練方法RBP:向前回饋訓練方法GA:遺傳進化訓練方法DR:線性資料訓練方法節點啟用函數類型BSIG:S型啟用函數(範圍0~1)ELT:偽S型啟用函數(範圍0~1)ELTS:偽S型啟用函數(範圍-1~1)LIM:梯度啟用函數(範圍0~1)LIN:線性啟用函數(範圍0~1)LOG:指數啟用函數(範圍0~1)SIG:S型啟用函數(範圍-1~1)SIN:三角曲線啟用函數(範圍0~1)Tanh:反三角曲線啟用函數(範圍0~1)參數AnnCreate(annData)annData:神經網路內建對象集合返回:null功能:定義一個神經網路模型樣本 annModel={Name:"x1";//模型名稱Type:"BP";//神經網路類型LearningRate:0.1;//神經網路學習速率Momentum:0;//神經網路學習動量Stage:10;//迭代次數Times:10000;//每次迭代的訓練次數Error:0;// 每次迭代統計誤差值Error:->{print(owner.error);};InputCount:2; // 輸入節點數量OutputCount:1; // 輸出節點數量Layers:{{Function:"BSIG", Count:2, Alpha:2}; // 輸入層{Function:"BSIG", Count:2, Alpha:2}; // 隱藏層{Function:"BSIG", Count:1, Alpha:2}; // 輸出層};};// 建立神經網路AnnCreate(annModel);// 建立訓練資料input={{0,0},{0,1},{1,0},{1,1}};output={0,1,1,0};// 訓練資料AnnTrain(annModel,input,output);// 識別資料ideal=AnnRun(annModel,input);Print("識別結果");Print(ideal);// 實際結果Print("實際結果");Print(output);資料分析函數: ANNRUN 概述:運行神經網路輸入值input={{a1,a2,a3},{b1,b2,b3},{c1,c2,c3},{d1,d2,d3},{e1,e2,e3}}a1,a2,a3為一個樣本資料input有3個資料維度,有a~e 5個資料樣本神經網路將多個資料樣本計算出多個輸出值參數AnnRun(annData, value)annData:神經網路內建對象集合value:輸入值[數值集合]返回:神經網路計算輸出值功能:識別,匹配,預測現有狀態資料樣本 annModel={Name:"x1";//模型名稱Type:"BP";//神經網路類型LearningRate:0.1;//神經網路學習速率Momentum:0;//神經網路學習動量Stage:10;//迭代次數Times:10000;//每次迭代的訓練次數Error:0;// 每次迭代統計誤差值Error:->{print(owner.error);};InputCount:2; // 輸入節點數量OutputCount:1; // 輸出節點數量Layers:{{Function:"BSIG", Count:2, Alpha:2}; // 輸入層{Function:"BSIG", Count:2, Alpha:2}; // 隱藏層{Function:"BSIG", Count:1, Alpha:2}; // 輸出層};};// 建立神經網路AnnCreate(annModel);// 建立訓練資料input={{0,0},{0,1},{1,0},{1,1}};output={0,1,1,0};// 訓練資料AnnTrain(annModel,input,output);// 識別資料ideal=AnnRun(annModel,input);Print("識別結果");Print(ideal);// 實際結果Print("實際結果");Print(output);資料分析函數: ANNTRAIN 概述:訓練神經網路輸入值input={{a1,a2,a3},{b1,b2,b3},{c1,c2,c3},{d1,d2,d3},{e1,e2,e3}}a1,a2,a3為一個樣本資料input有3個資料維度,有a~e 5個資料樣本輸出值 output={a,b,c,d,e}output有一個資料維度,5個資料樣本參數AnnTrain(annModel,input,output)annModel:神經網路模型集合input:輸入資料[數值集合]output:輸出資料[數值集合]返回:null功能:訓練神經網路模型,利用輸入值和輸出值訓練其擬合函數樣本 annModel={Name:"x1";//模型名稱Type:"BP";//神經網路類型LearningRate:0.1;//神經網路學習速率Momentum:0;//神經網路學習動量Stage:10;//迭代次數Times:10000;//每次迭代的訓練次數Error:0;// 每次迭代統計誤差值Error:->{print(owner.error);};InputCount:2; // 輸入節點數量OutputCount:1; // 輸出節點數量Layers:{{Function:"BSIG", Count:2, Alpha:2}; // 輸入層{Function:"BSIG", Count:2, Alpha:2}; // 隱藏層{Function:"BSIG", Count:1, Alpha:2}; // 輸出層};};// 建立神經網路AnnCreate(annModel);// 建立訓練資料input={{0,0},{0,1},{1,0},{1,1}};output={0,1,1,0};// 訓練資料AnnTrain(annModel,input,output);// 識別資料ideal=AnnRun(annModel,input);Print("識別結果");Print(ideal);// 實際結果Print("實際結果");Print(output);資料分析函數: CHECK 概述:檢查事實的存在的機率值參數Check(word1,word2,...wordn)word1~n:對象名稱1~n返回:是否存在事實(包括推理出來的事實)樣本 fact({"貓","狗","牛","馬","豬"},"是","哺乳動物");fact({"蝴蝶","螞蟻","蜻蜓"},"是","昆蟲");fact("哺乳動物","有","骨頭");fact({"昆蟲","哺乳動物"},"是","動物");fact("動物","是","生物");fact("生物","會","死");fact(?x, "是", ?y) && fact(?y, "會", ?z) |-> fact(?x, "會", ?z);fact(?x, "是", ?y) && fact(?y, "有", ?z) |-> fact(?x, "有", ?z);print(check("螞蟻","是","哺乳動物"));print(check("狗","有","骨頭"));print(check("蝴蝶","會","死"));資料分析函數: FACT 概述:定義事實參數:fact(word1,word2,...wordn)word1~n:事實[字串]返回:null功能:將事實放入智能資料庫儲存fact(?variable,word1,word2,...wordn)variable?:未知變數[變數名?]word1~n:事實[字串]樣本 //定義事實fact("小明","愛","小紅");//定義事實(小明愛小紅)fact("小張","愛","小李");//定義事實(小張愛小李)fact("小紅","愛","小李");//定義事實(小紅愛小李)fact("小李","愛","小紅");//定義事實(小李愛小紅)fact("小王","愛","小美");//定義事實(小王愛小美)fact("小美","愛","小張");//定義事實(小美愛小張)fact("小豔","愛","小孫");//定義事實(小豔愛小孫)fact("小美","愛","小孫");//定義事實(小美愛小孫)fact(?x,"愛","小孫");Print("愛小孫的有"+x);資料分析函數: RUNAF 概述:運行啟用函數神經網路啟用函數有BSIG,SIG,ELT,ELTS,LIM,LIN,LOG,SIN,LOG,SIN,TANH參數RunAf(func,value)func:神經網路啟用函數名稱[字串]value:數值返回:計算啟用函數的相應數值的導數樣本 Print(RunAf("BSIG",0.5));//列印0.4621資料分析函數: RUNAFD 概述:運行啟用函數求導神經網路啟用函數有BSIG,SIG,ELT,ELTS,LIM,LIN,LOG,SIN,LOG,SIN,TANH參數RunAfd(func,value)func:神經網路啟用函數名稱[字串]value:數值返回:計算啟用函數的相應數值的導數樣本 Print(RunAfd("BSIG",100));//列印-9999資料分析函數: TARGET 概述:定義邏輯關係式taget的目標必須是定義條件能達到的,否則返回空參數Target(value,targetExpr,inspriteExpr,actions,step,keyExpr)value:需要搜尋的變數[值]targetExpr:目標條件運算式[運算式]inspriteExpr:啟發學習法搜尋運算式,越接近1的節點會優先擴充尋找actions:允許的動作[字串集合]step:搜尋狀態最大數量[正整型]keyExpr:狀態識別運算式[運算式]返回:達到目標的執行運算式集合功能:達到或接近目標的步驟樣本 // 簡單搜尋指令碼案例//定義多個狀態擴充行為_add1(x) :> x+=1; //x自加1_dec1(x) :> x-=1; //x自減1_mul2(x) :> x*=2;//x自乘2_mul10(x) :> x*=10;//x自乘10_dev2(x) :> x=int(x/2);//x自除2//定義初始條件m=2;//利用狀態擴充行為搜尋到達結果的步驟result=target(m, //指令碼值value==500,//達到的目標value~==500,//啟發搜尋的運算式,越接近1的節點越先被擴充(提高搜尋速度){"_add1","_dec1","_mul10","_mul2","_dev2"},//支援的行為10000,//搜尋狀態最大數量 value//狀態識別運算式);print(result);//列印{ M*=2; M+=1; M*=10; M*=10;};//================================================================================// 尋路搜尋,複雜搜尋指令碼案例m={ {0,0,0,0,1}, {0,1,1,2,1}, {1,1,0,0,1}, {0,0,0,1,0}, {0,0,1,0,0}};human={x:0,y:4,step:0};moveUp(h):>case(any(MtxGet(m,h.x,h.y-1)=={0,2}),{h.y-=1,h.step+=1}::h);moveDown(h):>case(any(MtxGet(m,h.x,h.y+1)=={0,2}),{h.y+=1,h.step+=1}::h);moveLeft(h):>case(any(MtxGet(m,h.x-1,h.y)=={0,2}),{h.x-=1,h.step+=1}::h);moveRight(h):>case(any(MtxGet(m,h.x+1,h.y)=={0,2}),{h.x+=1,h.step+=1}::h);result=target( human, //指令碼值 MtxGet(value.map,value.x,value.y)==2,//達到的目標運算式 value.step~==0,//啟發搜尋的運算式,越接近1的節點越先被擴充(提高搜尋速度) {"moveUp","moveDown","moveLeft","moveRight"},//支援的行為 10000,//搜尋狀態最大數量 {value.x,value.y}//狀態識別運算式);print(result);foreach(0...(size(result)-1),{ run(result->value); print(""+human.x +" "+human.y);});資料分析函數: |-> 概述:定義關聯關係運行式參數concept1 |-> concept2concept1:搜尋事實concept1:執行事實返回:null功能:定義推論規則樣本 fact("小明","愛","小紅");//定義事實(小明愛小紅)fact("小張","愛","小李");//定義事實(小張愛小李)fact("小紅","愛","小李");//定義事實(小紅愛小李)fact("小李","愛","小紅");//定義事實(小李愛小紅)fact("小王","愛","小美");//定義事實(小王愛小美)fact("小美","愛","小張");//定義事實(小美愛小張)fact("小豔","愛","小孫");//定義事實(小豔愛小孫)fact("小美","愛","小孫");//定義事實(小美愛小孫)//定義事實規則//戀人定義為一個人愛另一個人,另一個人也愛他fact(?x,"愛",?y)&&fact(?y,"愛",?x) |-> fact(?x,?y,"是戀人");//搜尋m,nfact(?m,?n,"是戀人");Print(""+m+"和"+n+"是戀人");