Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan perpustakaan pembelajaran mesin belajar scikit dalam Python.

Cara menggunakan perpustakaan pembelajaran mesin belajar scikit dalam Python.

PHPz
PHPzke hadapan
2023-04-22 22:31:111825semak imbas

Kata Pengantar

scikit-learn ialah salah satu perpustakaan pembelajaran mesin paling popular dalam Python Ia menyediakan pelbagai algoritma dan alatan pembelajaran mesin, termasuk pengelasan, regresi, pengelompokan, pengurangan dimensi, dsb.

Kelebihan scikit-learn ialah:

  • Mudah digunakan: Antara muka scikit-learn adalah ringkas dan mudah difahami, membolehkan pengguna memulakan dengan mudah pembelajaran mesin. API Bersepadu: API scikit-learn sangat bersatu, dan kaedah menggunakan pelbagai algoritma pada asasnya adalah sama, menjadikan pembelajaran dan penggunaan lebih mudah.

  • Sebilangan besar algoritma pembelajaran mesin telah dilaksanakan: scikit-learn melaksanakan pelbagai algoritma pembelajaran mesin klasik dan menyediakan pelbagai alatan dan fungsi, menjadikan penyahpepijatan dan pengoptimuman algoritma lebih mudah .

  • Sumber terbuka dan percuma: scikit-learn adalah sumber terbuka sepenuhnya dan percuma, dan sesiapa sahaja boleh menggunakan dan mengubah suai kodnya.

  • Cekap dan stabil: scikit-learn melaksanakan pelbagai algoritma pembelajaran mesin yang cekap, boleh mengendalikan set data berskala besar dan berprestasi baik dari segi kestabilan dan kebolehpercayaan. scikit-learn sangat sesuai untuk pembelajaran mesin peringkat permulaan kerana API sangat bersatu dan modelnya agak mudah. Cadangan saya di sini adalah untuk mengkaji bersama dengan dokumentasi rasmi, yang bukan sahaja memperkenalkan skop penggunaan setiap model tetapi juga menyediakan sampel kod.

Model Regresi Linear-Regression Linear

Model Regresi Linear ialah model berdasarkan regresi linear dan sesuai untuk menyelesaikan masalah ramalan pembolehubah berterusan. Idea asas model ini adalah untuk mewujudkan persamaan linear, memodelkan hubungan antara pembolehubah bebas dan pembolehubah bersandar sebagai garis lurus, dan menggunakan data latihan untuk menyesuaikan garis lurus untuk mencari pekali persamaan linear, dan kemudian gunakan persamaan ini untuk menguji data untuk ramalan.

Model LinearRegression sesuai untuk masalah di mana terdapat hubungan linear antara pembolehubah bebas dan pembolehubah bersandar, seperti ramalan harga perumahan, ramalan jualan, ramalan tingkah laku pengguna, dll. Sudah tentu, apabila hubungan antara pembolehubah bebas dan pembolehubah bersandar adalah tidak linear, prestasi model LinearRegression akan menjadi lemah. Pada masa ini, regresi polinomial, regresi rabung, regresi Lasso dan kaedah lain boleh digunakan untuk menyelesaikan masalah.

Sediakan set data

Selepas mengetepikan pengaruh faktor lain, terdapat hubungan linear tertentu antara masa pembelajaran dan prestasi pembelajaran Sudah tentu, masa pembelajaran di sini merujuk kepada pembelajaran yang berkesan masa, prestasi Apabila masa belajar meningkat, gred juga akan meningkat. Jadi kami menyediakan set data masa belajar dan gred. Beberapa data dalam set data adalah seperti berikut:

Masa pembelajaran, markah
0.5,15
0.75,23
1.0,14
1.25,42
1.5,21
1.75,28
1.75,35
2.0,51
2.25,61
2.5,49

untuk menentukan jumlah ciri Matlamat

Antara masa belajar dan gred, masa belajar ialah ciri, iaitu pembolehubah bebas ialah label, iaitu pembolehubah bersandar, jadi kita perlu mengekstrak ciri dan label daripada set data masa belajar dan gred yang disediakan.

Bahagikan set latihan dan set ujian
import pandas as pd
import numpy as np
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 读取学习时间和成绩CSV数据文件
data = pd.read_csv('data/study_time_score.csv')
# 提取数据特征学习时间
X = data['学习时间']
# 提取数据目标(标签)分数
Y = data['分数']

Selepas data ciri dan label disediakan, gunakan LinearRegression scikit-learn untuk latihan dan bahagikan set data kepada set latihan dan set ujian.

Pilih model dan muatkan data
"""
将特征数据和目标数据划分为测试集和训练集
通过test_size=0.25将百分之二十五的数据划分为测试集
"""
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=0)
x_train = X_train.values.reshape(-1, 1)
model.fit(x_train, Y_train)

Selepas menyediakan set ujian dan set latihan, kita boleh memilih model yang sesuai untuk muat set latihan supaya kita boleh meramal Cari matlamat sepadan dengan ciri lain

Dapatkan parameter model
# 选择模型,选择模型为LinearRegression
model = LinearRegression()
# Scikit-learn中,机器学习模型的输入必须是一个二维数组。我们需要将一维数组转换为二维数组,才能在模型中使用。
x_train = X_train.values.reshape(-1, 1)
# 进行拟合
model.fit(x_train, Y_train)

Memandangkan set data hanya mengandungi dua masa dan gred pembelajaran, ia adalah model linear yang sangat mudah, dan formula matematik di belakangnya ialah y=ax+b, di mana pembolehubah bersandar y ialah gred, dan pembolehubah tidak bersandar x ialah masa belajar.

Backtest
"""
输出模型关键参数
Intercept: 截距 即b
Coefficients: 变量权重 即a
"""
print('Intercept:', model.intercept_)
print('Coefficients:', model.coef_)

Model pemasangan di atas hanya menggunakan data set ujian Seterusnya, kita perlu menggunakan data set ujian untuk menjalankan ujian belakang pada pemasangan model set latihan untuk mensimulasikan Selepas menggabungkan, kita boleh meramalkan set ujian ciri Dengan membandingkan hasil ramalan sasaran yang diperolehi dengan nilai sasaran sebenar, kita boleh memperoleh tahap kesesuaian model.

# 转换为n行1列的二维数组
x_test = X_test.values.reshape(-1, 1)
# 在测试集上进行预测并计算评分
Y_pred = model.predict(x_test)
# 打印测试特征数据
print(x_test)
# 打印特征数据对应的预测结果
print(Y_pred)
# 将预测结果与原特征数据对应的实际目标值进行比较,从而获得模型拟合度
# R2 (R-squared):模型拟合优度,取值范围在0~1之间,越接近1表示模型越好的拟合了数据。
print("R2:", r2_score(Y_test, Y_pred))
    Keputusan jalankan program
  • Mengikut kod di atas, kita perlu menentukan tahap kesesuaian model LinearRegression, iaitu , sama ada data ini sesuai Adalah tidak sesuai untuk menggunakan model linear untuk pemasangan Hasil larian program adalah seperti berikut:
Keputusan ramalan:
[. 47.43726068 33.05457106 49.83437561 63.41802692 41.84399249 37.84880 093 63.41802692 42.6430308 21.86803469 69.81033341 7 77.80071653 28.26034119 13.87765157 61.81995029 90.58532953 77.80071653 3 6.25072431 >R2: 0.8935675710322939


Atas ialah kandungan terperinci Cara menggunakan perpustakaan pembelajaran mesin belajar scikit dalam Python.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam