iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
AI & Data

Machine Learning A-Z 學習筆記系列 第 15

[Day15] Polynomial Regression(2)

  • 分享至 

  • xImage
  •  

Example

https://ithelp.ithome.com.tw/upload/images/20220930/201525571Y0hXbx7H6.png
左邊是我們今天要處理的資料範例
今天的故事是A公司HR想要知道某位面試者說他在前公司的薪資是160000的真實性有多高
於是他想利用machine learning 來分析手邊現有B公司的薪資表, 看看算出來的薪資是否如
面試者所說的一樣高(已知面試者在B公司大約level=6.5)

我們從右邊的圖可以發現 Position & Level 並不是線性的
因此我們預備利用多項式是回歸來擬合

決定自變數與應變數

在進行擬合之前需要決定自變數與應變數是什麼
看一下table 會發現 Position 其實就相當於level(因為一個position 對應一個level)
所以自變量x = Level, 應變量y = Salary

資料前處理

接著開始來做資料前處理
dataset.iloc[:,1].values 表示取出Level 當作x
dataset.iloc[:, 2].values 表示取出Salary 當作y

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Importing the dataset
dataset = pd.read_csv('Position_Salaries.csv')
x = dataset.iloc[:, 1].values
y = dataset.iloc[:, 2].values

然後執行程式後可以發現
x size = (10,) 代表這是一個向量不是矩陣
但是x應該要是矩陣才行
https://ithelp.ithome.com.tw/upload/images/20220930/20152557BsZEYagZAi.png
因此我們要將** x 改為 dataset.iloc[:,1:2].values**
1:2 代表取第一行~第二的前一行, 因此會得到一個 10 * 1 的矩陣

x = dataset.iloc[:, 1].values

https://ithelp.ithome.com.tw/upload/images/20220930/20152557XdSLakyg2F.png
改完後x size 成為(10,1), 也就是一個 10 * 1 的矩陣

接著需要分割資料成測試集和數據集嗎?
答案是“不用” 因為
(1)數據只有十組(很少)若再將資料切成兩份可能會讓數據集不夠拿來擬合模型
(2)面試者給的薪資就已經是測試集數據了
因為開頭提到HR是想知道用這些資料取出來的level 6.5 的薪資
有沒有等於面試者開出的薪資
因此為了要使結果更精準, 能用越多的數據集是最好的

另外特徵縮放也不需要, 因為library 本身會處理
(跟多元線性回歸用一樣的library所以不需要)

前處理結束之後下一篇繼續學習多項式回歸的實作


上一篇
[Day14] Polynomial Regression
下一篇
[Day16] Polynomial Regression (3)
系列文
Machine Learning A-Z 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言