前提・実現したいこと
Python1年生という書籍で勉強している超初心者です。
以下のソースコードで、初歩的な機械学習を作っているのですが、何の数字を書いてプログラムを実行しても「1」と返ってきてしまい、うまく機械学習データが読み込めていないようです。
対応についてご教示いただきたいです。
該当のソースコード
python
import sklearn.datasets
import sklearn.svm
import PIL.Image
import numpy
def imageToData(filename):
grayImage=PIL.Image.open(filename).convert("L")
grayImage=grayImage.resize((8,8),PIL.Image.ANTIALIAS)
numImage=numpy.asarray(grayImage,dtype=float)
numImage=numpy.floor(16-16*(numImage/256))
numImage=numImage.flatten()
return numImage
def predictDigits(data):
digits=sklearn.datasets.load_digits()
clf=sklearn.svm.SVC(gamma=0.001)
clf.fit(digits.data,digits.target)
n=clf.predict([data])
print("予測=",n)
data = imageToData("5.png")
predictDigits(data)
試したこと
画像ファイルは.pyファイルと同じデスクトップに保存し、2〜5のいくつかの数字を何回か書き直しましたが、全て「1」と返ってきてしまいます。
補足情報(FW/ツールのバージョンなど)
どの数字でも、
予測= [1]
と返ってきます。
学習用データの読み込み、機械学習がうまくいっていないのでしょうか。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー