R语言 分类

R语言 分类

R是一种用于数据科学的非常动态和通用的编程语言。本文涉及R语言的分类。一般来说,R语言中的分类器用于预测特定类别的相关信息,如评论或评级,如好、最好或最差。

各种分类器是:

  • 决策树
  • Naive Bayes分类器
  • K-NN分类器
  • 支持向量机(SVM’s)

决策树分类器

它基本上是一个表示选择的图形。图中的节点或顶点代表一个事件,图中的边代表决策条件。它通常用于机器学习和数据挖掘应用。
应用:

电子邮件的垃圾邮件/非垃圾邮件分类,预测肿瘤是否为癌症。通常,用注意到的数据构建一个模型,也称为训练数据集。然后用一组验证数据来验证和改进该模型。

R软件包 “party “用于创建决策树并使之可视化。

命令

install.packages("party")
# Load the party package. It will automatically load other
# dependent packages.
library(party)
 
# Create the input data frame.
input.data <- readingSkills[c(1:105), ]
 
# Give the chart file a name.
png(file = "decision_tree.png")
 
# Create the tree.
  output.tree <- ctree(
  nativeSpeaker ~ age + shoeSize + score,
  data = input.dat)
 
# Plot the tree.
plot(output.tree)
 
# Save the file.
dev.off()

输出:

null device 
          1 
Loading required package: methods
Loading required package: grid
Loading required package: mvtnorm
Loading required package: modeltools
Loading required package: stats4
Loading required package: strucchange
Loading required package: zoo

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

   as.Date, as.Date.numeric

Loading required package: sandwich

天真贝叶斯分类器

奈何贝叶斯分类法是一种通用的分类方法,它使用概率方法,因此也被称为基于贝叶斯定理的概率方法,假设特征之间是独立的。该模型在训练数据集上进行训练,通过 predict() 函数进行预测。
公式:

P(A|B)=P(B|A)×P(A)P(B)

它是机器学习方法中的一个样本方法,但在某些情况下是有用的。训练简单而快速,只需要分别考虑每个类中的每个预测器。
应用:

它一般用于情感分析。

library(caret)
## Warning: package 'caret' was built under R version 3.4.3
set.seed(7267166)
trainIndex = createDataPartition(mydataprog, p = 0.7)Resample1
train = mydata[trainIndex, ]
test = mydata[-trainIndex, ]
 
## check the balance
print(table(mydataprog))
##
## academic    general vocational
## 105         45         50
print(table(trainprog))

输出:

## Naive Bayes Classifier for Discrete Predictors
## 
## Call:
## naiveBayes.default(x = X, y = Y, laplace = laplace)
## 
## A-priori probabilities:
## Y
##   academic    general vocational 
##  0.5248227  0.2269504  0.2482270 
## 
## Conditional probabilities:
##             science
## Y                [, 1]     [, 2]
##   academic   54.21622 9.360761
##   general    52.18750 8.847954
##   vocational 47.31429 9.969871
## 
##             socst
## Y                [, 1]      [, 2]
##   academic   56.58108  9.635845
##   general    51.12500  8.377196
##   vocational 44.82857 10.279865

K-NN分类器

另一个使用的分类器是K-NN分类器。在模式识别中,K-近邻算法(K-NN)是一种非参数方法,一般用于分类和回归。在这两种情况下,输入由特征空间中最接近的k个训练实例组成。在k-NN分类中,输出是一个类成员。

应用:

用于各种应用,如经济预测、数据压缩和遗传学。

示例:

# Write Python3 code here
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import confusion_matrix
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
import seaborn as sns
sns.set()
breast_cancer = load_breast_cancer()
X = pd.DataFrame(breast_cancer.data, columns = breast_cancer.feature_names)
X = X[['mean area', 'mean compactness']]
y = pd.Categorical.from_codes(breast_cancer.target, breast_cancer.target_names)
y = pd.get_dummies(y, drop_first = True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 1)
sns.scatterplot(
    x ='mean area',
    y ='mean compactness',
    hue ='benign',
    data = X_test.join(y_test, how ='outer')
)

输出:

R编程中的分类

支持向量机(SVM’s)

支持向量机(SVM)是一种有监督的二进制机器学习算法,对两组分类问题使用分类算法。在给SVM模型提供每个类别的标记训练数据集后,它们能够对新的文本进行分类。

主要是SVM被用于文本分类问题。它对未见过的数据进行分类。它比Naive Bayes使用得更广泛。SVM id通常是一种快速和可靠的分类算法,在有限的数据量下表现得非常好。

应用:

SVM在多个领域都有应用,如生物信息学,对基因进行分类等。

示例:

# Load the data from the csv file
dataDirectory <- "D:/" # put your own folder here
data <- read.csv(paste(dataDirectory, 'regression.csv', sep =""), header = TRUE)
 
# Plot the data
plot(data, pch = 16)
 
# Create a linear regression model
model <- lm(Y ~ X, data)
 
# Add the fitted line
abline(model)

输出:

R编程中的分类

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程