主頁 > 後端開發 > 量化投資學習筆記35——《機器學習入門》第一部分

量化投資學習筆記35——《機器學習入門》第一部分

2020-10-21 17:15:59 後端開發

本文根據Jin Liang的《Getting Started with Machine Learning》ver 0.96而寫,基本上就是翻譯,但并不是逐字翻譯,
第一部分 機器學習基礎
01.概述
應用:自動駕駛,面部識別,垃圾郵件識別,信用卡欺詐識別,機器驗傷,銷售預測,語音識別,機器人,
深度學習包含于機器學習包含于人工智能,
機器學習使使計算機程式從已有的資料中學習已預測新的資料,趨勢,
機器學習的流程:
①選擇資料,分成訓練資料,驗證資料,測驗資料,
②資料建模,利用資料的相關特征訓練相關模型,
③驗證模型:使用驗證資料檢驗模型,
④測驗模型:使用測驗資料測驗已驗證的模型,
⑤使用模型:部署整個模型,對新資料進行預測,
⑥改進模型
與傳統方法的區別:傳統方法是人事先制定好所有解決問題的方法,而機器學習是從資料中自己學習解決方法,
與資料挖掘的區別:資料挖掘是從資料中尋找未知的模式和關系的科學,機器學習是應用事先推斷的知識于新的資料以在實際問題中做出決策,
考慮是否需要機器學習?
①你是否需要機器學習?
你是否需要將任務自動化?有復雜的規則和非結構化資料的大量任務是合適的選擇,
②能否將你的問題清晰的用公式表達?
要何種輸入,進行何種預測?
③你是否有合適的例子?
機器學習總是需要資料的,通常來說,資料越多越好,資料需有兩個部分(有監督學習),特征和標簽,
④資料的規則性
機器學習是學習規則和模式
稀少或不規則的資料難以學習,
⑤你能否找到資料的真實意義?
樣本常以特征矩陣的形式出現,成功的機器學習需要好的特征,
⑥你如何定義成功?
評估函式需支持商業目標,
你應當何時使用機器學習?
涉及大量資料,但沒有現成的公式或方程的任務或問題,
如何創建機器學習模型?
將資料劃分為訓練集和測驗集,用訓練集資料進行資料清洗,特征工程,模型選擇,引數優化,最后建立模型,用模型對測驗資料進行預測,最后將預測值與真實值進行對比,
機器學習的基本任務
分類(預測類別):決定資料點屬于哪個類別,
回歸(預測值):計算與樣本點相關的連續值屬性,
02.理解商業
理解你的問題,包括以下任務:
①.定義你的商業目標
②.評估你的形勢
③.定義你的資料挖掘目標
④.制訂你的專案規劃,
資料科學可以回答的五個問題:
①這是A還是B?
②它是怪異的嗎?
③有多少?
④這是如何組織的?
⑤我接下來該做什么?
03.理解資料
收集原始資料
描述資料
探索資料
檢驗資料質量
在考慮能做多好之前先考慮能不能做,
04.資料準備
資料清理準備在整個機器學習程序中耗時最多,約一半以上的時間,
真實世界的資料是臟的,影響資料質量的因素:
①無效資料
②資料格式不一致
③屬性間的依賴關系
④重復資料
⑤資料缺失
⑥書寫錯誤
⑦位置錯誤:一個屬性包含另一個屬性的資料,
資料預處理避免“垃圾進,垃圾出”:資料清洗,資料重構,文本清洗,資料歸一化(normalization),資料離散化,
處理缺失值的方法:洗掉,用空值,平均值,高頻數值,回歸值來填充,
例外值的問題,有的演算法對其很敏感,
對奇異值的處理:保留、拋棄或用鄰近值代替,
這樣處理的點如果少于5%,不會影響假設檢驗,否則可能影響樣本代表性,降低分析的有效性等,可以考慮資料轉換,或使用其它資料處理技術,
資料歸一化:將資料縮小到指定范圍內,
①最大值最小值法
歸一化后的樣本值 = (原值 - 最小樣本值)/(最大樣本值-最小樣本值)
②正態化
z=(樣本值 - 平均值)/標準差
③數值小數點位數改變,
資料描述:可以用可視化等方法,可以用分類方法將連續資料離散化,
資料縮減:樣本再取樣,對屬性取樣,對樣本分組,每組用一個資料代表,
文本清洗,
特征工程:這是機器學習中的關鍵任務,從原始資料中提取特征的程序,它是一種藝術,將資料納入模型與避免較多的資料納入之間存在平衡,引入不相關的變數會增加模型噪音,
特征即輸入,自變數;目標即結果,因變數,
特征工程可以增強你的資料,
為何應該執行特征篩選?
①簡化模型便于研究者/應用者解釋,
②縮短訓練時間減少學習程序,
③避免維度災難(curse of dimensionality)
④通過降低過擬合增強模型的通用性,
維度災難:當維度高于某特定限度后,模型表現反而下降的現象,原因,當維度越高時,平滑填充整個空間的資料需要指數級的增長,但實際中資料的規模是固定的,
現代特征選擇的方法:過濾(filter),封裝(wrapper),嵌入(embedded method),
傳統方法:前向法(逐漸向模型添加特征),后向法(逐漸從模型中排除特征),逐步回歸法,
①過濾法:納入所有特征-選擇最佳子集-學習演算法-檢查模型表現,
通過統計學方法檢驗每個特征與結果的相關性,排序,從而決定納入和排除哪些特征,
該方法傾向于納入多余的變數,因為它不考慮變數間的關系,
②封裝法:通過一個前瞻性的模型來給特征子集評分,
所有特征的集合-產生一個子集,執行學習演算法-反復進行上一步,選出最佳子集-執行,
該方法將特征子集的選擇看做一個搜索程序,用一個前瞻模型來評估子集,這種方法考慮了變數之間的關系,它運算強度比較大,比較耗時,但通常它能給出某個模型的最佳特征子集,
③嵌入演算法:特征選擇是模型建構程序的一部分,
所有特征的集合-產生一個特征子集-運用學習演算法建模-評價表現-重復上面三步,選擇表現最佳的特征子集,最常用的是正則化方法(regularization),
后兩種演算法更耗時,更易產生過擬合,
特征選擇與降維
特征選擇減少了特征數量,但通常不被稱為降維,特征選擇產生一個特征的子集但并不改變其資料,降維方法可以通過改變資料將原有的特征轉化為新特征,
谷歌的特征工程的定義:將原始資料轉換為特征向量的程序,
05.建模
建模是一個綜合資料結構,演算法,數學等以找到資料集中特征與目標的關系的互動性程序,
模型定義了特征與標簽之間的關系,
機器學習程序:獲取原始資料,資料清洗處理,特征工程,建模,模型檢驗,應用,
建模是一個反復試驗調整的程序,
通常在真實值與預測值之間有差異,平均誤差平方(Mean square error,MSE)常用來表示誤差的大小,也被稱為損失函式或成本函式,
模型的訓練是一個尋找最佳引數使得預測誤差最小的迭代程序,
梯度下降法是尋找最佳引數的常用演算法,
引數和超引數
超引數是訓練前指定的(根據經驗等),決定模型的不同,"調參"就是調整這個,引數是從資料中學習到的,
超引數的例子:神經網路的層數,學習率,隨機樹森林里樹的數目,
分類演算法,根據結果有兩分類和多分類,
機器學習分四類:監督學習,無監督學習,半監督學習,增強學習,
需要選擇合適的演算法,不合適的演算法準確度很低,
選擇演算法的因素:
①資料的大小,質量和性質
②可用的計算時間
③任務的緊急程度
④你想用資料做什么?
06.模型評估(Evaluation)
什么是好的模型?
準確度高,可解釋性強,快速,可擴展性強,
在訓練階段表現良好的模型可能在實際中表現很差,
能在新資料中有很好的普遍性的模型很關鍵,
欠擬合和過擬合
模型不能抓住資料中的重要特征叫欠擬合,它甚至在訓練集中表現都很差,這通常意味著使用了一個過度簡單的模型,(高訓練誤差,高測驗誤差)
模型能較準確的擬合訓練資料但在新資料上表現過差叫過擬合,(低訓練誤差,高測驗誤差)
這兩種情況都會導致預測表現太差,
模型檢驗其對新資料的有效性,通過倒置或分割資料以檢驗模型的有效性,在監督學習時抽出一部分資料作為測驗集,使用訓練集訓練模型,使用測驗集測驗模型,
模型檢驗策略:
①hold-out檢驗:將資料分為訓練集和測驗集兩部分,不要拿測驗集訓練模型,不建議采用這種方法,因為這種檢驗不能公平的評估假設的普遍性,
更好的檢驗方法:將資料劃分為訓練集,交叉驗證集和測驗集三部分,使用交叉驗證資料選擇模型,測驗資料來評估模型,這是吳恩達建議的,
對于小資料集,三者的比例約為6:2:2,對于大資料集,三者比例為98:1:1,
②k折交叉驗證(k-fold cross validation)
將資料集均分為k份大小相等的部分,重復進行k次hold-out檢驗,每次,其中一份資料用作測驗集,其余k-1份用作訓練集,計算每次檢驗的的誤差,
這一方法的優點是資料劃分方式對結果的影響很小,每份資料有一次作為測驗資料,有k-1次作為訓練資料,隨著k的增大,誤差減小,
③留一交叉檢驗(leave-one-out cross validation)
上一個方法的特例,k=n,即有多少樣本點,就分成多少份,每次只留一個樣本點做測驗資料,其余資料都作為訓練資料,這種方法需要很大的運算量,
檢驗方法的選擇:大資料集選擇hold-out檢驗,計算量小,適合于深度學習,因為資料量巨大,但傳統的資料劃分如80:20不適合于深度學習,小資料集選擇交叉驗證,10折比較常見,當更小的值也可以選,
評價模型的表現
模型評價矩陣
分類模型
準確性(Accuracy)
精確性(Precision)
召回(Recall)
F值
ROC
AUC
Log Loss
回歸模型
MAE(平均標準差)
MSE(平均方差)
RMSE(平均方差根,Root Mean Square Err)
MAPE(平均絕對誤差百分比)
R2
評估分類演算法
①準確率 = 預測正確例數/總例數
對于偏態資料準確率并不是一個好的指標,比如癌癥檢測,準確率很高的方法可能也是沒用的,
②精確性 = 正確的陽性預測/所有陽性預測,這回答的是預測是陽性的有多大比例是真的陽性,
③召回率 = 正確的陽性預測/(正確的陽性預測+錯誤的陰性預測),它回答的問題是真正的陽性中間有多大比例被預測為陽性,
預測錯誤的代價
有兩種錯誤:納假(第一類錯誤),拒真(第二類錯誤),一個概率高另一個概率就低,要根據犯錯的成本來選擇,
④F值 = 2*PR/(P+R)
值越大越好
⑤ROC曲線
正確陽性率與錯誤陽性率在不同決定水平的關系的曲線,
曲線顯示了當你允許越來越多的錯誤陽性的時候能得到多少正確陽性分類,
曲線越靠左上角越好,

