【卷積神經網路學習】(4)機器學習
用jupyter notebook寫的第一個機器學習
模型:線性函式
演算法:梯度下降
import torch
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv('dataset/Income1.csv') # 匯入資料
data
Unnamed: 0 | Education | Income | |
---|---|---|---|
0 | 1 | 10.000000 | 26.658839 |
1 | 2 | 10.401338 | 27.306435 |
2 | 3 | 10.842809 | 22.132410 |
3 | 4 | 11.244147 | 21.169841 |
4 | 5 | 11.645485 | 15.192634 |
5 | 6 | 12.086957 | 26.398951 |
6 | 7 | 12.488294 | 17.435307 |
7 | 8 | 12.889632 | 25.507885 |
8 | 9 | 13.290970 | 36.884595 |
9 | 10 | 13.732441 | 39.666109 |
10 | 11 | 14.133779 | 34.396281 |
11 | 12 | 14.535117 | 41.497994 |
12 | 13 | 14.976589 | 44.981575 |
13 | 14 | 15.377926 | 47.039595 |
14 | 15 | 15.779264 | 48.252578 |
15 | 16 | 16.220736 | 57.034251 |
16 | 17 | 16.622074 | 51.490919 |
17 | 18 | 17.023411 | 61.336621 |
18 | 19 | 17.464883 | 57.581988 |
19 | 20 | 17.866221 | 68.553714 |
20 | 21 | 18.267559 | 64.310925 |
21 | 22 | 18.709030 | 68.959009 |
22 | 23 | 19.110368 | 74.614639 |
23 | 24 | 19.511706 | 71.867195 |
24 | 25 | 19.913043 | 76.098135 |
25 | 26 | 20.354515 | 75.775218 |
26 | 27 | 20.755853 | 72.486055 |
27 | 28 | 21.157191 | 77.355021 |
28 | 29 | 21.598662 | 72.118790 |
29 | 30 | 22.000000 | 80.260571 |
data.info() # 檢視資料資訊
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 30 entries, 0 to 29
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Unnamed: 0 30 non-null int64
1 Education 30 non-null float64
2 Income 30 non-null float64
dtypes: float64(2), int64(1)
memory usage: 848.0 bytes
畫散點圖
plt.scatter(data.Education, data.Income)
plt.xlabel('education')
plt.ylabel('income')
plt.show()
from torch import nn
X = torch.from_numpy(data.Education.values.reshape(-1, 1).astype(np.float32))
從data.Education中提取value,並重新把它變成只有1列的矩陣,同時把資料型別轉化為np.float32,然後把這個numpy型別轉換成torch型別
X
tensor([[10.0000],
[10.4013],
[10.8428],
[11.2441],
[11.6455],
[12.0870],
[12.4883],
[12.8896],
[13.2910],
[13.7324],
[14.1338],
[14.5351],
[14.9766],
[15.3779],
[15.7793],
[16.2207],
[16.6221],
[17.0234],
[17.4649],
[17.8662],
[18.2676],
[18.7090],
[19.1104],
[19.5117],
[19.9130],
[20.3545],
[20.7559],
[21.1572],
[21.5987],
[22.0000]])
X.shape
torch.Size([30, 1])
Y = torch.from_numpy(data.Income.values.reshape(-1, 1).astype(np.float32))
Y
tensor([[26.6588],
[27.3064],
[22.1324],
[21.1698],
[15.1926],
[26.3990],
[17.4353],
[25.5079],
[36.8846],
[39.6661],
[34.3963],
[41.4980],
[44.9816],
[47.0396],
[48.2526],
[57.0343],
[51.4909],
[61.3366],
[57.5820],
[68.5537],
[64.3109],
[68.9590],
[74.6146],
[71.8672],
[76.0981],
[75.7752],
[72.4861],
[77.3550],
[72.1188],
[80.2606]])
Y.shape
torch.Size([30, 1])
建立模型
model = nn.Linear(1, 1) # output = w @ input + b , output和input長度為1 @代表矩陣乘法
loss_fn = nn.MSELoss() # 建立損失函式
opt = torch.optim.SGD(model.parameters(), lr=0.0001) # 優化的設定
for epoch in range(5000): # 訓練全部資料
for x,y in zip(X,Y):
y_pred = model(x) # 使用模型預測
loss = loss_fn(y, y_pred) # 計算損失
opt.zero_grad() # 梯度清零
loss.backward() # 計算梯度
opt.step() # 優化模型引數w和b
model.weight # 檢視訓練完成的w
Parameter containing:
tensor([[3.4113]], requires_grad=True)
model.bias # 檢視訓練完成的b
Parameter containing:
tensor([0.4944], requires_grad=True)
結果視覺化
plt.scatter(data.Education, data.Income)
plt.plot(X.numpy(), model(X).data.numpy(), c='r') # .numpy()是把tensor轉化成numpy中的array型別
plt.show()
相關文章
- 深度學習三:卷積神經網路深度學習卷積神經網路
- 【機器學習基礎】卷積神經網路(CNN)基礎機器學習卷積神經網路CNN
- 深度學習——LeNet卷積神經網路初探深度學習卷積神經網路
- 深度學習筆記------卷積神經網路深度學習筆記卷積神經網路
- 卷積神經網路CNN-學習1卷積神經網路CNN
- 卷積神經網路學習筆記——SENet卷積神經網路筆記SENet
- 深度學習卷積神經網路筆記深度學習卷積神經網路筆記
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 深度學習經典卷積神經網路之AlexNet深度學習卷積神經網路
- 卷積神經網路學習筆記——Siamese networks(孿生神經網路)卷積神經網路筆記
- 【深度學習原理第4篇】卷積神經網路詳解(CNN)深度學習卷積神經網路CNN
- 深度學習革命的開端:卷積神經網路深度學習卷積神經網路
- 學習OpenCL與卷積神經網路 Day1卷積神經網路
- 機器學習從入門到放棄:卷積神經網路CNN(二)機器學習卷積神經網路CNN
- 誰可以詳細講講機器學習,深度學習,神經網路,卷積神經網路的區別以及應用場景機器學習深度學習神經網路卷積
- 深度學習-卷積神經網路-演算法比較深度學習卷積神經網路演算法
- [譯] 淺析深度學習神經網路的卷積層深度學習神經網路卷積
- 機器學習整理(神經網路)機器學習神經網路
- 深度學習之卷積神經網路(Convolutional Neural Networks, CNN)(二)深度學習卷積神經網路CNN
- 深度學習入門筆記(十八):卷積神經網路(一)深度學習筆記卷積神經網路
- 【機器學習基礎】神經網路/深度學習基礎機器學習神經網路深度學習
- Ng深度學習筆記——卷積神經網路基礎深度學習筆記卷積神經網路
- 深度學習——使用卷積神經網路改進識別鳥與飛機模型深度學習卷積神經網路模型
- 【機器學習】搭建神經網路筆記機器學習神經網路筆記
- 機器學習:神經網路構建(上)機器學習神經網路
- 機器學習:神經網路構建(下)機器學習神經網路
- 8-深度學習之神經網路核心原理與演算法-卷積神經網路深度學習神經網路演算法卷積
- 卷積神經網路數學原理解析卷積神經網路
- 吳恩達機器學習筆記 —— 9 神經網路學習吳恩達機器學習筆記神經網路
- 卷積神經網路卷積神經網路
- 機器學習導圖系列(5):機器學習模型及神經網路模型機器學習模型神經網路
- 機器學習實戰篇——用卷積神經網路演算法在Kaggle上跑個分機器學習卷積神經網路演算法
- 機器學習之多類別神經網路:Softmax機器學習神經網路
- 【菜鳥筆記|機器學習】神經網路筆記機器學習神經網路
- 機器學習筆記(3): 神經網路初步機器學習筆記神經網路
- Coursera Deep Learning 4 卷積神經網路 第四周習題卷積神經網路
- 人工智慧、機器學習、深度學習、神經網路的關係人工智慧機器學習深度學習神經網路
- Python+Matlab+機器學習+深度神經網路全套學習資料!PythonMatlab機器學習神經網路