นี่เป็นส่วนที่ 2 ของชุด Scikit-learn ซึ่งมีดังต่อไปนี้

  • ส่วนที่ 1 — บทนำ
  • ส่วนที่ 2 — การเรียนรู้ภายใต้การดูแลใน Scikit-Learn (บทความนี้)
  • ส่วนที่ 3 — การเรียนรู้แบบไม่มีผู้ดูแลใน Scikit-Learn

ลิงก์ไปยังส่วนที่หนึ่ง : https://medium.com/@deepanshugaur1998/scikit-learn-part-1-introduction-fa05b19b76f1

ลิงก์ไปยังส่วนที่สาม : https://medium.com/@deepanshugaur1998/scikit-learn-beginners-part-3-6fb05798acb1

การเรียนรู้ภายใต้การดูแลใน Scikit-Learn

สวัสดีอีกครั้ง !

สรุปการเรียนรู้แบบมีผู้สอน:

ถามการเรียนรู้แบบมีผู้สอนคืออะไร?

ในการเรียนรู้ของเครื่อง มันเป็นระบบประเภทหนึ่งที่มีการให้ข้อมูลทั้งอินพุตและเอาต์พุตที่ต้องการ ข้อมูลอินพุตและเอาต์พุตมีป้ายกำกับสำหรับการจำแนกประเภทเพื่อเป็นพื้นฐานการเรียนรู้สำหรับการทำนายข้อมูลในอนาคต

เช่นเดียวกับในส่วนที่แล้วของซีรีส์นี้ เราได้เห็นภาพรวมของสิ่งที่ scikit เรียนรู้แล้วในแง่ของการเรียนรู้แบบมีผู้สอน แต่ในส่วนนี้ เราจะเข้าใจว่าเราจะเริ่มต้นใช้งานห้องสมุดอันทรงพลังนี้ได้อย่างไร

เริ่มต้นใช้งาน…..

ลองพิจารณาตัวอย่างแบบจำลองการถดถอยเชิงเส้นอย่างง่าย :

จุดมุ่งหมายทางคณิตศาสตร์ของแบบจำลองนี้คือเพื่อลดผลรวมที่เหลือของกำลังสองระหว่างการตอบสนองที่สังเกตได้ในชุดข้อมูล และผลลัพธ์ที่ทำนายได้โดยการประมาณเชิงเส้น

from sklearn.linear_model import LinearRegression #import statement
clf=LinearRegression() #we created a classifier from an object named    LinearRegression.
clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) #fitting a classifier on a data
clf.coef_  # calculated the slope
OUTPUT : array([ 0.5,  0.5])

อย่างที่คุณเห็น มีเพียงโค้ดเล็กๆ น้อยๆ ที่สามารถช่วยให้คุณเริ่มต้นกับอัลกอริธึมที่น่าทึ่งนี้ได้ มันไม่น่าทึ่งเหรอ? คุณยังสามารถลองทำนายชุดการทดสอบได้โดยใช้ฟังก์ชัน '.pred'
หากต้องการทำความเข้าใจเชิงลึกเพิ่มเติมเกี่ยวกับโมเดลเชิงเส้นนี้ ให้ลองใช้ตัวอย่างด้วยตนเอง
ดูตัวอย่างง่ายๆ ได้ที่นี่ :



รองรับเครื่องเวกเตอร์ใน Sklearn

ทำตามโค้ดด้านล่างเพื่อเริ่มต้นใช้งาน svm ใน scikit-learn :

from sklearn import svm
X = [[0, 0], [1, 1]] # dataset
y = [0, 1]
clf = svm.SVC() # classifier is created
clf.fit(X, y) # fitting classifier on dataset
OUTPUT : SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
  decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
  max_iter=-1, probability=False, random_state=None, shrinking=True,
  tol=0.001, verbose=False)

พารามิเตอร์ที่คุณเห็นในวงเล็บสามารถเปลี่ยนแปลงได้ตามชุดข้อมูลที่คุณได้รับ
เมื่อคุณรู้สึกสบายใจที่จะเขียนโค้ดที่กล่าวถึงข้างต้นแล้ว ให้ลองปรับแต่งพารามิเตอร์ด้วยตนเอง
< /แข็งแกร่ง>

clf.predict([[1., 0.]]) # predicting values 
OUTPUT : array([1])

การไล่ระดับสีแบบสุ่มใน Sklearn

อัลกอริธึม Stochastic Gradient Descent เป็นอัลกอริธึมง่ายๆ ที่ใช้ในการเรียนรู้แบบจำแนกประเภทของตัวแยกประเภทเชิงเส้นบนชุดข้อมูลขนาดใหญ่ และยังปรับให้เข้ากับมันได้อย่างง่ายดาย

รหัส :

from sklearn.linear_model import SGDClassifier
X = [[0., 0.], [1., 1.]]
y = [0, 1]
clf = SGDClassifier(loss=”hinge”, penalty=”l2") #hyperparameters
clf.fit(X, y)
OUTPUT : SGDClassifier(alpha=0.0001, average=False, class_weight=None, epsilon=0.1,
       eta0=0.0, fit_intercept=True, l1_ratio=0.15,
       learning_rate='optimal', loss='hinge', max_iter=5, n_iter=None,
       n_jobs=1, penalty='l2', power_t=0.5, random_state=None,
       shuffle=True, tol=None, verbose=0, warm_start=False)

ไร้เดียงสา Bayes ใน Sklearn

ตัวแยกประเภท Naive Bayes คำนวณความน่าจะเป็นสำหรับทุกปัจจัย จากนั้นจะเลือกผลลัพธ์ที่มีความน่าจะเป็นสูงสุด
ตัวแยกประเภทนี้ถือว่าคุณลักษณะต่างๆ มีความเป็นอิสระ ดังนั้นจึงมีการใช้คำว่า "ไร้เดียงสา"
เป็นหนึ่งในอัลกอริธึมที่พบบ่อยที่สุดในแมชชีนเลิร์นนิง

รหัส :

from sklearn import datasets
iris = datasets.load_iris() # loading the dataset
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
y_pred = gnb.fit(iris.data, iris.target).predict(iris.data) #fitting and predicting on same line.
OUTPUT : 
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]

การถดถอยแบบต้นไม้การตัดสินใจใน Sklearn

Decision Trees เป็นอัลกอริธึม Machine Learning แบบมีผู้ดูแลอีกประเภทหนึ่ง โดยที่ข้อมูลจะถูกแบ่งอย่างต่อเนื่องตามพารามิเตอร์บางตัว
ข้อมูลเพิ่มเติมยิ่งมากคือความแม่นยำของโมเดล
Decision Trees เป็นหนึ่งในอัลกอริธึมที่ใช้มากที่สุด จากอัลกอริธึมการเรียนรู้ภายใต้การดูแลทั้งหมดและค้นหาแอปพลิเคชันขนาดใหญ่ในอุตสาหกรรม

รหัส :

from sklearn import tree
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
clf.predict([[2., 3.]])
OUTPUT : array([1])

วิธีการรวมกลุ่มใน SkLearn

มีวิธีการบรรจุถุงและป่าสุ่ม

ป่าสุ่ม

อัลกอริธึมการเรียนรู้ของเครื่องอันทรงพลังอีกตัวหนึ่งที่สร้างผลลัพธ์ที่ยอดเยี่ยมแม้จะไม่มีการปรับแต่งไฮเปอร์พารามิเตอร์ก็ตาม
นอกจากนี้ยังเป็นหนึ่งในอัลกอริธึมที่ใช้มากที่สุด เนื่องจากความเรียบง่ายและสามารถใช้ได้กับทั้งงานจำแนกประเภทและงานการถดถอย

Code :

from sklearn.ensemble import RandomForestClassifier
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = RandomForestClassifier(n_estimators=10)
clf = clf.fit(X, Y)
pred = clf.predict([[2., 3.]])
print(pred)
OUTPUT : [1]

เราได้เรียนรู้อะไรบ้าง?

ตอนนี้เราได้เรียนรู้วิธีการใช้อัลกอริธึมภายใต้การดูแลแต่ละอันโดยใช้ scikit learn แล้ว
ยังมีฟีเจอร์มากมายที่แต่ละอัลกอริทึมมีใน scikit learn ซึ่งสามารถเชี่ยวชาญได้โดยการฝึกฝนเท่านั้น
ดังนั้นหยุดเสียเวลาและหัวของคุณซะ ตรงไปยังเอกสารประกอบอย่างเป็นทางการของ scikit เรียนรู้สำหรับอัลกอริธึมภายใต้การดูแล และให้แน่ใจว่าคุณเข้าใจอัลกอริธึมแต่ละอันในเชิงคณิตศาสตร์ เช่นเดียวกับการฝึกฝนกับชุดข้อมูลที่แตกต่างกัน
ลิงก์ :
http://scikit-learn.org/stable /supervised_learning.html

หมายเหตุ: ส่วนถัดไปของซีรีส์นี้จะเป็นการเรียนรู้แบบไม่มีผู้ดูแล ดังนั้นอย่าพลาด