Petak Terkecil NumPy

Petak Terkecil Numpy



Hari ini, kita akan belajar tentang kuasa dua terkecil dalam persamaan linear dan cara melaksanakan kaedah kuasa dua terkecil untuk kesesuaian terbaik untuk garis regresi dalam set data yang disediakan. Tetapi sebelum itu, mari dapatkan pengetahuan asas NumPy. NumPy ialah salah satu pakej matematik terbaik Python yang menyediakan perkhidmatan untuk tatasusunan dan matriks berbilang dimensi bersama-sama dengan pelbagai operasi berangka kompleks yang mungkin dilakukan pada matriks/tatasusunan ini.

Salah satu kaedah Python lstsq() digunakan untuk mencari garis regresi bagi persamaan linear yang diketahui ax=b yang paling sesuai dengan persamaan ini. Ini bermakna anda perlu menentukan garis yang betul menunjukkan hubungan antara titik x dan y jika data anda menunjukkan bahawa terdapat satu. Garis antara kedua-dua titik dikenali sebagai garis regresi apabila ia digunakan untuk mencari kuasa dua terkecil melalui persamaan ini, ax=b.

Sintaks:

Mari kita mula mempelajari gaya pelaksanaan fungsi linalg.lstsq(). Pertama, kami menulis nama perpustakaan yang kami gunakan dalam Python iaitu 'numpy'. Kemudian, kami menggabungkan fungsi linalg() dan menggabungkan fungsi lstsq(). Fungsi linalg() bermaksud algebra linear. Ia sentiasa digunakan dengan fungsi lstsq() kerana ia adalah ungkapan algebra linear. Selepas ini, kami lulus hujah dalam kurungan fungsi.









Parameter:

Mari kita fahami parameter fungsi linalg.lstsq():



point1: Ia adalah matriks pekali.





point2: Matriks atau tatasusunan ini mengandungi pembolehubah bersandar.

rcond: Jenis datanya adalah terapung. Nisbah rcond berfungsi sebagai pemotongan untuk nilai tunggal yang lebih kecil bagi titik_1. Jika nilai tunggal adalah kurang daripada rcond dikali elemen tunggal terbesar titik_1, ia dianggap sifar apabila menentukan pangkat.



Nilai Pulangan:

Sebagai balasan, kita mendapat kuasa dua terkecil bagi pembolehubah x yang diketahui dalam persamaan ax=b.

Contoh 1:

Mari kita mula melaksanakan contoh pertama kami kaedah kuasa dua terkecil perpustakaan Python, NumPy. Pertama, kita memerlukan pengkompil Python supaya kita boleh kod di dalamnya. Buka pengkompil. Anda juga perlu memasang perpustakaan NumPy kerana kami menggunakan salah satu fungsi NumPy iaitu fungsi lstsq(). Kemudian, anda perlu mengimport pakej NumPy di ​​dalamnya. Mula-mula, tulis kata kunci 'import' yang memberitahu pengkompil bahawa kami akan mengimport pakej tersebut. Kemudian, kita perlu menulis nama pakej yang kita gunakan dalam fungsi yang 'numpy'. Dan kemudian, kami juga menulis nama ganti 'np' NumPy kerana ramai pengaturcara menggunakan pendekatan ini. Ini adalah pendekatan pengaturcaraan yang baik, dan ia menjimatkan masa.

Selepas mengimport pakej, kami mula menulis baris kod sebenar yang ingin kami lakukan. Kami mencetak mesej terlebih dahulu supaya pengguna boleh memahami dengan mudah perkara yang kami lakukan dalam contoh menggunakan pernyataan print(). Kami mencipta tatasusunan satu dimensi 'A' menggunakan fungsi tatasusunan() dan kemudian mencetaknya dengan memanggil pernyataan print(). Kemudian, kami mencipta satu lagi tatasusunan satu dimensi 'B' menggunakan fungsi tatasusunan() dan mencetaknya menggunakan fungsi cetak().

import numpy sebagai cth.

cetak ( 'Pelaksanaan Kaedah Kuasa Dua Terkecil dalam NumPy: ' )

A = cth. tatasusunan ( [ 1 , dua , 1 , 1 , 1 , dua , dua , 1 , 1 ] )

cetak ( ' \n Array A ialah: ' , A )

B = cth. tatasusunan ( [ 4 , 3 , 5 , 4 , dua , 3 , 6 , 3 , dua ] )

cetak ( ' \n Tatasusunan B ialah: ' , B )

X = cth. biji rami . lstsq ( cth. vstack ( [ A , cth. satu ( sahaja ( A ) ) ] ) . T , B , rcond = tiada ) [ 0 ]

cetak ( ' \n Dataran Terkecil ialah: ' , X )

