2017-12-07 5 views
1

私はe1071ライブラリを使ってテキストを分類しています。私はNBのアルゴリズムを使用することができましたが、SVMを適用するのに苦労しました。 Cran websiteR e1071 SVMモデルのtwitter分類

このサイトには、オブジェクトの種類とそのコードをどのように取得するのか説明していないコードが含まれています。

> svm 
> svm.model <- svm(Type ~ ., data = trainset, cost = 100, gamma = 1) 
> svm.pred <- predict(svm.model, testset[,-10]) 

マイコード:

library(e1071) 
library(dplyr) 
library(caret) 
library(rpart) 



df<- read.csv("C:/Users/Suki/Projects/RProject/tweets.csv", stringsAsFactors = FALSE) 


trainSVM <- apply(dtm.train.svm, 2, convert_count) 
testSVM <- apply(dtm.test.svm, 2, convert_count) 

svm.model <- svm(Type~., data = trainSVM, cost = 100, gamma = 1) 
svm.pred <- predict(svm.model, testSVM) 

を私は説明を見つけることができたが、他の同様の例を見ていません。私が正しいと思っているのは、SVMモデルで予測したいタイプのものですか?私がこれまで行ってきたことは、SVMモデルにその情報をどのように与えることができるかわかりません。

時間と助けてくれてありがとう。

+0

はい、「タイプ」は予測しようとしているものです。 'data'引数として提供しているdata.frameの列でなければなりません。より具体的には、 'Type〜.'は基本的には「他のすべての列の値を使用して、' Type'列の値を予測する」という式です。 –

+0

返事をありがとう。私はcsvを読んでから、最初の列の変数df [、c(col1)]を作成しても、header = TRUEを追加して助言を取ってみましたが、まだエラーメッセージが表示されています。 data.frameでどのようにカラムを作成するか、データ、フレームのcsvを読み取るメソッドを変更する必要があるかどうかをさらに詳しく説明できますか? – Estra

+0

私たちはあなたのデータにアクセスすることができないので、何がうまくいかないと言うことはできません。ビルトインのデータセットを使用したデモンストレーションについては、私の答えを参照してください。 –

答えて

1

Type ~ .は、「列の型の値は他のすべての列の値に依存します」というモデルを定義する式です。私たちはあなたのデータファイルへのアクセス権を持っているので、のは、内蔵されたデータセットiris考慮せてはいけない:

head(iris) ## Look at the first few rows of the data 
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
# 1   5.1   3.5   1.4   0.2 setosa 
# 2   4.9   3.0   1.4   0.2 setosa 
# 3   4.7   3.2   1.3   0.2 setosa 
# ... 

は、私は他のすべての列の値に基づいて列Speciesの値を予測するとします。対応するモデルをSpecies ~ .と定義することができます。また、列の一部を使用したい場合は、の右側に配置します。たとえば、Species ~ Sepal.Length + Petal.Lengthは、*Lengthの列のみを使用します。

は今、私は私のデータセットと私の式を持っていることを、私はあなたがデモンストレーションの目的のために

myModel <- e1071::svm(Species ~ ., data = iris) 

の答えで提供されたコードを使用して、私のSVMを訓練することができ、我々は、取得するために戻ってトレーニングデータにモデルを適用することができます予測最後に

predict(myModel, iris) 
#   1   2   3   4   5   6   7 
#  setosa  setosa  setosa  setosa  setosa  setosa  setosa 
#   8   9   10   11   12   13   14 
#  setosa  setosa  setosa  setosa  setosa  setosa  setosa 
# ... 

は、svm機能は、データ/ラベル(?e1071::svmを見てみましょう)を供給するための別の方法を持っていることに注意してください。以下は、モデルをトレーニングするための同等の方法です:

e1071::svm(iris[,1:4], iris[,5]) # Predict Column 5 values from Column 1:4 values 
関連する問題