สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

Tutorial Python Machine Learning

LM17PYTHON MACHINE LEARNING LM18PYTHON MACHINE LEARNING MEAN MEDIAN MODE LM19PYTHON MACHINE LEARNING STANDARD DEVIATION LM20PYTHON MACHINE LEARNING PERCENTILES LM21PYTHON MACHINE LEARNING DATA DISTRIBUTION LM22PYTHON MACHINE LEARNING NORMAL DATA DISTRIBUTION LM23PYTHON MACHINE LEARNING SCATTER PLOT LM24PYTHON MACHINE LEARNING LINEAR REGRESSION LM25PYTHON MACHINE LEARNING MULTIPLE REGRESSION LM25PYTHON MACHINE LEARNING POLYNOMIAL REGRESSION LM26PYTHON MACHINE LEARNING SCALE LM27PYTHON MACHINE LEARNING TRAIN TEST LM28PYTHON MACHINE LEARNING DECISION TREE

Machine Learning - Scale

เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor ในบท Machine Learning - Scale 
เนื้อหาในบทนี้เราจะเรียนรู้เกี่ยวกับ Scale เมื่อข้อมูลของนักเรียนมีค่าแตกต่างกันและแม้แต่หน่วยการวัดที่แตกต่างกันมันอาจเป็นการยากที่จะเปรียบเทียบ กิโลกรัมเปรียบเทียบกับเมตรคืออะไร หรือระดับความสูงเมื่อเทียบกับเวลา? 
คำตอบของปัญหานี้คือการปรับสเกล เราสามารถปรับขนาดข้อมูลเป็นค่าใหม่ที่ง่ายต่อการเปรียบเทียบ ลองดูตารางด้านล่างมันเป็นชุดข้อมูลเดียวกับที่เราใช้ในบทการถดถอยหลายครั้ง แต่คราวนี้คอลัมน์ปริมาณมีค่าเป็นลิตรแทนที่จะเป็น ccm (1.0 แทน 1,000)

Toyota

Aygo

1.0

790

99

Mitsubishi

Space Star

1.2

1160

95

Skoda

Citigo

1.0

929

95

Fiat

500

0.9

865

90

Mini

Cooper

1.5

1140

105

VW

Up!

1.0

929

105

Skoda

Fabia

1.4

1109

90

Mercedes

A-Class

1.5

1365

92

Ford

Fiesta

1.5

1112

98

Audi

A1

1.6

1150

99

Hyundai

I20

1.1

980

99

Suzuki

Swift

1.3

990

101

Ford

Fiesta

1.0

1112

99

Honda

Civic

1.6

1252

94

Hundai

I30

1.6

1326

97

Opel

Astra

1.6

1330

97

BMW

1

1.6

1365

99

Mazda

3

2.2

1280

104

Skoda

Rapid

1.6

1119

104

Ford

Focus

2.0

1328

105

Ford

Mondeo

1.6

1584

94

Opel

Insignia

2.0

1428

99

Mercedes

C-Class

2.1

1365

99

Skoda

Octavia

1.6

1415

99

Volvo

S60

2.0

1415

99

Mercedes

CLA

1.5

1465

102

Audi

A4

2.0

1490

104

Audi

A6

2.0

1725

114

Volvo

V70

1.6

1523

109

BMW

5

2.0

1705

114

Mercedes

E-Class

2.1

1605

115

Volvo

XC70

2.0

1746

117

Ford

B-Max

1.6

1235

104

BMW

2

1.6

1390

108

Opel

Zafira

1.6

1405

109

Mercedes

SLK

2.5

1395

120

เป็นเรื่องยากที่จะเปรียบเทียบปริมาตร 1.0 กับน้ำหนัก 790 แต่ถ้าเราปรับขนาดทั้งสองเป็นค่าที่เทียบเคียงได้เราจะเห็นได้ว่าค่าหนึ่งมีค่าเท่ากันเมื่อเปรียบเทียบกับค่าอื่น ๆ มีวิธีการต่าง ๆ สำหรับการปรับขนาดข้อมูลในบทช่วยสอนนี้เราจะใช้วิธีการที่เรียกว่า วิธีการมาตรฐานใช้สูตรนี้

z = (x - u) / s

โดยที่ z คือค่าใหม่ x คือค่าดั้งเดิม u คือค่าเฉลี่ยและ s คือค่าเบี่ยงเบนมาตรฐานหากนักเรียนใช้คอลัมน์น้ำหนักจากชุดข้อมูลด้านบนค่าแรกคือ 790 และค่าที่ปรับจะเป็น(790 - 1292.23) / 238.74 = -2.1
หากนักเรียนนำคอลัมน์ปริมาณจากชุดข้อมูลด้านบนค่าแรกคือ 1.0 และค่าที่ปรับจะเป็น (1.0 - 1.61) / 0.38 = -1.59
ตอนนี้นักเรียนสามารถเปรียบเทียบ -2.1 กับ -1.59 แทนที่จะเปรียบเทียบ 790 กับ 1.0 นักเรียนไม่ต้องทำสิ่งนี้ด้วยตนเองโมดูล Python sklearn มีวิธีที่เรียกว่า StandardScaler() ซึ่งจะส่งคืนวัตถุ Scaler ด้วยวิธีการเปลี่ยนชุดข้อมูล
ตัวอย่าง
ปรับขนาดค่าทั้งหมดในคอลัมน์น้ำหนักและปริมาณ

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
df = pandas.read_csv("cars2.csv")
X = df[['Weight', 'Volume']]
scaledX = scale.fit_transform(X)
print(scaledX)

ผลลัพธ์

[[-2.10389253 -1.59336644]
 [-0.55407235 -1.07190106]
 [-1.52166278 -1.59336644]
 [-1.78973979 -1.85409913]
 [-0.63784641 -0.28970299]
 [-1.52166278 -1.59336644]
 [-0.76769621 -0.55043568]
 [ 0.3046118  -0.28970299]
 [-0.7551301  -0.28970299]
 [-0.59595938 -0.0289703 ]
 [-1.30803892 -1.33263375]
 [-1.26615189 -0.81116837]
 [-0.7551301  -1.59336644]
 [-0.16871166 -0.0289703 ]
 [ 0.14125238 -0.0289703 ]
 [ 0.15800719 -0.0289703 ]
 [ 0.3046118  -0.0289703 ]
 [-0.05142797  1.53542584]
 [-0.72580918 -0.0289703 ]
 [ 0.14962979  1.01396046]
 [ 1.2219378  -0.0289703 ]
 [ 0.5685001   1.01396046]
 [ 0.3046118   1.27469315]
 [ 0.51404696 -0.0289703 ]
 [ 0.51404696  1.01396046]
 [ 0.72348212 -0.28970299]
 [ 0.8281997   1.01396046]
 [ 1.81254495  1.01396046]
 [ 0.96642691 -0.0289703 ]
 [ 1.72877089  1.01396046]
 [ 1.30990057  1.27469315]
 [ 1.90050772  1.01396046]
 [-0.23991961 -0.0289703 ]
 [ 0.40932938 -0.0289703 ]
 [ 0.47215993 -0.0289703 ]
 [ 0.4302729   2.31762392]]

ทำนายค่า CO2
ภารกิจในบทถดถอยหลายครั้งคือการทำนายการปล่อย CO2 จากรถยนต์เมื่อนักเรียนรู้น้ำหนักและปริมาตรของมัน เมื่อปรับขนาดชุดข้อมูลนักเรียนจะต้องใช้มาตราส่วนเมื่อนักเรียนทำนายค่า
ตัวอย่าง
ทำนายการปล่อย CO2 จากรถยนต์ขนาด 1.3 ลิตรที่มีน้ำหนัก 2,300 กิโลกรัม

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
df = pandas.read_csv("cars2.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
scaledX = scale.fit_transform(X)
regr = linear_model.LinearRegression()
regr.fit(scaledX, y)
scaled = scale.transform([[2300, 1.3]])
predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)

ผลลัพธ์

[107.2087328]

แปลจากhttps://www.w3schools.com/python/python_ml_scale.asp



บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

C Article


C++ Article


Java Article


C#.NET Article


VB.NET Article


Python Article


Golang Article


JavaScript Article


Perl Article


Lua Article


Rust Article


Article


Python


Python Numpy


Python Machine Learning



แผนผังการเรียนเขียนโปรแกรม

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา