Чтение arff файла в R - PullRequest
       20

Чтение arff файла в R

2 голосов
/ 31 марта 2012

Я хочу прочитать набор данных из UCI с обзорами Amazon, используя R.

Набор данных поставляется в формате ARFF (.arff).

Я использую следующий скрипт:

require("foreign")
setwd("H:/DataSet/amazon")
reviews <- read.arff("amazon.arff")

И я получаю следующую ошибку

Ошибка в read.arff ("amazon.arff"): неверная спецификация атрибута.

Спасибо за вашу помощь в продвинутом.

Ответы [ 3 ]

4 голосов
/ 31 марта 2012

Полагаю, вы имеете в виду «Набор данных обзора Amazon Commerce» в репозитории машинного обучения UCI.Даже Weka не может открыть этот набор данных, говоря:

"... не распознан как файл 'Arff data files'. ... Имена атрибутов не являются уникальными."

и если вы посмотрите наВ файле вы видите множество записей, похожих на

@attribute '\'\'\'\'\'\'\'\'\'\'r\'\'\'\'\'\'\'\'\'\'\'' numeric

Итак, что-то пошло не так с файлом, это не ошибка R или каких-либо подпрограмм чтения 'Arff'.Вы должны спросить создателя набора данных, чье имя и адрес электронной почты указаны на странице описания.

2 голосов
/ 29 апреля 2015

Я нашел решение заставить Weka открыть файл .arff.

Невозможно определить структуру как arff (Причина: java.lang.illegalArgumentException: имена атрибутов не являются уникальными! Причины: 'T' 'T '' T '' T '' I '' I '' I '' I '' Th '' Th '' Th '' class ').

Это не такие атрибуты, как этот @attribute "' \'\' \ '\' \ '\' \ '\' \ '\' r \ '\' \ '\' \ '\' \ '\' \ '\' \ '' numeric '.

Если вы откроете файл arff в текстовом редакторе (я использовал TextMate), вы найдете виновников.(в текстовом сопряжении они показывают )

  • @ атрибут g_b числовой @attribute T числовой @attribute eing числовой @attribute T числовой @attribute rne числовой @attribute T числовой @attribute T числовой

Вы можете использовать элемент управления F для поиска затем по атрибутам «I», «T» и «Th». Но для ускорения поиска здесь есть 3 удобных для поиска атрибута, которые близки к проблемным сайтам.

для поиска «I» для «t_wo»,

для поиска «Th» для поиска «ff _»

для поиска «T» для поиска «x_» (атрибуты будутвыше для этого)

Вы не можете просто удалить их, потому что нет никакого способа узнать, какие числа применяются, поэтому я предлагаю переименовать их в T2-4, I2-4 Th2-4.Вам также необходимо переименовать атрибут «класс» в «класс1»

0 голосов
/ 05 мая 2019

В вашем конкретном случае у набора данных есть некоторые проблемы, я не смог его прочитать.

Не уверен, поможет ли это, но если вы хотите читать файлы .arff, используя R, другой способ, который вы можете сделать, это использовать пакет RWeka .

Пакет имеет некоторые зависимости: rJava (Примечание 1) и RWekajars.

Затем, используя следующий скрипт, вы сможете прочитать набор данных (Примечание 2):

library(rJava)
library("RWeka")
x <- read.arff(file= "amazon.arff")

Я не пробовал специально с вашим набором данных (из-за его проблем), но при использовании iris.arff dataset сценарий работает нормально (конечно, нужно изменить имя файла).


Примечания

  1. Если у вас возникли какие-либо ошибки в пакете rJava, этот ответ, который я дал на другой вопрос, может помочь вам .
  2. Убедитесь, что вы запускаете скрипт в той папке, где у вас есть файл. Один из способов сделать это - создать новый проект в RStudio, сохранить набор данных в каталоге проекта и затем запустить нужные сценарии.
...