1徽级、機器學習入門

一、什么是機器學習聊浅?

  • 機器學習是人工智能(AI)的一部分餐抢,研究如何讓計算機從數(shù)據(jù)學習某種規(guī)律现使;
  • 機器學習并不是人工智能的全部,也不等同于人工智能弹澎;
  • 人工智能 > 機器學習 > 深度學習朴下;
人工智能范疇.png

備注:手工創(chuàng)建的規(guī)則,屬于AI苦蒿,不屬于ML殴胧;

二、機器學習 VS 數(shù)據(jù)挖掘 VS 大數(shù)據(jù)

機器學習 VS 大數(shù)據(jù).png

三佩迟、理解機器學習

  • 通過計算機程序根據(jù)數(shù)據(jù)去優(yōu)化一個評價指標团滥;
  • 自動的從數(shù)據(jù)發(fā)現(xiàn)規(guī)律,使用這些規(guī)律作出預(yù)測报强;
  • 根據(jù)過去預(yù)測未來灸姊。

機器學習別名:

  • 推理/估計:統(tǒng)計學
  • 模式識別

四、機器學習家族

  • 監(jiān)督式學習 -- 訓練數(shù)據(jù)包括輸入和預(yù)期的輸出
    • 分類
      • 垃圾郵件/短信檢測
      • 自動車牌號識別
      • 人臉識別
      • 手寫字符識別
      • 語音識別
      • 醫(yī)療圖片的病癥診斷
      • ......
    • 回歸
      • 二手車股價
      • 股票價格預(yù)測
      • 氣溫預(yù)測
      • 自動駕駛
      • ......
  • 非監(jiān)督式學習 -- 訓練數(shù)據(jù)只有輸入秉溉,沒有預(yù)期的輸出
    • 聚類: 把對象分成不同的子集(subset)力惯,使得屬于同一個子集中的成員對象都有相似的一些屬性

五、機器學習流程

機器學習流程.png
  1. 數(shù)據(jù)獲取
  2. 數(shù)據(jù)清洗
  3. 特征工程
  4. 預(yù)處理
    • 特征提取
    • 處理缺失數(shù)據(jù)
    • 數(shù)據(jù)定標
      • 歸一化
      • 標準化
    • 數(shù)據(jù)轉(zhuǎn)換
  5. 選擇機器學習模型
  6. 模型訓練 <==> 模型調(diào)參
  7. 模型部署

六召嘶、線性回歸示例 1

Question:

你所在的公司在電視上做產(chǎn)品廣告, 收集到了電視廣告投入x(以百萬為單位)與產(chǎn)品銷售量y(以億為單位)的數(shù)據(jù). 你作為公司的數(shù)據(jù)科學家, 希望通過分析這些數(shù)據(jù), 了解電視廣告投入x(以百萬為單位)與產(chǎn)品銷售量y的關(guān)系.

假設(shè)x與y的之間的關(guān)系是線性的, 也就是說 y = ax + b. 通過線性回歸(Linear Regression), 我們就可以得知 a 和 b 的值. 于是我們在未來做規(guī)劃的時候, 通過電視廣告投入x, 就可以預(yù)測產(chǎn)品銷售量y, 從而可以提前做好生產(chǎn)和物流, 倉儲的規(guī)劃. 為客戶提供更好的服務(wù).

data:
    TV  sales
0   230.1   22.1
1   44.5    10.4
2   17.2    9.3
3   151.5   18.5
4   180.8   12.9
5   8.7 7.2
6   57.5    11.8
7   120.2   13.2
8   8.6 4.8
9   199.8   10.6
10  66.1    8.6
... ... ...

Script Demo:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
  1. 加載數(shù)據(jù)
# 加載數(shù)據(jù)
data = pd.read_csv('data/Advertising.csv')
# 查看部分數(shù)據(jù)
data.head()
# 查看列索引
data.columns
# 查看行索引
data.index

# 通過數(shù)據(jù)可視化分析數(shù)據(jù)
plt.figure(figsize=(16, 8))
plt.scatter(data['TV'], data['sales'], c='blue')
plt.xlabel('Money spent on TV ads (million)')
plt.ylabel('Sales (hundred million)')
plt.show()

散點圖

數(shù)據(jù)可視化.png

  1. 訓練線性回歸數(shù)據(jù)
# 訓練線性回歸數(shù)據(jù)
X = data['TV'].values.reshape(-1, 1)
y = data['sales'].values.reshape(-1, 1)

reg = LinearRegression()
reg.fit(X, y)
  1. 打印線性模型
reg.coef_[0][0]
reg.intercept_[0]
print('a = {:.5}'.format(reg.coef_[0][0]))
print('b = {:.5}'.format(reg.intercept_[0]))
print('線性模型:y = {:.5}X + {:.5}'.format(reg.coef_[0][0], reg.intercept_[0]))

打印結(jié)果:
>>> a = 0.047537
>>> b = 7.0326
>>> 線性模型:y = 0.047537X + 7.0326

  1. 可視化訓練好的線性回歸模型
# 可視化訓練好的線性回歸模型
predictions = reg.predict(X)
plt.figure(figsize=(16, 8))
plt.scatter(data['TV'], data['sales'], c='black')
plt.plot(data['TV'], predictions, c='blue', linewidth=2)
plt.xlabel('Money spent on TV ads (million)')
plt.ylabel('Sales (hundred million)')
plt.show()

散點圖

模型可視化.png

  1. 預(yù)測
test = [[100], [200], [300]]
predictions = reg.predict(test)
for investment, prediction in zip(test, predictions):
    print('>>> 投入{:.2}億元父晶,預(yù)計銷售量:{:.5}'.format(investment[0]/100.0, prediction[0]))

打印結(jié)果:
>>> 投入1.0億元,預(yù)計銷售量:11.786
>>> 投入2.0億元弄跌,預(yù)計銷售量:16.54
>>> 投入3.0億元甲喝,預(yù)計銷售量:21.294

七、線性回歸示例 2

Question:

氣溫會隨著海拔高度的升高而降低, 我們可以通過測量不同海拔高度的氣溫來預(yù)測海拔高度和氣溫的關(guān)系. 我們假設(shè)海拔高度和氣溫的關(guān)系可以使用如下公式表達: y(氣溫) = a * x(海拔高度) + b

理論上來講, 確定以上公式 a 和 b的值只需在兩個不同高度測試, 就可以算出來 a 和 b 的值了. 但是由于所有的設(shè)備都是有誤差的, 而使用更多的高度測試的值可以使得預(yù)測的值更加準確. 我們提供了在9個不同高度測量的氣溫值, 請你根據(jù)今天學習的線性回歸方法預(yù)測 a 和 b 的值. 根據(jù)這個公式, 我們預(yù)測一下在8000米的海拔, 氣溫會是多少?

data:
height  temperature
0   0.0 12.834044
1   500.0   10.190649
2   1000.0  5.500229
3   1500.0  2.854665
4   2000.0  -0.706488
5   2500.0  -4.065323
6   3000.0  -7.127480
7   3500.0  -10.058879
8   4000.0  -13.206465

Script Demo:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
  1. 加載數(shù)據(jù)
# 加載數(shù)據(jù)
data = pd.read_csv('exercise/height.vs.temperature.csv')
# 查看部分數(shù)據(jù)
data.head()
# 查看列索引
data.columns
# 查看行索引
data.index
  1. 可視化分析數(shù)據(jù)
plt.figure(figsize=(16, 8))
plt.scatter(data['height'], data['temperature'], c='blue')
plt.xlabel('height (m)')
plt.ylabel('temperature (℃)')
plt.show()

散點圖

數(shù)據(jù)可視化.png

  1. 訓練線性回歸模型
X = data['height'].values.reshape(-1, 1)
y = data['temperature'].values.reshape(-1, 1)
reg = LinearRegression()
reg.fit(X, y)
  1. 打印線性模型
reg.coef_[0][0]
reg.intercept_[0]
print('>>> a = {:.6}'.format(reg.coef_[0][0]))
print('>>> b = {:.6}'.format(reg.intercept_[0]))
print('>>> 線性模型:y = {:.6}X + {:.6}'.format(reg.coef_[0][0], reg.intercept_[0]))

打印結(jié)果:
>>> a = -0.00656953
>>> b = 12.7185
>>> 線性模型:y = -0.00656953X + 12.7185

  1. 可視化線性回歸模型
predictions = reg.predict(X)
plt.figure(figsize=(16, 8))
plt.scatter(data['height'], data['temperature'], c='black')
plt.plot(data['height'], predictions, c='blue', linewidth=2)
plt.show()

散點圖

模型可視化.png

  1. 預(yù)測
test = [[8000], [9000], [10000]]
predictions = reg.predict(test)
for height, temperature in zip(test, predictions):
    print(height)
    print(temperature)
    print('>>> 海拔{}m铛只,氣溫為:{:.6}℃'.format(height[0], temperature[0]))

打印結(jié)果:
>>> 海拔8000m埠胖,氣溫為:-39.8378℃
>>> 海拔9000m,氣溫為:-46.4073℃
>>> 海拔10000m淳玩,氣溫為:-52.9768℃

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末直撤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凯肋,更是在濱河造成了極大的恐慌谊惭,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侮东,死亡現(xiàn)場離奇詭異圈盔,居然都是意外死亡,警方通過查閱死者的電腦和手機悄雅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門驱敲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宽闲,你說我怎么就攤上這事众眨∥漳粒” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵娩梨,是天一觀的道長沿腰。 經(jīng)常有香客問我,道長狈定,這世上最難降的妖魔是什么颂龙? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮纽什,結(jié)果婚禮上措嵌,老公的妹妹穿的比我還像新娘。我一直安慰自己芦缰,他們只是感情好企巢,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著让蕾,像睡著了一般浪规。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上探孝,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天罗丰,我揣著相機與錄音,去河邊找鬼再姑。 笑死,一個胖子當著我的面吹牛找御,可吹牛的內(nèi)容都是我干的元镀。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼霎桅,長吁一口氣:“原來是場噩夢啊……” “哼栖疑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滔驶,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤遇革,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后揭糕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萝快,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年著角,在試婚紗的時候發(fā)現(xiàn)自己被綠了揪漩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡吏口,死狀恐怖奄容,靈堂內(nèi)的尸體忽然破棺而出冰更,到底是詐尸還是另有隱情,我是刑警寧澤昂勒,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布蜀细,位于F島的核電站,受9級特大地震影響戈盈,放射性物質(zhì)發(fā)生泄漏奠衔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一奕谭、第九天 我趴在偏房一處隱蔽的房頂上張望涣觉。 院中可真熱鬧,春花似錦血柳、人聲如沸官册。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膝宁。三九已至,卻和暖如春根吁,著一層夾襖步出監(jiān)牢的瞬間员淫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工击敌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留介返,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓沃斤,卻偏偏與公主長得像圣蝎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子衡瓶,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361