揚聲器 | 成績單 |
| 盧卡斯 | 好的,謝謝大家來聽我的演講。 我叫盧卡斯·貝弗林。 我是英特爾的統計學家。 |
| 今天我將討論如何使用 JMP 來比較不同環境中的模型。 |
| 好的,目前 JMP 15 Pro 是 JMP 推出的最新、最好的工具,如果您想擬合模型,他們有幾種不同的工具可以做到這一點。 |
| 有適合模型的平台。 神經網絡分區平台上有神經平台。 如果你想要分類和回歸樹。 用於非線性建模的非線性平台等等。 |
| 因此,在 JMP 15 中,我認為它是在 12 或 13 中出現的,但是這個模型比較平台是一個非常漂亮的工具,您可以使用它來進行比較 |
| 模型適合 JMP 內的各種平台。 因此,如果您有一棵樹和一個神經網絡,並且您不確定哪個更好。 好吧,你可以在兩者之間來回切換。 但現在有了這個, |
| 所有內容都在同一個屏幕上。 這是非常快速和容易判斷的,這個比那個更好,等等。 |
| 話雖這麼說,JMP 可以適應很多東西,但遺憾的是,它不能適應所有情況。 所以只是對一些不適合的地方給出一些想法。 所以,舉例來說, |
| 那些進行大量機器學習和人工智能的人可能適合自動編碼器或卷積神經網絡之類的東西,它們通常需要大量的激活函數,或者是的,大量的隱藏層節點, |
| JMP 提供的激活函數之外還有其他激活函數,因此 JMP 無法在 JMP 中執行大量操作。 |
| 另一種稱為投影追踪回歸。 另一種稱為多元自適應回歸樣條。 不幸的是,有一些事情 JMP 無法做到。 |
| R、Python 和 MATLAB。 |
| 那裡還有好幾個, |
| 但我將重點關注這三個。 話雖這麼說,我要在這裡討論的想法,你想用 C++ 或 Java 或 Rust 或任何其他語言來適應它們 |
| 我想到的是,您應該能夠使用其中的很多。 |
| 因此,正如我所說,我們也可以使用模型比較平台來與其他軟件進行比較。 那麼你需要什麼? |
| 因此,您需要的兩件大事是來自您用來擬合模型的任何軟件的模型預測。 |
| 一般來說,當我們進行模型擬合時,特別是對於較大的模型,您可以將數據拆分為訓練驗證和/或測試集。 |
| 您將需要一些東西來告訴所有軟件哪些是訓練,哪些是驗證,哪些是測試,因為在比較擬合時您會希望這些保持一致。 |
| 好的,我選擇 R、Python 和 MATLAB 作為本次演講重點關注的最大原因是 JMP 和腳本語言實際上可以創建自己的 R 會話並從中運行代碼。 |
| 因此,如果我想將線性回歸模型擬合到某些輸出,這裡的圖片很快就會顯示出來 |
| 前往波士頓住房數據集。 稍後我將更多地處理該數據集。 |
| 但如果您想在 R 中快速擬合線性回歸模型並輸出預測值,您可以這樣做。 當然你可以做JMP。 但只是給出一個非常簡單的想法。 |
| 所以, |
| 需要注意的一件事是,我使用的是 R 3.6.3,但 JMP 可以處理任何大於 2.9 的內容。 |
| 然後同樣的,Python,你可以調用你自己的Python會話。 所以這裡的圖片顯示了我用 Python 擬合了線性回歸。 我不會在這裡逐步介紹所有代碼行,但您已經了解了基本概念。 |
| 當然,現在使用 Python 時要小心一點,因為最新版本的 Python 是 3.8.5。 但是,如果您使用 Anaconda 來安裝,當版本大於 3.6 時,JMP 會遇到問題,因此 |
| 因為我在這個演示中使用的是 3.6.5。 |
| 最後,我們也可以創建自己的 MATLAB 會話。 |
| 所以這裡我使用 MATLAB 2019b。 但基本上,只要您的 MATLAB 版本是在最近七、八年內發布的,它就應該可以正常工作。 |
| 好的,那麼我們如何將所有內容聯繫在一起呢? 實際上,我們將在這裡討論一個四步流程。 首先,我們要擬合每個模型。 因此,我們將向每個軟件發送數據以及每個觀察值所在的集合。 |
| 模型擬合後,我們希望輸出這些擬合及其預測,並將它們添加到 JMP 可以查看的數據表中。 |
| 當然,我的警告是,請確保您所命名的內容可以告訴您在何處擬合模型或如何擬合模型。 我有兩個例子。 |
| 所以第三步,根據型號,您可能想查看一些型號診斷。 僅僅因為模型適合......根據數字看起來很適合,例如,看看你的殘差圖,你可能很快就會發現 |
| 最感興趣的領域不太適合。 |
| 或者殘差有問題等等。 因此,我們還將展示如何輸出此類內容。 |
| 最後,我們實際上將使用模型比較平台,將所有內容放入一個大表中來比較數字,這比來回翻轉要容易得多。 |
| 好的,我們現在將這些步驟分解得更詳細一些。 因此,對於模型擬合的第一步,我們基本上有兩個選擇。 首先,我們可以通過 JSL 告訴 JMP 調用您選擇的軟件。 |
| 向其發送數據和代碼以適應它。 所以,事實上,我會暫時跳出這個話題,然後這麼做。 |
| 所以你看這裡,我有一些實際調用 R 的代碼。 |
| 一旦完成,我將調用 Python,一旦完成,我將調用 MATLAB,然後將所有內容結合在一起。 現在我將詳細介紹這裡的代碼,但運行可能需要三到四分鐘。 所以我現在就這麼做。 |
| 當我們準備好時,我們會回到他身邊。 |
| 因此,我們的另一個選擇是創建一個帶有驗證的數據集。 好吧,我們創建一個包含驗證列和/或測試列的數據集,具體取決於有多少列 |
| 集將我們的數據分成。 我們計劃在我們需要運行的任何軟件上運行,當然,無論我們需要什麼,它都會輸出。 |
| 當然,有一些警告。 確保您...無論您使用的任何軟件實際上都具有適合模型所需的功能。 |
| 在嘗試將模型與物體進行比較之前,請確保模型已完成擬合。 |
| 確保輸出格式是 JMP 實際可以讀取的格式。 值得慶幸的是,JMP 可以讀取很多內容,因此這不是四個警告中最大的一個。 |
| 但正如我之前警告過您的那樣,請確保每個模型的預測與原始數據集中的正確觀察相對應。 |
| 所以這又回到瞭如果它是訓練,如果它是訓練觀察,當你將它放入 JMP 中時, |
| 當您將其安裝到使用的任何軟件中時,最好將其作為訓練觀察。 如果是在 JMP 中驗證,那麼它也是在其他地方驗證。 它在 JMP 中進行測試,並將在其他地方進行測試。 |
| 因此,請確保事情正確對應,因為我們想要找出的最後一件事就是查看測試集並說:“哦,這個更適合。” 嗯,這是因為其中的觀測值的權重不同,並且沒有任何真正的異常值。 所以這最終會扭曲你的想法。 所以 |
| 請注意,請注意,請注意。 |
| 好的。 正如我所提到的,我有一個當前在後台運行的示例。 所以我想提供一些關於我正在做的事情的細節。 所以 |
| 事實證明,我將在 R、Python 和 MATLAB 中擬合神經網絡。 因此,如果我想在 R 中執行此操作,我需要在 R 中安裝兩個包(位於任何基礎安裝之上),即 Keras 包和 Tensorflow 包。 |
| numpy、pandas 和 matplotlib。 |
| numpy 可以很容易地進行一些計算; pandas,pandas 做數據...一些數據操作; matplotlib 應該非常簡單地創建一些繪圖。 然後在MATLAB中我使用深度學習工具箱,你是否有權限使用都沒有。 |
| 好的。 因此,第二步,我們想要將預測添加到 JMP 數據表中。 因此,如果您使用 JMP 調用該軟件,您可以使用 JSL 代碼檢索這些預測並將其添加到數據表中,以便稍後進行比較。 |
| 因此,您可以採取的另一種方法是軟件自行運行並保存輸出,您可以快速告訴 JMP,嘿,提取該輸出文件,然後進行一些操作以將預測帶入您擁有的任何數據表中存儲您的結果。 |
| 現在我們還可以讀取診斷圖。 在這種情況下,我通常要做的是將這些診斷圖保存為圖形文件。 所以對我來說,它將是 PNG 文件。 但當然,無論哪個 |
| 您可以使用的圖形。 現在 JMP 無法覆蓋陽光下的每一個,但我相信 PNG 可以映射 jpg 和一些,它們......它們已經涵蓋了您常用的。 |
| 因此,第二個註釋我將其用於模型比較平台,但為了幫助確定您...您適合什麼模型以及適合它的位置, |
| 我通常建議為您添加的每個預測列添加以下屬性。所以我們在這裡看到,我們正在發送感興趣的數據表,這個屬性稱為預測。 |
| 所以這裡我們有你用來預測事物的任何東西(現在這裡的價值可能不是最好的選擇)但是 |
| 但是對於這個創建者來說,這告訴我,嘿,我使用什麼軟件來實際創建這個模型。 所以這裡我使用了 R。 它顯示了 R,因此它實際上適合屏幕。 Python 和 MATLAB 有點太長了,但我們可以在這裡放置任何我們想要的字符串。 |
| 當我稍後更詳細地瀏覽代碼時,您將會看到這些內容。 |
| 所以,這會派上用場,因為我稍後也會在 R 中擬合多個模型。 因此,如果我正確選擇列名稱,並且我有多個由 R 創建的列名稱,我仍然知道我實際正在查看的模型。 |
| 好的,這就是典型的模型比較對話框的樣子。 |
| 所以我要注意的一件事是,如果我在所有模型擬合的末尾單擊並單擊,這大致就是這樣的情況。 所以你可以看到我有幾個預測變量。 我有用於 MATLAB、Python 和 R 的神經網絡。 |
| 多種預測形式;我曾經使用 JMP 來擬合一些東西。 |
| 現在,人們通常會做的是,他們會將這個驗證列作為一個組, |
| 這樣它將對訓練驗證和測試進行分組。 實際上,當我將其粘貼到此處的 By 語句中時,我實際上更喜歡輸出。 稍後我會在這裡展示這一點。 但你可以把它或者 |
| 但我更喜歡這種方式的輸出,無論是長還是短。 |
| 所以這是最大的原因,現在我可以清楚地看到,這些都是訓練, |
| 這些都是驗證(不應該通過標題看到),這些都是測試。 |
| 如果您使用驗證作為組變量,您將得到一張包含 21 個條目的大表。 現在,將會有一個額外的列。 它說訓練驗證測試或者在我的例子中,它將是 012 但是 |
| 這樣的話,我就不用那麼苦苦思考了。 我不需要向任何人解釋 012 是什麼意思等等。 這就是我做出這個選擇的原因。 |
| 好的,在這個例子中,我將在這裡進行分解,我將使用經典的波士頓住房數據集。 現在它包含在 JMP 中。 這就是為什麼我沒有將其作為文件包含在演示文稿中,因為如果您有 JMP,那麼您就已經得到了它。 |
| 因此,哈里森和魯賓菲爾德對房屋的中值價值有幾個預測因素,例如人均犯罪率、每個城鎮非零售商業面積的比例、 |
| 無論您想購買什麼,房間的平均數量,城鎮的學生與教師的比例(因此,如果有很多老師,但學生不多,通常意味著更好的教育,這就是很多人想要的 |
| 發現)和其他幾個。 我不會在這裡嘗試將所有 13 個內容都一一列舉。 |
| 好的,讓我介紹一下我在這裡看到的模型的一些背景知識。 然後我將深入研究 JSL 代碼以及如何適應所有內容。 |
| 我看過一些模型。 首先是典型的線性回歸模型。 所以在這裡你只看到一個簡單的線性回歸。 我只是將中值與稅率相匹配。 |
| 但當然我會使用多元線性回歸併使用所有它們。 |
| 所以, |
| 但有了 13 個不同的預測變量,並且知道其中一些可能相互相關,我認為也許其他一些類型的回歸也值得研究。 |
| 其中之一就是所謂的橋回歸。 所以實際上它是線性回歸,本質上是一個附加約束 |
| 我的參數的平方值不能大於某個常數。 |
| 我可以...事實證明我實際上可以將其重寫為優化問題,其中 lambda 的某些值對應於 C 的某些值。 |
| 所以我只是試圖用這個額外的懲罰項來最小化這個,而不是你習慣看到的典型的最小二乘法。 |
| 現在,這被稱為收縮方法,因為當然,當我讓它變得越來越小時,它會將所有這些推得越來越接近零。 因此,當然,需要考慮一下我希望它的限製程度如何。 |
| 現在隨著經濟萎縮,它將把每個人慢慢推向零。 但使用另一種懲罰項,我實際上可以完全消除一些項。 |
| 我可以使用一種叫做套索的東西。 所以這裡的限制是,好的,我將取這些參數估計值的絕對值之和,而不是參數估計值的平方。 |
| 事實證明,實際上會發生的是那些非常弱的參數估計本身設置為零,這可以作為 |
| 如果您願意的話,可以刪除不重要的術語。 |
| 因此,我們可以直觀地了解套索和嶺回歸正在做什麼。 所以對於嶺回歸來說,這裡的圓圈代表懲罰項。 |
| 在這裡我們正在研究參數空間。 所以真正的最小二乘估計就在這裡。 所以我們還沒有完全實現這一點,因為我們有這個額外的限制。 |
| 所以最後,我們基本上找到了在哪裡……我們在哪裡得到接觸圓的最小值。 這就是我們的嶺回歸參數估計。 |
| 對於套索,類似的繪圖,但您現在可以看到絕對值,這更像是菱形而不是圓形。 現在請注意,這是二維的,當然,我們將進入超球體和所有這些形狀。 |
| 但你可以在這裡看到,注意它正好接觸到鑽石的尖端。 因此,在這種情況下,貝塔一實際上為零。 這就是它消除術語的方式。 |
| 好的,我們要看看的另一件事是所謂的回歸樹。 現在,JMP 使用分區平台來執行這些操作。 所以只是為了快速演示一下它所顯示的內容,好吧,我擁有所有數據。 |
| 所以我要問自己的第一個問題是,住宅中有多少個房間,我知道我不能擁有 0.943 個房間,所以基本上, |
| 我有六個房間或更少。 所以,從樹的這一部分下來,我們不要從樹的這部分下來。 現在,如果我有七個或更多房間,這會立即告訴我我將預測我的中位數 |
| 值為 37。 請記住,它的單位是數万美元,因此請填寫 370,000 美元。 |
| 如果它小於 7,那麼我問的下一個問題是,lstat 有多大? |
| 因此,如果它大於或等於 14.43,我會查看此節點,突然間,我的住房中位數估計約為 150 格蘭特,如果我來到這裡,它將約為 233 格蘭特。 |
| 因此,回歸樹真正所做的是將輸入空間劃分為不同的區域。 我們對該區域內的每個值都給出相同的預測。 |
| 所以你可以在這裡看到我已經分區了......現在在這種情況下,我採用二維的,因為它更容易繪製...... |
| 所以你可以在這裡看到這棵樹,我首先在這裡查看 x1。 現在看看這裡的 x2 並詢問關於 x1 的另一個問題,並詢問關於 x2 的另一個問題,這就是我最終對輸入空間進行分區的方式。 |
| 現在這五個中的每一個都有一個預測值。 這基本上就是這個樣子。 我從上面看這個。 我會得到這個。 但你可以在這裡看到 |
| 預測會略有不同,具體取決於五個區域中哪一個是正確的。 |
| 現在,我不會過多討論如何準確地適應其中之一,但是 |
| James、Witten、Tibshirani 和 Friedman 貢獻了一點;獅子座???寫了一本關於它的開創性的書,所以你可以在那裡看看。 |
| 接下來,我將討論神經網絡,它現在在機器學習等領域被廣泛使用。 這樣就可以直觀地了解神經網絡的樣子。 所以在這裡,這個視覺在傳遞它們時只使用 5 個和 13 個輸入 |
| 對於這些...這個隱藏層。 其中每一個都通過激活函數進行轉換。 |
| 對於每個激活函數,您都會得到一個輸出,我們將使用...... |
| 通常,我們只會使用這些輸出的線性回歸來預測中值。 |
| 可以,然後呢 |
| 實際上,歸根結底,神經網絡是非線性模型,實際上,它們被稱為神經網絡,因為其表示通常是我們如何看待神經元在人腦中的工作方式。 |
| 因此每個輸入都可以傳遞到隱藏層中的節點。 在隱藏層,您的輸入通過激活函數推送,併計算一些輸出,每個輸出可以傳遞到另一個隱藏層中的節點或作為網絡的輸出。 |
| 現在,在 JMP 中,您只允許使用兩個隱藏層。 |
| 說實話,就創建神經網絡而言,沒有什麼說你不能擁有 20 個神經網絡 |
| 我們現在關心的是。 說實話,有一些統計理論表明,嘿,我們可以近似任何連續函數, |
| 給定一些邊界條件,有兩個隱藏層。 這很可能就是 JMP 做出這一決定的原因。 |
| 線性、雙曲正切和高斯徑向基。 所以事實上, |
| 在這些節點上,請注意這裡的小曲線。 我相信這是雙曲正切函數;線性將是一條向上的直線;我相信,高斯徑向基看起來更像是一條正態曲線。 |
| 這就是神經網絡平台。 所以我們要討論的最後一個是所謂的投影追踪回歸。 我想提取一些 JMP 根本無法做到的事情,只是在這裡舉個例子。 |
| 嗯,投影尋踪回歸最初是由斯坦福大學的 Jerome Friedman 和 Steutzle 提出的模型。 他們的模型進行預測……做出 y 形式的預測,等於 beta i、f sub i 的總和以及輸入的線性變換。 |
| 實際上,這有點類似於神經網絡。 這裡有一個隱藏層,有 k 個節點,每個隱藏層都有激活函數 fi |
| L。 事實證明,通過投影追踪回歸,我們實際上也將估計這些 f sub i 。 |
| 一般來說,它們會是某種更平滑的擬合或樣條擬合。 通常,f sub i 稱為嶺函數。 現在我們有 alpha,我們有 beta,我們有需要優化的 F。 所以一般會進行階段式擬合。 現在我不會太深入地討論細節。 |
| 好的,我已經瀏覽了所有模型。 |
| 現在我將展示一些輸出,希望一切看起來都不錯。 因此,在開始使用 JMP 之前我要注意的一件事是 |
| 在 R、Python 和 Keras 中為神經網絡設置種子確實很困難。 因此請注意,如果您獲取我的代碼並運行它,您可能不會得到與我所得到的完全相同的結果,但它應該非常接近。 話雖如此, |
| 讓我們看看我們得到了什麼。 這就是我得到的輸出。 不幸的是,現在事情似乎並不完美。 |
| 所以, |
| 盧卡斯 | 我這裡有什麼? 所以我有我的培訓、我的驗證和我的測試。 因此我們很快發現其中一種模型不太適合。 不幸的是,R 中的神經網絡發生了一些可怕的事情。 |
| 它一定是在輸入空間中抓住了一個不好的地方,然後再開始。 所以它不適合一個很好的模型。 |
| 不幸的是,非線性模型的起始參數很重要;在某些情況下,我們會被它們咬。 |
| 但如果我們看看其他一切,其他一切似乎都很合適。 現在什麼是相當好,我們可以爭論這一點,但我看到 R 方,一個高於 0.5。 我看到根平均值 |
| 這裡的平方誤差大約為 5 左右,甚至我們的平均絕對誤差也在 3 的範圍內。 現在對於訓練來說,看起來投影尋踪回歸效果最好。 |
| 如果我歸結為驗證數據集,它看起來仍然像 R |
| 投射追踪表現最好。 但如果我們查看測試數據集,突然之間,不,投影追踪回歸排在第二位,假設我們要忽略 R 中的神經網絡,這是第二差的。 |
| 通常,在這樣的框架中,我們會查看最接近的測試數據集,因為它沒有以任何方式、形狀或形式來確定模型擬合。 |
| 基於此我們看到,看起來像 |
| JMP 的嶺回歸擬合效果最好。 |
| 我們可以在這裡看到,它的 R 平方為 0.71,之前約為 0.73,這里約為 0.73,所以我們可以看到它始終擬合 |
| 所有三個數據集都是同樣的事情。 因此,如果我被迫做出決定,僅根據我目前所看到的情況,我可能會選擇 |
| 嶺回歸。 話雖這麼說,我們這裡有一大堆診斷等等。 所以如果我想看看 R 神經網絡發生了什麼, |
| 我很快就看到了,剛走幾步就發生了事情。 正如您所看到的,它的擬合工作非常糟糕,因為幾乎所有內容都預測為 220 或數千。 |
| 所以我們知道在安裝過程中出了問題。 |
| 所以我們看到嶺回歸看起來是最好的。 那麼讓我們看看它吐出了什麼。 所以我很快就會展示我的 JSL 代碼 |
| 顯示了我是如何做到這一切的,但是,嗯,我們可以看到這裡是嶺回歸的參數估計。 我們可以看到山脊診斷圖,所以事情並沒有比最初的估計縮小太多。 |
| 您可以從日誌驗證測試中看到,沒有什麼。 |
| 在右邊,我們基本上有殘差圖。 這些都是實際的預測。 |
| 所以你可以從訓練中看到,看起來有一些相當昂貴但沒有得到很好的預測。 我們在這裡看到的數量比測試集中的要少,看起來我們並沒有遇到太多麻煩。 我們這裡有幾點有點奇怪,但我們可以看到一般情況 |
| 當我們住在價格較低的房子時,它非常適合所有三個數據集。 再次,我們可能想問自己這些發生了什麼,但是, |
| 目前,這似乎是其中最好的。 所以我們可以從別人身上看到。 |
| 看這裡。 我們將暫時了解一下 MATLAB。 |
| 因此,您也可以在這裡看到訓練測試驗證。 所以我們在這裡吐出...MATLAB 吐出一件事診斷,你可以看到它花了幾個時期才能完成。 |
| 但值得慶幸的是,據我們所知,MATLAB 運行得相當快。 |
| 然後是這裡預測的實際情況。 |
| 這一切我們都可以看到。 |
| 好的,我現在要花幾分鐘時間看一下代碼。 |
| 當然,請注意一些注意事項,確保安裝了所有東西,以便您可以實際運行所有這些,因為如果沒有安裝,JMP 就會嚴重失敗,不會輸出預測,然後它就會失敗,因為它找不到預測。 |
| 因此,JMP 能夠使用代碼創建驗證列。 所以我選擇了 60 20 20。 我確實在這裡選擇了隨機種子,以便您可以使用與我相同的訓練驗證測試集。 |
| 所以實際上,目前我最終要做的就是保存訓練、驗證和測試的內容。 實際上我打算稍微刪除該欄。 |
| 我在這裡這樣做的原因是因為我將數據集發送到 R、Python 和 MATLAB,並且當其中的所有內容都是輸出或所有輸入時,編碼會更容易。 |
| 所以我不想要一個驗證列,但它也不是,然後這樣做就變得有點困難。 所以我最終做的就是向它發送數據集, |
| 我向它發送了訓練、驗證和測試的行,然後調用 R 代碼來運行它。 現在你實際上可以 |
| 將實際的 R 代碼本身放在此處。 我選擇在這裡只寫一行,這樣我就不必永遠滾動。 但沒有什麼可以阻止你。 如果只有幾行代碼,就像您之前在演示文稿中看到的那樣,我會將其粘貼到此處。 |
| 一旦完成,結果是......這段代碼會輸出 |
| 診斷圖片。 我們看到它在六七次迭代後停止了,讓我們說一下吧。 |
| 並且也適合此腳本中的嶺回歸,因此我們得到兩張圖片。 所以我也把它吐出來並保存它和輪廓框。 現在,這些都放在所有代碼的末尾。 |
| 然後我得到輸出,稍後我會將它們添加到數據表中。 |
| 好的,我在這裡給出一些代碼。 假設您有 600 萬個觀測值,需要 24 小時才能真正擬合模型,您可能不想在 JMP 中運行它。 |
| 因此,作為您可以從這裡執行的一點代碼,您可以說,嘿,我 |
| 好吧,我要打開我關心的數據表。 我會告訴 R 同時在其他地方運行它,一旦我的系統給我開綠燈,嘿,它已經完成了,我可以說,好吧,我們打開它的輸出並帶來它進入 |
| 我的數據表。 所以這將是你可以做一些事情的一種方法。 當然,您想將這些圖片文件保存在某處並使用此代碼。 但這將是完全相同的代碼。 |
| 好吧,對於 Python 來說,它會非常相似。 我要把這些東西傳遞給它。 運行一些 Python 代碼,輸出診斷圖並輸出預測。 |
| 我給出了一些 Python 代碼,你可以看到,它與我們在 JMP 中所做的非常非常相似。 在本例中,我將打開一些 CSV 文件。 複製該列並將其關閉,因為我不再需要它。 |
| 然後 MATLAB 再次進行完全相同的遊戲。 資產事物,運行 MATLAB 腳本。 我得到了我從這裡吐出來的PNG文件。 將其保存在我需要的地方,保存預測。 如果你需要抓住它 |
| 而不是從這裡運行它,一些示例代碼就可以做到這一點。 |
| 好的,現在我已經完成了 R、Python 和 Matlab 的調用,我帶回了驗證列,以便 JMP 可以使用它。 所以既然我記得哪個是哪個。 |
| 因此,默認情況下,JMP 會查看我們將使用的驗證列中的值。 最小值是訓練,次大的是驗證,最大的是測試。 現在,如果您進行 K 折疊交叉驗證,它會告訴它是哪一個折疊。 因此,瀏覽 012345678 等等。 |
| 那麼就創建這個吧。 然後我又在這裡創建了這個,這樣一來,它實際上會在我的輸出中顯示訓練、驗證和測試,而不是 012,所以更清楚 |
| 理解。因此,如果我要向以前從未運行過 JMP 的其他人展示,他們不會知道 012 意味著什麼,但他們應該知道訓練、驗證和測試是什麼。 |
| 好的,現在我開始將預測添加到我的數據表中。 嗯,這就是我之前在演講中提到的集合屬性。 |
| 我的創建者是 MATLAB,我已經給出了列名稱,所以,嘿,我知道這是 MATLAB 的神經網絡預測。 所以我可能不一定需要創建者,但以防萬一我在命名時有點草率 |
| 對於那個很抱歉。 |
| 所以我們可以獲得所有的投影尋踪回歸、神經網絡等等。 |
| 然後我還注意到,嘿,我在 JMP 中擬合了嶺回歸、套索、線性回歸。 |
| 所以我在這裡做了這一切。 所以在這裡我做了我的擬合模型,我的廣義回歸。 把這些都吐出來。 |
| 保存我的預測公式。 |
| 最後繪製我的實際輸出和預測的完整輸出。 |
| 我將適應我的神經網絡。 我可以說驗證欄嗎? 我轉移了我的協變量,一般來說,當我們將事物縮放到零附近時,神經網絡往往會更適合一點,而不是通常的輸出。 |
| 所以我的第一個隱藏層有三個節點。 我的第二個隱藏層有兩個節點。 這裡它們都是線性激活函數。 事實證明,對於上述三個,我使用受限線性單位激活函數,因此略有不同, |
| 但我發現無論如何它們似乎都差不多。 |
| 5. 這意味著,嘿,我將嘗試五組不同的起始值,其中最好的一組就是我要保留的值。 |
| 正如您從我的代碼中可以看出的那樣,我可能應該使用 R 來完成此操作。 它完成了四次循環,完成了其中的幾個,吐出做得最好的一個。 因此,對於未來的工作,這將是我會去的地方。 |
| 然後我把這些東西保存起來,現在我準備好進行模型比較了。 所以現在我將所有這些新列引入模型比較中。 |
| 滾動一點。 因此,正如我之前提到的,我在這裡進行驗證。 |
| 最後,我只是做了一些編碼,使其看起來像我想要的樣子。 |
| 所以我得到這些大綱框,只是說訓練診斷、驗證診斷、測試診斷,而不是 JMP 所說的通常內容。 |
| 我要得到這些診斷圖。 |
| 現在我只是說我只想要部分輸出來抓住它的句柄。 |
| 我將快速繪製一些殘差圖,因為並非所有殘差圖都會立即輸出這些殘差圖,尤其是來自 MATLAB、Python 和 R 的殘差圖。 |
| 設置這些標題,然後我在這裡創建大的舊表格或大的舊對話。 |
| 然後我記錄下一切。 |
| 所以它又漂亮又乾淨。 關閉一堆東西,這樣我就不用擔心事情了。 然後我最後所做的就是我想要發生的事情是當我打開其中一個時, |
| 它下面的所有其他內容都會立即打開,而不是 |
| 必須點擊六七個不同的東西。 你可以看到,我必須點擊這里和這裡 |
| 這邊,還有三個。 我猜還有一個。 對不起。 但這樣,我就不必點擊其中任何一個,它們會自動打開。 |
| 這就是最後一段代碼的作用。 |
| 好的。 |
| 盧卡斯 | 所以這只是不同的輸出和實時運行。 但這也是它的樣子。 |
| 正如我提到的,在代碼中,你看到了那裡,你看到了我們所看到的其他東西。 |
| 理查德 |
| 盧卡斯 | 沒有。 因此,總而言之,模型比較平台確實是一個非常好的工具,可以在一個地方比較多個模型的預測能力。 您不必在各種事情之間來回切換。 你可以只看眼前的一切。 |
| 這種靈活性甚至可以用於擬合不適合 JMP 的模型或比較不適合 JMP 的模型。 所以 |
| 有了這個,如果我們需要擬合需要很長時間才能擬合的非常大的模型,我們可以告訴它們去擬合。 將所有內容提取到 JMP 中,並輕鬆查看所有結果以嘗試確定後續步驟。 |
| 感謝您抽出時間。 |