machine-learning
Apache स्पार्क MLib का उपयोग करके मशीन लर्निंग के साथ शुरुआत करना
खोज…
परिचय
Apache स्पार्क MLib (JAVA, R, PYTHON, SCALA) 1. प्रदान करता है।) प्रतिगमन, वर्गीकरण, क्लस्टरिंग, सहयोगी फ़िल्टरिंग पर विभिन्न मशीन लर्निंग एल्गोरिदम जो ज्यादातर मशीन लर्निंग में उपयोग किए जाते हैं। 2.) यह सुविधा निष्कर्षण, परिवर्तन आदि का समर्थन करता है। 3. यह डेटा चिकित्सकों को उनकी मशीन सीखने की समस्याओं (साथ ही ग्राफ संगणना, स्ट्रीमिंग, और वास्तविक समय इंटरैक्टिव क्वेरी प्रसंस्करण) को अंतःक्रियात्मक रूप से और अधिक से अधिक पैमाने पर हल करने की अनुमति देता है।
टिप्पणियों
स्पार्क एमएलआईबी के बारे में अधिक जानने के लिए कृपया नीचे दिए गए संदर्भ देखें
लॉजिस्टिक रिग्रेशन मॉडल का उपयोग करके अपनी पहली वर्गीकरण समस्या लिखें
मैं यहां ग्रहण का उपयोग कर रहा हूं, और आपको नीचे दी गई निर्भरता को अपने pom.xml में जोड़ना होगा
1.) POM.XML
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.predection.classification</groupId>
<artifactId>logisitcRegression</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>logisitcRegression</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Spark -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.10</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
</project>
2.) APP.JAVA (आपका आवेदन वर्ग)
हम देश, घंटों के आधार पर वर्गीकरण कर रहे हैं और हमारे लेबल पर क्लिक किया गया है।
package com.predection.classification.logisitcRegression;
import org.apache.spark.SparkConf;
import org.apache.spark.ml.classification.LogisticRegression;
import org.apache.spark.ml.classification.LogisticRegressionModel;
import org.apache.spark.ml.feature.StringIndexer;
import org.apache.spark.ml.feature.VectorAssembler;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.types.StructField;
import org.apache.spark.sql.types.StructType;
import java.util.Arrays;
import java.util.List;
import org.apache.spark.sql.RowFactory;
import static org.apache.spark.sql.types.DataTypes.*;
/**
* Classification problem using Logistic Regression Model
*
*/
public class App
{
public static void main( String[] args )
{
SparkConf sparkConf = new SparkConf().setAppName("JavaLogisticRegressionExample");
// Creating spark session
SparkSession sparkSession = SparkSession.builder().config(sparkConf).getOrCreate();
StructType schema = createStructType(new StructField[]{
createStructField("id", IntegerType, false),
createStructField("country", StringType, false),
createStructField("hour", IntegerType, false),
createStructField("clicked", DoubleType, false)
});
List<Row> data = Arrays.asList(
RowFactory.create(7, "US", 18, 1.0),
RowFactory.create(8, "CA", 12, 0.0),
RowFactory.create(9, "NZ", 15, 1.0),
RowFactory.create(10,"FR", 8, 0.0),
RowFactory.create(11, "IT", 16, 1.0),
RowFactory.create(12, "CH", 5, 0.0),
RowFactory.create(13, "AU", 20, 1.0)
);
Dataset<Row> dataset = sparkSession.createDataFrame(data, schema);
// Using stringindexer transformer to transform string into index
dataset = new StringIndexer().setInputCol("country").setOutputCol("countryIndex").fit(dataset).transform(dataset);
// creating feature vector using dependent variables countryIndex, hours are features and clicked is label
VectorAssembler assembler = new VectorAssembler()
.setInputCols(new String[] {"countryIndex", "hour"})
.setOutputCol("features");
Dataset<Row> finalDS = assembler.transform(dataset);
// Split the data into training and test sets (30% held out for
// testing).
Dataset<Row>[] splits = finalDS.randomSplit(new double[] { 0.7, 0.3 });
Dataset<Row> trainingData = splits[0];
Dataset<Row> testData = splits[1];
trainingData.show();
testData.show();
// Building LogisticRegression Model
LogisticRegression lr = new LogisticRegression().setMaxIter(10).setRegParam(0.3).setElasticNetParam(0.8).setLabelCol("clicked");
// Fit the model
LogisticRegressionModel lrModel = lr.fit(trainingData);
// Transform the model, and predict class for test dataset
Dataset<Row> output = lrModel.transform(testData);
output.show();
}
}
3.) इस एप्लिकेशन को चलाने के लिए, पहले एप्लिकेशन प्रोजेक्ट पर mvn-clean-package
निष्पादित करें, यह जार बनाएगा। 4.) स्पार्क रूट डायरेक्टरी खोलें, और इस जॉब को सबमिट करें
bin/spark-submit --class com.predection.regression.App --master local[2] ./regression-0.0.1-SNAPSHOT.jar(path to the jar file)
5.) सबमिट करने के बाद यह प्रशिक्षण डेटा बनाता है
6.) उसी तरह परीक्षण डेटा
7.) और यहाँ भविष्यवाणी कॉलम के तहत भविष्यवाणी परिणाम है