a是隨機猜測,c比b好,
⑥AUC,ROC曲線下的面積,是用單獨一個數衡量模型表現的最好方法,值越高越好,隨機猜的模型,AUC=0.5,
評估回歸演算法
①MAE:誤差絕對值的平均值,
測量預測值與真實值的接近程度,之所以取絕對值,是防止正負誤差相互抵消,最好的回歸有最小的MAE值,因此MAE值越小越好,
②MSE:誤差平方的平均值
用誤差平方值代替絕對值,會放大誤差較大者的影響,跟MAE一樣,越小越好,
③RMSE:誤差平方和的平均數的平方根,
即MSE開平方根,是在回歸分析中最常用的指標,它有一些缺點,比較容易受例外值影響,其對大的誤差值更加敏感,同樣越小越好,
④MAPE:平均絕對誤差比例
當資料沒有極端值(包括0)時最好,當資料為0或接近0時該指標會給出混亂的結果,越小越好,
⑤R2
r稱為皮爾森相關系數,衡量兩個變數的線性相關性,取值范圍為[-1,1],當值為0時二者沒有線性關系,
R2是測量模型是否擬合真實資料的標準方法,等于r*r,它描述了因變數的變化能由模型來解釋的比例,它取值范圍[0,1],越高越好,在使用時要小心,太高的值要懷疑,
具體計算略了,
R2的問題:①往模型中加入更多的特征,R2的值會增加,盡管特征可能與因變數無關,因此一個特征更多的模型可能位元征較少的模型的R2值高,其預測能力卻未必如此,②當模型有更多特征和更高階的多項式時,會擬合噪音,即過擬合,而R2值會較高,產生誤導,
⑥調整R2
是R2的修正版,如果加入更多的無關特征,模型的調整R2會降低,而加入更多相關特征,模型的調整R2會升高,調整R2總是小于或等于R2,
誤差的來源有兩個:偏倚和變異,
變異是預測值偏離其平均值的程度,
偏倚是預測值與真實值的差異,
預測誤差可以分解為上述兩個部分,
低偏倚及低變異是最好的,高偏倚和高誤差是最差的,但通常無法兩者兼顧,在選擇模型時需要權衡兩者,選擇能平衡二者并使總誤差最小的模型,

