먼저, 저는 Machine Learning, kmeans 및 r에 대해 상당히 새롭다고 말하며,이 프로젝트는 학습 수단입니다 더 많은 정보를 얻고 CIO에게이 데이터를 제공하여 새로운 헬프 데스크 시스템을 개발할 때 사용할 수 있습니다.sample.int (m, k)의 오류 : 모집단보다 큰 표본을 사용할 수 없습니다.
저는 60K 라인 텍스트 파일을 가지고 있습니다. 이 파일에는 3 년 동안 교사가 입력 한 헬프 데스크 티켓의 제목이 들어 있습니다.
이 제목을 사용하고 범주 집합을 만드는 r 프로그램을 만들고 싶습니다. 예를 들어, 인쇄 문제와 관련된 용어 또는 프로젝터 전구와 관련된 용어 그룹. 나는 r을 사용하여 텍스트 문서를 열고, 데이터를 정리하고, 멈춤 단어와 다른 단어들을 제거했다. 나는 필요 없다고 느꼈다. 나는 주파수가> 400 인 모든 용어의 목록을 가져 와서 텍스트 파일에 저장했다.
하지만 이제는 동일한 데이터 세트로 클러스터링하는 kmeans를 적용하고 카테고리를 만들 수 있는지 확인하고 싶습니다.
아래 코드에는 사용 된 용어 목록을> 400으로 작성하는 코드가 포함되어 있습니다.이 코드는 끝에 있으며 주석 처리되었습니다.
> results <- kmeans(m_norm,25)
Error in sample.int(m, k) : cannot take a sample larger than the population when 'replace = FALSE'
나는 이것이 무엇을 의미하는지 정말 모르겠어요, 나는이 온라인에 대한 정보를 많이 발견되지 않은 :이 사용 RStudio를 실행하면
library(tm) #load text mining library
library(SnowballC)
options(max.print=5.5E5)
setwd('c:/temp/') #sets R's working directory to near where my files are
ae.corpus<-Corpus(DirSource("c:/temp/"),readerControl=list(reader=readPlain))
summary(ae.corpus) #check what went in
ae.corpus <- tm_map(ae.corpus, tolower)
ae.corpus <- tm_map(ae.corpus, removePunctuation)
ae.corpus <- tm_map(ae.corpus, removeNumbers)
ae.corpus <- tm_map(ae.corpus, stemDocument, language = "english")
myStopwords <- c(stopwords('english'), <a very long list of other words>)
ae.corpus <- tm_map(ae.corpus, removeWords, myStopwords)
ae.corpus <- tm_map(ae.corpus, PlainTextDocument)
ae.tdm <- DocumentTermMatrix(ae.corpus, control = list(minWordLength = 5))
dtm.weight <- weightTfIdf(ae.tdm)
m <- as.matrix(dtm.weight)
rownames(m) <- 1:nrow(m)
#euclidian
norm_eucl <- function(m) {
m/apply(m,1,function(x) sum(x^2)^.5)
}
m_norm <- norm_eucl(m)
results <- kmeans(m_norm,25)
#list clusters
clusters <- 1:25
for (i in clusters){
cat("Cluster ",i,":",findFreqTerms(dtm.weight[results$cluster==i],400,"\n\n"))
}
#inspect(ae.tdm)
#fft <- findFreqTerms(ae.tdm, lowfreq=400)
#write(fft, file = "dataTitles.txt",
# ncolumns = 1,
# append = FALSE, sep = " ")
#str(fft)
#inspect(fft)
, 내가 얻을. 이견있는 사람?
TIA
'm_norm'은 25 개 센터에 대해 충분히 큰가요? – Roland
나는 그것을 5 개의 센터에 떨어 뜨 렸고, 같은 오류가났다. 내가 2로 떨어 뜨 렸을 때 'do_one (nmeth)의 오류 : 외국 함수 호출 (arg 1)의 NA/NaN/Inf' –
'R'뿐만 아니라 프로그래밍에 익숙하지 않기 때문에 작게 시작할 것을 제안합니까? 적절한 데이터가 포함 된 10 줄짜리 파일을 작성하면 결과를 미리 알 수 있습니다. 단계별로 실행하여 올바른 알고리즘을 적용하는지 확인하십시오. –