1

テストする必要がある一連のルールがあります。アイリス データセットを使用しており、生成されたルールは次のようになります。

ルール、クラス

PetalLength > 2.45 AND PetalWidth <= 1.7、逆色 PetalWidth > 0.8 AND PetalLength <= 4.75、逆色

ここで、データセットを介して各ルールを渡し、データフレームを取得します。ここで、行はデータセットのレコードで、列はルールです。各ルールがレコードを介して渡されると、ルールがレコードを正しく分類する場合の場合、そのレコードのスコアは 1、そうでない場合はスコアが 0 になり、これらの値は各行のデータフレームに格納されます。すべてのルールを通過した後に行の合計を取得したいのですが、行の合計が特定の値 (たとえば 3) を超えると、ルールの通過が停止します。

これまでのところ、データセットを介して各ルールを実行し、特定のルールが正しく分類したインスタンスの数を取得するコードを作成しましたが、この側面をコーディングする方法がわかりません。誰かが私を助けてくれますか?

countfn <- function (x) {   
library(sqldf)   
return(print(sqldf(x)))}
dataset=iris
####The names alone are modified 
names(dataset) = c("SepalLength", "SepalWidth" , "PetalLength", "PetalWidth",  "Species")
####Reading the rules file to R 
rulefin = read.csv("FinalRules.csv", header=TRUE, sep=",",strip.white = TRUE) 
library(sqldf)
library(stringr)
####Query to see how many instances for a specific class are correctly classified by the rule
query=data.frame(paste('select count(*) from dataset where',rulefin$Rule,'  and Species
> =','\'',rulefin$Class),'\'',sep="")) 
library(data.table)
####Creating a table to store the number of correctly classified instances
df1=data.table(apply(query,1,countfn))

このコードは、各ルールがすべての行で実行されるデータ フレームを取得し、最後に列の合計、つまりその特定のルールによって正しく分類されたインスタンスの数を示します。

4

0 に答える 0