左側是欠擬合(偏倚),中間剛好,右邊是過擬合(變異),
模型在訓練集上很好,在測驗集上很差,是變異問題,如果模型在訓練和測驗集上都很差,是偏倚問題,
可以使用交叉驗證來診斷偏倚和變異問題,
高偏倚問題的特征:高訓練誤差,驗證誤差與訓練誤差類似,
高變異問題的特征:低的訓練誤差,非常高的驗證誤差,
處理:
①高偏倚(欠擬合):使模型更復雜(嘗試其它模型;如更大的神經網路,);使用更復雜的特征;調整超引數;使用一系列復雜度更低的演算法(bosting)
②低偏倚而高變異(過擬合):獲取更多資料;減少特征數量;使用正則化;換成復雜度較低的演算法;使用一系列高復雜度的演算法(Bagging/隨機樹森林)
學習曲線是描述訓練誤差和測驗誤差隨訓練集的大小增加的變化的曲線,用來診斷偏倚和變異,

上面是典型的高變異的學習曲線,下面是典型的高偏倚的學習曲線,
具體調參的內容略了,
07.模型應用
應用訓練好的模型和真實資料進行預測,模型應用以后還要進行評估、監控、管理,
評估分為離線評估和在線評估,模型的表現會隨時間下降,對于表現不好的模型,撤回,
08.其它話題
幾個建議:
①快速建立初始系統,再迭代,別在一開始就過度思考,
②使用交叉驗證來評估模型的通用性,
③使用偏倚/變異分析和錯誤分析作為進一步改進的先導,
谷歌有資料集搜索引擎,
接下來第二部分是具體各種機器學習演算法的介紹,下次吧,

我發文章的四個地方,歡迎大家在朋友圈等地方分享,歡迎點“在看”,
我的個人博客地址:https://zwdnet.github.io
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的博客園博客地址: https://www.cnblogs.com/zwdnet/
我的微信個人訂閱號:趙瑜敏的口腔醫學學習園地

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/184124.html

標籤:Python

上一篇:2020Python練習一

下一篇:Python3標準庫:calendar處理日期

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more