i have the following code:
the error is comming:
Traceback (most recent call last):
File "D:\python_fold er\python_2002\ run_mybayes.py" , line 2, in <module>
datingDataMat,d atingLabels = kNN.file2matrix ('train.txt')
File "D:\python_fold er\python_2002\ my_bayes.py", line 48, in file2matrix
returnMat[index,:] =['X','Y','Z']
ValueError: could not convert string to float: X
Code:
from numpy import *
import operator
def createDataSet():
groups = array([[1.0,1.1],[1.0,1.0],[0,0],[0,.1]])
labels = ['A','A','B','B']
return groups, labels
def classify0(inX,dataSet,labels,k):
dataSetSize = dataSet.shape[0]
print(dataSetSize)
diffMat = tile(inX,(dataSetSize,1)) - dataSet
print(diffMat)
sqDiffMat = diffMat**2
print(sqDiffMat)
sqDistances = sqDiffMat.sum(axis=1)
print(sqDistances)
distances = sqDistances**0.5
sortedDistIndicies = distances.argsort()
print(sortedDistIndicies)
classCount = {}
for i in range(k) :
print i
voteIlabel = labels[sortedDistIndicies[i]]
print(voteIlabel)
classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
print(classCount)
sortedClassCount = sorted(classCount.iteritems(),key=operator.itemgetter(1),
reverse = True)
print(sortedClassCount)
return sortedClassCount[0][0]
def file2matrix(filename):
fr = open(filename)
arrayOLines = fr.readlines()
numberOfLines = len(arrayOLines) #get the number of lines in the file
returnMat = (zeros((numberOfLines,3))) #prepare matrix to return
classLabelVector = [] #prepare labels return
print numberOfLines
index = 0
for line in arrayOLines:
line = line.strip()
listFromLine = line.split('\t')
print index
## print listFromLine
## returnMat[index ,:] = array(listFromLine[0])
returnMat[index,:] =['X','Y','Z']
## returnMat[index ,2] = listFromLine[2]
## returnMat[index ,3] = listFromLine[3]
classLabelVector.append(listFromLine[0])
index += 1
return returnMat,classLabelVector
def autoNorm(dataSet):
minVals = dataSet.min(0)
maxVals = dataSet.max(0)
ranges = maxVals - minVals
normDataSet = zeros(shape(dataSet))
m = dataSet.shape[0]
normDataSet = dataSet - tile(minVals, (m,1))
normDataSet = normDataSet/tile(ranges, (m,1)) #element wise divide
return normDataSet, ranges, minVals
the other code is:
import my_bayes as kNN
datingDataMat,datingLabels = kNN.file2matrix('train.txt')
##print datingLabels
##print datingDataMat
Traceback (most recent call last):
File "D:\python_fold er\python_2002\ run_mybayes.py" , line 2, in <module>
datingDataMat,d atingLabels = kNN.file2matrix ('train.txt')
File "D:\python_fold er\python_2002\ my_bayes.py", line 48, in file2matrix
returnMat[index,:] =['X','Y','Z']
ValueError: could not convert string to float: X
Comment