Selepas penciptaan kedua-dua titik A dan B, kami melaksanakan fungsi lstsq(). Tetapi pertama, kami menggunakan fungsi vstack() untuk menyusun elemen 'A', mengikut urutan. Kemudian, kami mengambil transpose tatasusunan 'A'. Kemudian, kita lulus fungsi vstack() sebagai hujah pertama bagi fungsi lstsq(). Argumen kedua ialah tatasusunan 'B' dan argumen ketiga ialah 'rcond' di mana kita menetapkan nilai rcond sebagai 'tiada'. Kemudian, kami menyimpan keseluruhan fungsi dalam tatasusunan lain bernama 'x' yang menunjukkan bahawa ia adalah persamaan linear pembolehubah yang diketahui, ax=b. Selepas ini, kami memaparkan keputusan supaya kami menggunakan pernyataan print() untuk ini dan lulus tatasusunan 'x' di dalamnya.

Contoh 2:

Sekarang, mari kita mula melaksanakan satu lagi contoh petak terkecil NumPy. Kami sentiasa mengimport perpustakaan dahulu yang kami gunakan dalam program iaitu NumPy. Pertama, kami menulis kata kunci 'import' untuk mendapatkan pakej dalam program. Kami juga menulis nama pakej iaitu 'numpy' dan kemudian aliasnya, 'np'. Kemudian, kami memanggil kaedah print() supaya kami boleh memaparkan mesej boleh semula kuasa dua terkecil untuk pemahaman yang lebih baik tentang pengguna.

Kemudian, kami mencipta nama tatasusunan 'x_axis' dan menyimpan tatasusunan di dalamnya menggunakan fungsi arange(). Kemudian, kami mencetaknya menggunakan kaedah print(). Kemudian, kami mencipta nama tatasusunan lain 'paksi_y' dan menyimpan tatasusunan di dalamnya yang kami buat dalam ilustrasi berikut.

Selepas mencipta kedua-dua tatasusunan, kami melaksanakan kaedah one() pada tatasusunan x_axis dan menyimpannya dalam tatasusunan lain bernama 'array_a'. Dan kemudian, kami juga mencetak tatasusunan ini. Kami mencipta tatasusunan lain bernama 'arg_reg_line' dan melaksanakan fungsi linalg.lstsq() padanya. Kemudian, kami menghantar parameter kepada fungsi ini supaya kami boleh mendapatkan kuasa dua terkecil antara dua tatasusunan atau titik. Parameter pertama ialah kita mengambil transpose array_a. Parameter kedua ialah titik kedua iaitu paksi y. Kemudian, kita mempunyai 'rcond' yang mengandungi nilai 'tiada'. Kami kemudian memaparkan tatasusunan menggunakan kaedah print().

import numpy sebagai cth.

cetak ( 'Pelaksanaan fungsi linalg.lstsq(): ' )

paksi x = cth. arange ( 0 , 10 )

cetak ( ' \n Nilai paksi x ialah: ' , paksi x )

paksi_y = [ 10.3 , 10.5 , sebelas , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

cetak ( ' \n Nilai paksi y ialah: ' , paksi_y )

array_a = cth. tatasusunan ( [ paksi x , cth. satu ( 10 ) ] )

cetak ( ' \n Array ialah: \n ' , array_a )

arg_reg_line = cth. biji rami . lstsq ( array_a. T , paksi_y , rcond = tiada ) [ 0 ]

cetak ( ' \n Parameter Garis Regrssion ialah: ' , arg_reg_line )

reg_line = arg_reg_line [ 0 ] * x_axis + arg_reg_line [ 1 ]

import matplotlib. piplot sebagai plt

plt. plot ( paksi x , reg_line , 'r-' )

plt. plot ( paksi x , paksi_y , 'O' )

plt. tajuk ( 'Baris Regresi Linear' )

plt. xlabel ( 'Paksi X' )

plt. ylabel ( 'Paksi Y' )

plt. tunjuk ( )

Berikut ialah output contoh yang dilaksanakan sebelumnya:

Kami mengimport pakej lain NumPy iaitu pakej 'matplotlib' yang digunakan untuk memplot graf. Kemudian, kami memplot nilai paksi x dan nilai paksi y. Seterusnya, kami menetapkan tajuk dan label graf. Akhir sekali, kami memaparkan graf menggunakan kaedah show().

Berikut ialah graf yang dikehendaki bagi contoh yang diberikan:

Kesimpulan

Dalam artikel ini, kita mempelajari apakah kuasa dua terkecil dan bagaimana kita mendapatkan linalg.lstsq() bagi pembolehubah x yang tidak diketahui menggunakan persamaan linear ax=b. Kami menggunakan berbilang fungsi NumPy untuk mencari petak terkecil dan melaksanakan beberapa contoh dengan penjelasan terperinci untuk pemahaman yang lebih baik tentang pengguna.