摘要: 咱們常常思考機器學習,深度學習,以致於人工智能給咱們帶來什麼?在數據相對充足,足夠真實的狀況下,好的學習模型能夠發現事件自己的內在規則,內在聯繫。咱們去除冗餘的信息,能夠經過最少的特徵構建最簡單、偏差最小的模型,以此將學習到的規則,邏輯應用到具體的場景中,幫助咱們能夠快速準確的處理某些繁瑣重複的工做。html
模型訓練與在線預測服務、推薦算法四部曲、機器學習PAI實戰、更多精彩,盡在開發者分會場算法
【機器學習PAI實戰】—— 玩轉人工智能之你最喜歡哪一個男生?服務器
【機器學習PAI實戰】—— 玩轉人工智能之利用GAN自動生成二次元頭像學習
咱們常常思考機器學習,深度學習,以致於人工智能給咱們帶來什麼?在數據相對充足,足夠真實的狀況下,好的學習模型能夠發現事件自己的內在規則,內在聯繫。咱們去除冗餘的信息,能夠經過最少的特徵構建最簡單、偏差最小的模型,以此將學習到的規則,邏輯應用到具體的場景中,幫助咱們能夠快速準確的處理某些繁瑣重複的工做。測試
在本篇的案例中,咱們將對迴歸模型作一次具體的分析和應用。迴歸能夠作什麼?與分類模型不一樣,分類模型的預測值是固定的,而回歸模型能夠預測連續型的數據結果。好比商品銷量預測,商品價格預測等等。經常使用的迴歸模型包括線性迴歸,加權線性迴歸,嶺迴歸以及樹迴歸。在接下來的具體場景中,咱們將分析上述的迴歸算法,選擇最適合目前場景和已有數據的迴歸算法。人工智能
某收藏愛好者,欲購買某知名品牌的積木套裝。爲了瞭解如今的市場行情,他收集了關於該品牌積木的生成日期,是否爲全新的,積木數量,原始價格等特徵和已交易的價格。他想要根據這些數據,來預估如今市場上正在出售的積木價格,才能夠選擇合適的價格購入,但他發現經憑藉經驗來預測這些價格,每每不夠準確,並且繁瑣重複的工做至關耗費精力。而且他了解到阿里PAI平臺,能夠經過智能的方法,針對具體場景快速搭建解決方案。可是本身的問題能不能被很好的解決,具體該怎麼去實施仍是一頭霧水,下面就讓咱們伴隨他一塊兒走進阿里機器學習平臺PAI的實戰。spa
在拿到收集到的數據以後,咱們要先對數據進行簡單的分析,來選擇合適的算法。3d
price date number is_new origin_price
0 85.00 2006 797 0.0 49.99
1 102.50 2006 799 0.0 49.99
2 77.00 2006 795 0.0 49.99
3 162.50 2006 800 0.0 49.99
4 699.99 2002 3094 0.0 269.99
5 602.00 2002 3093 0.0 269.99
6 515.00 2002 3090 0.0 269.99
7 510.00 2002 3090 0.0 269.99
8 375.00 2002 3086 0.0 269.99
9 850.00 2002 3096 1.0 269.99
10 740.00 2002 3096 0.0 269.99
11 759.00 2002 3096 1.0 269.99
12 730.00 2002 3096 0.0 269.99
13 750.00 2002 3096 1.0 269.99
14 910.00 2007 5195 0.0 499.99
15 1199.99 2007 5195 1.0 499.99
16 811.88 2007 5194 0.0 499.99
17 1324.79 2007 5195 0.0 499.99
18 850.00 2007 5195 1.0 499.99
19 800.00 2007 5195 1.0 499.99
20 810.00 2007 5194 0.0 499.99
21 1075.00 2007 5195 1.0 499.99
22 1050.00 2007 5195 0.0 499.99
咱們截取了部分數據,從第三列到第爲列特徵含義依次是生成年份,積木數量,是否爲全新以及原價。第二列爲收集到的已交易的價格。
咱們驚喜的發現,全部數據都是連續性的,而不是標稱性數據。所謂連續型就是不可枚舉,數值是聯繫可變的,而標稱型數據就是幾個固定的值,好比學生性別,手機型號,衣服尺碼(L,XL,XXL)等。若是不是連續型數據,就須要作數據的量化處理。
經過上面的部分數據,咱們能夠直觀的看出下面信息。
1,年份和原價具備強相關性,換句話說年份和原價具備對等關係,這兩個特徵爲重複特徵,其包含的信息是同樣的;2,是否爲全新這個特徵,是二值特徵。不能表示商品的新舊程度。3,積木數量若存在缺失,將嚴重影響價格。4,收藏品價格會在必定程度上高於原價。
咱們從這位收藏愛好者處瞭解到,其收集到的數據不足100條。但願的場景是,若是再給一組樣本,能夠快速的給出預測的價格。
接下來,咱們就須要把具體的問題抽象化。假設咱們只用原價一個特徵來預估商品價格。
price=f(origin_price)=worigin_price+b*
f(x)就是一種目標值的計算公式。w,b就是線性迴歸係數,一旦獲得這些係數,再輸入新的特徵值(原價)就能夠計算出商品的交易價格。若是輸入特徵爲多維的即:
price=f(date,number,is_new,origin_price,)=w1date+w2number+w3is_new+w4origin_price+b
固然咱們有策略選擇哪些係數是最優的。在模型的學習和預測中,咱們遇到帶標籤的數據,即已經知道交易價格的數據。經過這些標籤值和咱們預測值的比較來判斷這組迴歸係數是否是最好的。
E=error(price-predicted_price)=||price-predicted_price||l
當這組係數在全部數據中偏差爲最小的,咱們就能夠說學習到了最優的參數來擬合訓練數據。
咱們知道這個問題能夠經過迴歸算法來解決,就興致沖沖的打開了PAI 可視化建模頁面進入了本身搭建的機器學習項目。進入方法以下:
在組件欄發現有好多回歸算法能夠選擇。
可是這麼多算法該如何選擇?
模型的選擇絕大程度上依賴樣本的特徵,若是特徵值與樣本呈現明顯的線性關係,咱們就選擇線性迴歸模型。比 如一本書的厚度和頁碼的關係。非線性迴歸的例子也有不少,好比圓形容器的蓄水量和容器的半徑的關係。固然大可能是非線性迴歸也能夠轉化成線性迴歸,這裏就不細談。
GBDT迴歸,是樹迴歸的一種,能夠解決線性和非線性迴歸問題。
AdaBoost迴歸是一種強化迴歸算法,AdaBoost是集成學習算法,能夠將弱學習器強化爲強學習器,能夠應用在分類和迴歸算法。這裏AdaBoost迴歸就是一種強化的集成迴歸算法。
PS-SMART,PS-線性迴歸,分別是基於PS是參數服務器(Parameter server)的GBDT算法和線性迴歸算法。主要用於大規模數據的學習預測任務。
針對上面樣例,直觀的發現,價格與特徵呈明顯的線性關係。咱們能夠選擇線性迴歸做爲嘗試。
在模型訓練以前,須要對對訓練數據進行預處理。主要包括類型的轉化,量化,缺失值填充等等。如今咱們有一份txt的格式的離線數據,內容樣本如上所示。經過對數據的分析,現有數據不須要進行類型的轉化和量化,能夠進行缺失值的填充。在進入預處理以前,咱們須要將訓練樣本放到odps表中。
CREATE TABLE if not EXISTS item_features
(
price Double COMMENT "預測價格",
production_date BIGINT COMMENT "production_date",
quantity BIGINT COMMENT "數量",
is_new DOUBLE COMMENT "1:new,0:old",
original_price DOUBLE COMMENT "原價"
)
LIFECYCLE 7
;
分隔符爲本地文件的列之間的分隔符,默認爲逗號。若是本地文件中第一行不是標題,則選擇起始行爲1,不勾選首行爲標題。下一步,而後輸入新建的odps表名,選擇按位置匹配(只有前面選擇首行爲標題,才能夠選擇按名稱匹配),而後導入。
至此,咱們對數據有了充足的瞭解,知道選擇何種模型,須要對數據作什麼預處理,並且訓練數據也已準備好了。接下來,我就須要在PAI 可視化建模頁面,拖拽組件,搭建可視化訓練流程。
雙擊拖入的讀數據表組件,再表名列輸入,前面新建的odps表名。能夠在字段信息欄看到表中部分數據。
訓練數據中,可能存在部分特徵值缺失的狀況,缺失值填充能夠選擇多種測試填充缺失值。
在右側屬性欄,選擇進行填充的參數,原值類型和填充值策略。
對於全部的訓練數據,咱們能夠有重疊的選擇出訓練集和測試集。拖入兩個隨機採樣組件,數據預處理-採樣與過濾-隨機採樣。字段參數設置以下圖:
拖入線性迴歸算法組件,機器學習-迴歸-線性迴歸。特徵列選擇 date number is_new origin_price特徵,標籤列爲price。
至此,以下圖所示,模型訓練的流程已搭建完成。點擊運行,就能夠依託PAI平臺服務,進行模型訓練了。
經過模型訓練,學習獲得了線性迴歸模型。在PAI平臺上,咱們能夠一鍵拖拽測試組件,機器學習-預測。對學習到的模型就行測試,並能夠直觀的觀測模型預測的結果。
以下圖所示:
詳情參考在線部署使用說明。
在線性迴歸模型組件,右鍵選擇模型選項-查看模型,就能夠看到學習到的模型。
右鍵選擇保存模型,就能夠將模型保存到個人模型下。經過模型定位,就能夠定位到個人模型處。
模型訓練完成以後,點擊部署-在線部署。輸入自定義的服務名稱(全網惟一,調用服務時使用)。
在已部署模型頁能夠看到,本身部署的全部服務。
詳情參考在線部署使用說明。
注意事項,body參數要按照特徵值的數量給出,每一條是一個字典,字段要和表結構一致,多條數據以數組形式添加。
迴歸算法和分類算法相似,也是對目標值的預測。其中迴歸算法主要用於對聯繫值的預測,而分類算法預測的則是離散值。在PAI平臺上有經常使用的各種迴歸算法,若是有興趣,能夠一一嘗試,選擇最適合本身場景和數據的迴歸算法。在接到一個具體的場景和問題後,一般咱們須要一系列的步驟去解決這個問題,收集數據,準備數據,分析數據,算法選擇,訓練算法,測試算法,使用算法。同時,PAI平臺中這些迴歸算法組件還支持部分算法參數的調整,好比迭代次數,最小偏差,以及正則化係數等等,咱們能夠在訓練算法模型中調整這些參數以達到最小可接受的偏差。
人人用得起的機器學習平臺↓↓↓↓
本文做者:伊逍
本文爲雲棲社區原創內容,未經容許不得轉載。