[php machine learning] PHP-ML을 이용한 분류

 

 

#

기계 학습에서의 분류는 새로운 관찰이 속한 범주 집합을 식별하는 문제입니다. 분류는 Supervised Machine Learning 의 범주에 속합니다.

분류를 구현하는 모든 알고리즘은 분류로 알려져있다

PHP-ML에서 지원되는 분류 기준은

  • SVC (지원 벡터 분류)
  • k- 가장 가까운 이웃
  • 나이브 베이 즈

train 와 predict 방법은 모든 분류 기준에서 동일합니다. 유일한 차이점은 사용 된 기본 알고리즘에 있습니다.

SVC (지원 벡터 분류)

새로운 관측을 예측하기 전에 먼저 분류자를 훈련해야합니다. 다음 코드를 고려하십시오.

// Import library
use Phpml\Classification\SVC;
use Phpml\SupportVectorMachine\Kernel;

// Data for training classifier
$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];  // Training samples
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

// Initialize the classifier
$classifier = new SVC(Kernel::LINEAR, $cost = 1000);
// Train the classifier
$classifier->train($samples, $labels);

코드는 꽤 간단합니다. 위에 사용 된 $cost 은 각 교육 사례를 잘못 분류하는 것을 피하기 위해 얼마나 많이 사용했는지 측정 한 것입니다. 의 작은 값의 경우 $cost 이 잘못 분류 된 사례를 얻을 수 있습니다. 기본적으로 1.0 으로 설정됩니다.

이제 분류자를 훈련 받았으므로 실제 예측을 시작할 수 있습니다. 예측에 대해 다음과 같은 코드를 고려하십시오.

$classifier->predict([3, 2]); // return 'b'
$classifier->predict([[3, 2], [1, 5]]); // return ['b', 'a']

위의 경우에 분류기는 분류되지 않은 샘플을 가져 와서 레이블을 예측할 수 있습니다. predict 메소드는 샘플의 배열뿐만 아니라 단일 샘플을 취할 수 있습니다.

k- 가장 가까운 이웃

이 알고리즘의 classfier는 두 개의 매개 변수를 취하며 다음과 같이 초기화 될 수 있습니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

$classifier = new KNearestNeighbors($neighbor_num=4);
$classifier = new KNearestNeighbors($neighbor_num=3, new Minkowski($lambda=4));

$neighbor_num 은 knn 알고리즘에서 스캔 할 가장 가까운 이웃 수이고 두 번째 매개 변수는 기본적으로 첫 번째 경우 Euclidean 거리 메트릭입니다. Minkowski에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

다음은이 분류 기준을 사용하는 방법에 대한 간단한 예입니다.

// Training data
$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

// Initialize classifier
$classifier = new KNearestNeighbors();
// Train classifier
$classifier->train($samples, $labels);

// Make predictions
$classifier->predict([3, 2]); // return 'b'
$classifier->predict([[3, 2], [1, 5]]); // return ['b', 'a']

NaiveBayes 분류기

NaiveBayes Classifier 는 Bayes' theorem 기반으로하며 생성자에서 매개 변수가 필요하지 않습니다.

다음 코드는 간단한 예측 구현을 보여줍니다.

// Training data
$samples = [[5, 1, 1], [1, 5, 1], [1, 1, 5]];
$labels = ['a', 'b', 'c'];

// Initialize classifier
$classifier = new NaiveBayes();
// Train classifier
$classifier->train($samples, $labels);

// Make predictions
$classifier->predict([3, 1, 1]); // return 'a'
$classifier->predict([[3, 1, 1], [1, 4, 1]); // return ['a', 'b']

 

실제 사례#

지금까지는 모든 경우에 정수 배열 만 사용했지만 실생활에서는 그렇지 않습니다. 그러므로 분류 자 ​​사용 방법에 대한 실제적인 상황을 설명하려고 노력하겠습니다.

자연에 꽃의 특성을 저장하는 응용 프로그램이 있다고 가정 해보십시오. 단순화를 위해 꽃잎의 색깔과 길이를 고려할 수 있습니다. 그래서 우리의 데이터를 훈련시키는 데 두 가지 특성이 사용됩니다. color 은 각각에 int 값을 할당 할 수있는 더 간단한 방법이며 길이는 (0 mm,10 mm)=1 , (10 mm,20 mm)=2 와 같은 범위를 가질 수 있습니다. 초기 데이터는 분류자를 훈련시킵니다. 이제 사용자 요구 중 하나는 뒷마당에서 자라는 꽃의 종류를 식별합니다. 그가하는 일은 꽃의 color 을 선택하고 꽃잎의 길이를 더하는 것입니다. 분류기를 실행하면 꽃의 유형을 감지 할 수 있습니다 ( '위의 라벨'참조).

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
129 [Redis] php 세션 저장소를 redis 로 바꾸어 본 후기. file 졸리운_곰 2021.04.11 47
128 Creating a Website Design Templating System Using PHP 졸리운_곰 2021.02.13 22
127 Build a CRUD Operation using PHP & MongoBD 졸리운_곰 2021.01.04 23
126 CRUD Operation using PHP & Mongodb file 졸리운_곰 2021.01.04 26
125 PHP and MongoDB Connection file 졸리운_곰 2021.01.04 63
124 PHP 기반의 Micro Frameworks 정리 졸리운_곰 2020.12.02 51
123 CKEditor 4 설치와 PHP 연동 하기 file 졸리운_곰 2020.11.22 47
122 [php] CKeditor 설정 및 적용 졸리운_곰 2020.11.22 38
121 [PHP]Fuelframework 설치 및 시작 방법(window10,xampp) file 졸리운_곰 2020.10.01 34
120 Building a Simple Blog App with MongoDB and PHP file 졸리운_곰 2020.09.13 50
119 웹 설문조사 시스템 & 설문조사를 잘 하는 방법 file 졸리운_곰 2020.09.10 185
118 ReactPHP Series 졸리운_곰 2020.07.01 50
117 Building a RESTful API Using ReactPHP and MySQL file 졸리운_곰 2020.07.01 44
116 [PHP 웹개발] MySQL 데이터베이스에서 mysqli(MySQL Improved) 사용법 졸리운_곰 2020.05.07 39
115 PHP 파일 업로드와 다운로드 만들기 file 졸리운_곰 2020.05.07 374
114 HOW TO INTEGRATE R WITH PHP : php와 R 언어의 연동 file 졸리운_곰 2020.05.05 250
113 XAMPP, PhpStorm, Hello World 출력하기 졸리운_곰 2020.03.27 40
112 Pico is a stupidly simple, blazing fast, flat file CMS. file 졸리운_곰 2020.03.19 30
111 directorylister php 사용법 file 졸리운_곰 2020.03.18 129
110 flat file 플랫파일시스템 : GRAV CMS file 졸리운_곰 2020.03.18 60
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED