翻譯|其它|編輯:況魚杰|2021-01-27 11:59:12.377|閱讀 183 次
概述:要想在Qlik中開始學習機器學習,你需要對腳本和數據建模有一些基本的了解。總的來說,如果你已經開發QlikView或Qlik Sense應用程序好幾年了(我指的是從頭開始開發,而不僅僅是表達式和界面設計),腳本不會超級復雜。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
要想在Qlik中開始學習機器學習,你需要對腳本和數據建模有一些基本的了解。總的來說,如果你已經開發QlikView或Qlik Sense應用程序好幾年了(我指的是從頭開始開發,而不僅僅是表達式和界面設計),腳本不會超級復雜。然而,你不需要任何統計學或機器學習方面的知識就能理解其中的大部分內容。如果你想進一步了解為什么代碼能用,你肯定需要一些數學技能和一點統計學知識。
盡管關于機器學習和人工智能的文章已經有上千篇,但我還是先分享一下這些學科的高大上圖景。人工智能可以分為三個方面。
機器學習是人工狹義智能的主要領域之一。其他分支還有虛擬助手和專家系統。開發通過經驗自動改進的計算機算法的理論思想可以追溯到現代歷史。早在1950年就有了第一個想法,但真正的推動是在20年前,當計算機的能力和廉價程度足以運行這些算法并取得良好效果時,才有了真正的推動。然而,隨著計算機的速度越來越快,數據量也在增加。在處理海量信息時,不可能單獨看待每個數據點,所以需要一種新的方法。深度學習在某種程度上就是--大數據的機器學習。其他算法,如人工神經網絡,試圖模擬我們的大腦如何工作。
機器學習可以分為三個領域:
該算法是用已經有結果的數據進行 "訓練 "的。訓練完成后,我們可以用它對獨立的數據集進行 "預測 "結果。
其本身分為兩組:
例如:線性回歸、邏輯回歸、CART、奈夫貝葉斯、KNN、隨機森林都是監督學習算法的例子。
無監督學習的目的不是為了預測結果。而是用來尋找數據中的相似性和模式。在使用監督學習對數據進行 "清洗 "和 "分類 "之前,它經常被用作一個步驟。換句話說,它確保你只使用與算法相關的數據。
無監督學習分為三種類型:
例如:交通燈控制系統和電腦游戲中的代理。
這篇文章將涵蓋一些最流行的機器學習算法,從線性/邏輯回歸和決策樹到深度學習和人工神經網絡。
例子: 使用線性梯度下降法
任務:根據索賠數量預測保險索賠金額。
該圖表包含有關虛擬汽車保險公司的數據。它按“索賠數量”顯示“總付款額”。每個點代表一段時間,例如幾個月或幾年。
數據來源:瑞典的汽車保險 (在此下載數據)。
數據提取(前10行):
X = 保險索賠數量
Y=所有保險索賠的總付款額,單位為千瑞典克朗。
在這種情況下,保險公司希望預測他們將為當月收到的索賠支付多少錢。讓我們假設在上一個時期,他們總共收到了36起索賠。他們應該為這些索賠保留多少錢?
線性梯度下降算法的目標是找出一條直線的公式,以最好的方式擬合所有的數據點。
沒有什么比用數據做實驗更好的了! 這里是一個Qlik Sense的可視化,你可以嘗試通過拖動兩個滑動條來調整線條。
調整[斜率起點(θ0)]和[斜率角(θ1)]的值,并嘗試做出一條符合所有點的線。然后,在你的預測線的幫助下,回答問題。"保險公司應該為36次索賠準備多少錢?"
本圖中的紅線是梯度下降算法的結果。它得出了以下結論:
但是,這是正確的答案嗎?其實在機器學習中,沒有 "正確的答案"。這些算法通常會給你一個 "相當OK "的數字!它需要 "訓練 "更多的數據。 它要 "訓練 "的數據越多,預測的效果就越好。做好預測的關鍵是了解使用哪種算法,當然,線性梯度下降并不總是最好的選擇!
直線很少能完美地擬合你的數據,但它比胡亂猜測要好得多。然而,做一條符合所有點的曲線也不是一個好主意,這叫做過度擬合。
如果你熟悉統計學,你可以使用簡單的線性回歸來建立預測線。但是,如果你的數據中的列數增加,你將不得不使用大量的 "昂貴的數學 "來建立預測(效果很好,但需要大量的計算機能力)。這就是機器學習算法的用武之地。梯度分解算法不會隨著列數的增加而變得越來越復雜。對于較大的數據集來說,它是一個廉價而快速的選擇!
在Qlik Sense中實現一個簡單的梯度下降算法并不難,也不需要實現Python!!
// LOAD TRAINING DATA Training_table: LOAD num(num#(X,'',',')) as X, num(num#(Y,'',',')) as Y FROM [lib://AI_DATA/INSURANCE/data.txt] (txt, codepage is 28591, embedded labels, delimiter is '\t', msq); // GRADIENT DESCENT FUNCTION // DEFINE HOW MANY TIMES TO LOOP Let iterations= 15000; // DEFINE LEARNING RATE Let α = 0.001; // DEFINE START VALUES FOR ALL THETAS (WEIGHTS). Let θ0 = 0;Let θ1 = 0; // GET HOW MANY ROWS TRAINING DATA HAS. Let m = NoOfRows('Training_table'); // START LOOP For i = 1 to iterations // CREATE A SUMMARY TEMP TABLE temp: LOAD Rangesum(($(θ0) + (X* $(θ1)) - Y), peek(deviation_0)) as deviation_0, Rangesum(($(θ0) + (X * $(θ1)) - Y) * X, peek(deviation_X)) as deviation_X Resident Training_table; // GET THE LAST ROW FROM THE temp TABLE // THAT HAS THE TOTAL SUM OF ALL ROWS Let deviation_0 = Peek('deviation_0',-1,'temp'); Let deviation_X = Peek('deviation_X',-1,'temp'); // DROP THE temp TABLE. NO LONGER NEEDED drop table temp; // CHANGE THE VALUE OF EACH θ TOWARDS A BETTER θ Let θ0 = θ0 - ( α * 1/m * deviation_0); Let θ1 = θ1 - ( α * 1/m * deviation_X); // REPEAT UNTIL ITERATIONS HAVE REACHED THE GIVEN MAX next i;
Qlik的愿景是一個數據素養的世界,每個人都可以使用數據來改善決策并解決他們最具挑戰性的問題。只有Qlik提供端到端的實時數據集成和分析解決方案,以幫助組織訪問所有數據并將其轉化為價值。慧都作為Qlik官方的中國合作伙伴,我們為Qlik的中國用戶提供產品授權與實施、定制分析方案、技術培訓等服務,旨在讓中國企業的每個Qlik用戶都能探索出數據的價值,讓企業形成分析文化。了解更多信息,請咨詢
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn