Pembelajaran diselia ialah subset pembelajaran mesin yang melabel data input model pembelajaran mesin dan melaksanakannya. Oleh itu, model yang diselia boleh meramalkan output model ke tahap maksimum.
Konsep di sebalik pembelajaran terselia juga boleh didapati dalam kehidupan sebenar, seperti guru memberi tunjuk ajar kepada kanak-kanak. Katakan cikgu nak ajar anak mengenali imej kucing dan anjing. S/dia akan memberi tunjuk ajar kepada kanak-kanak itu dengan terus menunjukkan imej kucing atau anjing kepada kanak-kanak sambil memberitahu kanak-kanak itu sama ada imej itu anjing atau kucing.
Proses memaparkan dan memaklumkan imej boleh dianggap sebagai data pelabelan Semasa proses latihan model pembelajaran mesin, anda akan diberitahu data mana yang tergolong dalam kategori mana.
Apakah kegunaan pembelajaran diselia? Pembelajaran terselia boleh digunakan untuk kedua-dua masalah regresi dan klasifikasi. Model pengelasan membenarkan algoritma untuk menentukan kumpulan yang diberikan data milik. Contohnya mungkin termasuk Betul/Salah, Anjing/Kucing, dsb.
Memandangkan model regresi boleh meramalkan nilai masa hadapan berdasarkan data sejarah, ia boleh digunakan untuk meramalkan gaji pekerja atau harga jualan hartanah.
Dalam artikel ini, kami akan menyenaraikan beberapa algoritma biasa yang digunakan untuk pembelajaran diselia, serta tutorial praktikal tentang algoritma tersebut.
Regression linear ialah algoritma pembelajaran diselia yang meramalkan nilai output berdasarkan nilai input yang diberikan. Regresi linear digunakan apabila pembolehubah sasaran (output) mengembalikan nilai berterusan.
Terdapat dua jenis utama algoritma linear, regresi linear mudah dan regresi linear berganda.
Regresi linear mudah hanya menggunakan satu pembolehubah bebas (input). Contohnya ialah meramal umur kanak-kanak diberi ketinggian.
Regresi linear berbilang, sebaliknya, boleh menggunakan berbilang pembolehubah bebas untuk meramalkan hasil akhirnya. Contohnya ialah meramalkan harga hartanah tertentu berdasarkan lokasi, saiz, permintaan, dsb.
Berikut ialah formula regresi linear
Untuk contoh Python, kami akan menggunakan regresi linear untuk meramalkan nilai y berbanding nilai x yang diberikan.
Set data yang kami berikan mengandungi hanya dua lajur: x dan y. Ambil perhatian bahawa hasil y akan mengembalikan nilai berterusan.
Berikut ialah tangkapan skrin set data yang diberikan:
import numpy as np <br>import pandas as pd <br>import matplotlib.pyplot as plt <br>import seaborn as sns from sklearn <br>import linear_model from sklearn.model_selection <br>import train_test_split import os
Untuk memudahkan set data, kami mengekstrak Sampel 50 baris data. dan bulatkan nilai data kepada 2 angka bererti.
Sila ambil perhatian bahawa anda harus mengimport set data yang diberikan sebelum melengkapkan langkah ini.
df = pd.read_csv("../input/random-linear-regression/train.csv") <br>df=df.sample(50) df=round(df,2)
Jika set data mengandungi nilai Kosong dan tidak terhingga, ralat mungkin berlaku. Oleh itu, kami akan menggunakan fungsi clean_dataset untuk membersihkan set data nilai ini.
def clean_dataset(df): <br>assert isinstance(df, pd.DataFrame), "df needs to be a pd.DataFrame" <br>df.dropna(inplace=True) <br>indices_to_keep = ~df.isin([np.nan, np.inf, -np.inf]).any(1) <br>return df[indices_to_keep].astype(np.float64)<br>df=clean_dataset(df)
Sila ambil perhatian, kami menukar data kepada format DataFrame. jenis data bingkai data ialah struktur dua dimensi yang menjajarkan data kami ke dalam baris dan lajur.
Kami membahagikan set data kepada latihan dan Bahagian ujian. Saiz set data ujian dipilih sebagai 20% daripada jumlah set data.
Sila ambil perhatian bahawa dengan menetapkan random_state=1, setiap kali model dijalankan, pemisahan data yang sama akan berlaku, menghasilkan data latihan dan ujian yang sama ditetapkan.
Ini berguna dalam situasi di mana anda ingin menala lagi model.
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=1)
使用导入的线性回归模型,我们可以在模型中自由使用线性回归算法,绕过我们为给定模型获得的 x 和 y 训练变量。
lm=linear_model.LinearRegression() lm.fit(x_train,y_train)
df.plot(kind="scatter", x="x", y="y")
plt.plot(X,lm.predict(X), color="red")
蓝点表示数据点,而红线是模型绘制的最佳拟合线性回归线。线性模型算法总是会尝试绘制最佳拟合线以尽可能准确地预测结果。
与线性回归类似,逻辑回归根据输入变量预测输出值,两种算法的主要区别在于逻辑回归算法的输出是分类(离散)变量。
对于 Python的示例,会使用逻辑回归将“花”分成两个不同的类别/种类。在给定的数据集中会包括不同花的多个特征。
模型的目的是将给花识别为Iris-setosa、Iris-versicolor或 Iris-virginica 几个种类。
下面是给定数据集的截图:
import numpy as np <br>import pandas as pd from sklearn.model_selection <br>import train_test_split import warnings warnings.filterwarnings('ignore')
data = pd.read_csv('../input/iris-dataset-logistic-regression/iris.csv')
对于独立 value(x) ,将包括除类型列之外的所有可用列。至于我们的可靠值(y),将只包括类型列。
X = data[['x0','x1','x2','x3','x4']] <br>y = data[['type']]
将数据集分成两部分,80% 用于训练数据集,20% 用于测试数据集。
X_train,X_test,y_train,y_test = train_test_split(X,y, test_size=0.2, random_state=1)
从 linear_model 库中导入整个逻辑回归算法。然后我们可以将 X 和 y 训练数据拟合到逻辑模型中。
from sklearn.linear_model import LogisticRegression <br>model = LogisticRegression(random_state = 0) <br>model.fit(X_train, y_train)
print(lm.score(x_test, y_test))
返回值为0.9845128775509371,这表明我们模型的高性能。
请注意,随着测试分数的增加,模型的性能也会增加。
import matplotlib.pyplot as plt %matplotlib inline <br>plt.plot(range(len(X_test)), pred,'o',c='r')
输出图:
在逻辑图中,红点表示给定的数据点。这些点清楚地分为 3 类,Virginica、versicolor 和 setosa 花种。
使用这种技术,逻辑回归模型可以根据花在图表上的位置轻松对花类型进行分类。
支持向量机( SVM) 算法是另一个著名的监督机器学习模型,由 Vladimir Vapnik 创建,它能够解决分类和回归问题。实际上它更多地被用到解决分类问题。
SVM 算法能够将给定的数据点分成不同的组。算法在绘制出数据之后,可以绘制最合适的线将数据分成多个类别,从而分析数据之间的关系。
如下图所示,绘制的线将数据集完美地分成 2 个不同的组,蓝色和绿色。
SVM 模型可以根据图形的维度绘制直线或超平面。行只能用于二维数据集,这意味着只有 2 列的数据集。
如果是多个特征来预测数据集,就需要更高的维度。在数据集超过 2 维的情况下,支持向量机模型将绘制超平面。
在支持向量机 Python 的示例中,将对 3 种不同的花卉类型进行物种分类。我们的自变量包括花的所有特征,而因变量是花所属物种。
花卉品种包括Iris-setosa、 Iris-versicolor和Iris-virginica。
下面是数据集的截图:
import numpy as np <br>import pandas as pd from sklearn.model_selection <br>import train_test_split from sklearn.datasets <br>import load_iris
请注意,在执行此步骤之前,应该导入数据集。
data = pd.read_csv(‘../input/iris-flower-dataset/IRIS.csv’)
将 X 值作为自变量,其中包含除物种列之外的所有列。
因变量y仅包含模型预测的物种列。
X = data.drop(‘species’, axis=1) y = data[‘species’]
将数据集分为两部分,其中我们将 80% 的数据放入训练数据集中,将 20% 放入测试数据集中。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
导入了支持向量机算法。然后,使用上面步骤中收到的 X 和 y 训练数据集运行它。
from sklearn.svm import SVC <br>model = SVC( ) <br>model.fit(X_train, y_train)
model.score(X_test, y_test)
为了评估模型的性能,将使用 score 函数。在第四步中创建的 X 和 y 测试值输入到 score 方法中。
返回值为0.9666666666667,这表明模型的高性能。
请注意,随着测试分数的增加,模型的性能也会增加。
Walaupun algoritma linear, logistik dan SVM sangat dipercayai, algoritma tersebut masih akan Sebut beberapa algoritma pembelajaran mesin yang diselia.
Algoritma Pokok Keputusan ialah model pembelajaran mesin diselia yang menggunakan struktur pokok untuk membuat keputusan. Pepohon keputusan sering digunakan dalam masalah klasifikasi di mana model boleh menentukan kumpulan mana item tertentu dalam set data tergolong.
Sila ambil perhatian bahawa format pokok yang digunakan ialah format pokok terbalik.
dianggap sebagai algoritma yang lebih kompleks, Hutan rawak algoritma mencapai matlamat muktamadnya dengan membina sejumlah besar pokok keputusan.
bermaksud membina berbilang pepohon keputusan serentak, setiap satu mengembalikan hasil sendiri, yang kemudiannya digabungkan untuk mendapatkan hasil yang lebih baik.
Untuk masalah pengelasan, model hutan rawak akan menjana berbilang pokok keputusan dan mengelaskan objek tertentu berdasarkan kumpulan pengelasan yang diramalkan oleh majoriti pokok.
Model boleh membetulkan overfitting masalah yang disebabkan oleh satu pokok. Selain itu, Algoritma hutan rawak juga boleh digunakan untuk regresi, walaupun ia mungkin membawa kepada hasil yang tidak diingini.
Jiran
Algoritma (KNN) ialah kaedah pembelajaran mesin diselia yang mengumpulkan semua data yang diberikan ke dalam kumpulan yang berasingan . Penghimpunan ini adalah berdasarkan ciri sepunya antara individu yang berbeza. Algoritma KNN boleh digunakan untuk kedua-dua masalah klasifikasi dan regresi.
KNN'sKlasik
Contoh ialah mengelaskan imej haiwan kepada kumpulan yang berbeza.
Artikel inimemperkenalkan pembelajaran mesin yang diselia dan bagaimana ia boleh selesaikan Dua jenis masalah , dan terangkan masalah klasifikasi dan regresi , memberikan beberapa contoh bagi setiap jenis data output.
ButiranMenerangkan apa itu regresi linear dan cara ia berfungsi, dan menyediakan Python Contoh khusus , yang akan meramalkan nilai Y berdasarkan pembolehubah X bebas.
Kemudian dan kemudian pengenalan mendapat model regresi logistik , dan memberi Contoh model pengelasan ditunjukkan, yang mengelaskan imej yang diberikan kepada jenis bunga tertentu .
Untuk algoritma mesin vektor sokongan, boleh digunakan Ia meramalkan spesies bunga tertentu daripada 3 spesies bunga yang berbeza. Akhir sekali menyenaraikan algoritma pembelajaran mesin diselia yang terkenal seperti Tree membuat keputusan, hutan rawak, dan algoritma jiran K-terdekat.
Sama ada anda sedang belajarbelajar atau masih bekerja membaca artikel ini untuk keseronokan, kami fikir Memahami algoritma ini adalah permulaan kepada masuk mesin Permulaan dalam bidang pembelajaran.
Jika anda berminat dan ingin mengetahui lebih lanjut tentang bidang pembelajaran mesin, kami mengesyorkan agar anda pergi lebih mendalam Kajicara algoritma tersebut berfungsi dan cara menala model sedemikian untuk meningkatkan lagi prestasinya.
Pengenalan Penterjemah
Cui Hao, editor komuniti 51CTO dan arkitek kanan, mempunyai 18 tahun pengalaman pembangunan perisian dan seni bina serta 10 tahun pengalaman seni bina yang diedarkan. Dahulu pakar teknikal di HP. Dia bersedia berkongsi dan telah menulis banyak artikel teknikal popular dengan lebih daripada 600,000 bacaan. Pengarang "Prinsip dan Amalan Seni Bina Teragih" .
Tajuk asal: Algoritma Pembelajaran Terselia Utama yang Digunakan dalam Pembelajaran Mesin, Pengarang: Kevin Vu
Atas ialah kandungan terperinci Apakah algoritma biasa untuk pembelajaran diselia? Bagaimana ia digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!