成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

金錢能讓人更快樂嗎?手把手教你用機器學習找到答案

人工智能 機器學習
一種對機器學習系統進行分類的方法是看它們如何泛化。大多數機器學習任務是要做出預測。這意味著系統需要通過給定的訓練示例,在它此前并未見過的示例上進行預測(泛化)。

一種對機器學習系統進行分類的方法是看它們如何泛化。大多數機器學習任務是要做出預測。這意味著系統需要通過給定的訓練示例,在它此前并未見過的示例上進行預測(泛化)。在訓練數據上實現良好的性能指標固然重要,但是還不夠充分。真正的目的是要在新的對象實例上表現出色。

泛化的主要方法有兩種:基于實例的學習和基于模型的學習。

[[347885]]

1. 基于實例的學習

我們最司空見慣的學習方法就是簡單地死記硬背。如果以這種方式創建一個垃圾郵件過濾器,那么它可能只會標記那些與已被用戶標記為垃圾郵件完全相同的郵件—這雖然不是最差的解決方案,但肯定也不是最好的。

除了完全相同的,你還可以通過編程讓系統標記與已知的垃圾郵件非常相似的郵件。這里需要兩封郵件之間的相似度度量。一種(基本的)相似度度量方式是計算它們之間相同的單詞數目。如果一封新郵件與一封已知的垃圾郵件有許多單詞相同,系統就可以將其標記為垃圾郵件。

這被稱為基于實例的學習:系統用心學習這些示例,然后通過使用相似度度量來比較新實例和已經學習的實例(或它們的子集),從而泛化新實例。例如,圖1-15中的新實例會歸為三角形,因為大多數最相似的實例屬于那一類。

▲圖1-15:基于實例的學習

2. 基于模型的學習

從一組示例集中實現泛化的另一種方法是構建這些示例的模型,然后使用該模型進行預測。這稱為基于模型的學習(見圖1-16)。

▲圖1-16:基于模型的學習

舉例來說,假設你想知道金錢是否讓人感到快樂,你可以從經合組織(OECD)的網站上下載“幸福指數”的數據,再從國際貨幣基金組織(IMF)的網站上找到人均GDP的統計數據,將數據并入表格,按照人均GDP排序,你會得到如表1-1所示的摘要。

表1-1:金錢能讓人更快樂嗎?

讓我們繪制這些國家的數據(見圖1-17)。

▲圖1-17:趨勢圖

這里似乎有一個趨勢!雖然數據包含噪聲(即部分隨機),但是仍然可以看出隨著該國人均GDP的增加,生活滿意度或多或少呈線性上升的趨勢。所以你可以把生活滿意度建模成一個關于人均GDP的線性函數。這個過程叫作模型選擇。你為生活滿意度選擇了一個線性模型,該模型只有一個屬性,就是人均GDP(見公式1-1)。

公式1-1:一個簡單的線性模型

生活滿意度= θ0 + θ1×人均GDP

這個模型有兩個模型參數:θ0和θ1。通過調整這兩個參數,可以用這個模型來代表任意線性函數,如圖1-18所示。

▲圖1-18:一些可能的線性模型

在使用模型之前,需要先定義參數θ0和θ1的值。怎么才能知道什么值可以使模型表現最佳呢?要回答這個問題,需要先確定怎么衡量模型的性能表現。要么定義一個效用函數(或適應度函數)來衡量模型有多好,要么定義一個成本函數來衡量模型有多差。

對于線性回歸問題,通常的選擇是使用成本函數來衡量線性模型的預測與訓練實例之間的差距,目的在于盡量使這個差距最小化。

這正是線性回歸算法的意義所在:通過你提供的訓練樣本,找出最符合提供數據的線性模型的參數,這稱為訓練模型。在這個案例中,算法找到的最優參數值為θ0 = 4.85和θ1 = 4.91×10^(-5)。

注意:令人困惑的是,同一個詞“模型”可以指模型的一種類型(例如,線性回歸),到一個完全特定的模型架構(例如,有一個輸入和一個輸出的線性回歸),或者到最后可用于預測的訓練模型(例如,有一個輸入和一個輸出的線性回歸,使用參數θ0 = 4.85和θ1 = 4.91×10^(-5))。模型選擇包括選擇模型的類型和完全指定它的架構。訓練一個模型意味著運行一種尋找模型參數的算法,使其最適合訓練數據(希望能對新的數據做出好的預測)。

現在,(對于線性模型而言)模型基本接近訓練數據,如圖1-19所示。

▲圖1-19:最擬合訓練數據的線性模型

現在終于可以運行模型來進行預測了。例如,你想知道塞浦路斯人有多幸福,但是經合組織的數據沒有提供答案。幸好你有這個模型可以做出預測:先查查塞浦路斯的人均GDP是多少,發現是22 587美元,然后應用到模型中,發現生活滿意度大約是4.85 + 22 587×4.91×10^(-5) = 5.96。

為了激發你的興趣,示例1-1是一段加載數據的Python代碼,包括準備數據,創建一個可視化的散點圖,然后訓練線性模型并做出預測。

示例1-1:使用Scikit-Learn訓練并運行一個線性模型

  1. import matplotlib.pyplot as plt 
  2. import numpy as np 
  3. import pandas as pd 
  4. import sklearn.linear_model 
  5.  
  6. # Load the data 
  7. oecd_bli = pd.read_csv("oecd_bli_2015.csv", thousands=','
  8. gdp_per_capita = pd.read_csv("gdp_per_capita.csv",thousands=',',delimiter='\t'
  9.                           encoding='latin1'na_values="n/a"
  10.  
  11. # Prepare the data 
  12. country_stats = prepare_country_stats(oecd_bli, gdp_per_capita) 
  13. X = np.c_[country_stats["GDP per capita"]] 
  14. y = np.c_[country_stats["Life satisfaction"]] 
  15.  
  16. # Visualize the data 
  17. country_stats.plot(kind='scatter'x="GDP per capita"y='Life satisfaction'
  18. plt.show() 
  19.  
  20. # Select a linear model 
  21. model = sklearn.linear_model.LinearRegression() 
  22. # Train the model 
  23. model.fit(X, y) 
  24.  
  25. # Make a prediction for Cyprus 
  26. X_new = [[22587]]  # Cyprus's GDP per capita 
  27. print(model.predict(X_new)) # outputs [[ 5.96242338]] 

如果使用基于實例的學習算法,你會發現斯洛文尼亞的人均GDP最接近塞浦路斯(20 732美元),而經合組織的數據告訴我們,斯洛文尼亞人的生活滿意度是5.7,因此你很可能會預測塞浦路斯的生活滿意度為5.7。

如果稍微拉遠一些,看看兩個與之最接近的國家——葡萄牙和西班牙的生活滿意度分別為5.1和6.5。取這三個數值的平均值,得到5.77,這也非常接近基于模型預測所得的值。這個簡單的算法被稱為k-近鄰回歸(在本例中,k = 3)。

要將前面代碼中的線性回歸模型替換為k-近鄰回歸模型非常簡單,只需要將下面這行代碼:

  1. import sklearn.linear_model 
  2. model = sklearn.linear_model.LinearRegression() 

替換為:

  1. import sklearn.neighbors 
  2. model = sklearn.neighbors.KNeighborsRegressor( 
  3.     n_neighbors=3

如果一切順利,你的模型將會做出很棒的預測。如果不行,則需要使用更多的屬性(例如就業率、健康、空氣污染等),獲得更多或更高質量的訓練數據,或者選擇一個更強大的模型(例如,多項式回歸模型)。

簡而言之:

  • 研究數據。
  • 選擇模型。
  • 使用訓練數據進行訓練(即前面學習算法搜索模型參數值,從而使成本函數最小化的過程)。
  • 最后,應用模型對新示例進行預測(稱為推斷),希望模型的泛化結果不錯。

以上就是一個典型的機器學習項目。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-10-23 17:23:50

機器學習技術模型

2021-08-09 13:31:25

PythonExcel代碼

2022-10-19 14:30:59

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2021-02-06 14:55:05

大數據pandas數據分析

2022-08-04 10:39:23

Jenkins集成CD

2009-04-22 09:17:19

LINQSQL基礎

2021-05-10 06:48:11

Python騰訊招聘

2021-01-21 09:10:29

ECharts柱狀圖大數據

2021-01-08 10:32:24

Charts折線圖數據可視化

2012-01-11 13:40:35

移動應用云服務

2021-08-02 23:15:20

Pandas數據采集

2020-03-08 22:06:16

Python數據IP

2021-02-02 13:31:35

Pycharm系統技巧Python

2021-12-11 20:20:19

Python算法線性

2017-10-18 09:48:13

深度學習TensorFlow入門篇

2017-10-27 10:29:35

人臉識別UbuntuPython

2021-06-05 23:51:21

ECharts氣泡圖散點圖

2021-01-30 10:37:18

ScrapyGerapy網絡爬蟲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一二三区 | 亚洲a在线观看 | 久久久婷婷 | 欧美日韩亚洲国产 | 精品久久一区 | 精品欧美激情在线观看 | 国产精品久久久久久久久久免费看 | 久久精品视频在线播放 | 美女久久 | 国产乱码精品1区2区3区 | 久久久91| 午夜影院 | 成人在线一区二区三区 | 99pao成人国产永久免费视频 | 欧美日韩国产一区二区三区 | 中文字幕91av| www.国产日本 | 欧美一区二区三区四区视频 | 亚洲欧美一区二区三区在线 | 怡红院怡春院一级毛片 | 在线看一区二区三区 | 91电影| 日韩欧美一级精品久久 | 国产精品视频一二三区 | 北条麻妃99精品青青久久主播 | 日韩欧美三级 | 国产一级在线 | 奇米四色影视 | 日本一区二区视频 | 在线观看视频h | 国产精品综合一区二区 | 欧洲成人午夜免费大片 | 国产精品无码永久免费888 | 96久久久久久 | 中文精品一区二区 | 亚洲免费在线视频 | 国产成人精品高清久久 | 91网站在线播放 | 亚洲精品久久久久中文字幕欢迎你 | 91麻豆精品国产91久久久资源速度 | www.久 |