import matplotlib.pyplot as plt from sklearn import datasets, tree from sklearn.metrics import accuracy_score, confusion_matrix from sklearn.metrics import precision_score, recall_score, f1_score # digitsデータをロード digits = datasets.load_digits() # 画像を 2 行 5 列に表示 for label, img in zip(digits.target[:10], digits.images[:10]): plt.subplot(2, 5, label + 1) plt.axis('off') plt.imshow(img, cmap=plt.cm.gray_r, interpolation='nearest') plt.title('Digit: {0}'.format(label)) plt.show() # 3と8のデータ位置を求める flag_3_8 = (digits.target == 3) + (digits.target == 8) print('flag_3_8: {0}'.format(flag_3_8)) # 3と8のデータを取得 images = digits.images[flag_3_8] labels = digits.target[flag_3_8] # 3と8の画像データを1次元化 images = images.reshape(images.shape[0], -1) # 3と8のデータのサイズ n_samples = len(flag_3_8[flag_3_8]) print('n_samples: {0}'.format(n_samples)) # 訓練データのサイズ train_size = int(n_samples * 3 / 5) print('train_size: {0}'.format(train_size)) # 分類器の作成 classifier = tree.DecisionTreeClassifier(max_depth=3) # データを分類器に掛ける classifier.fit(images[:train_size], labels[:train_size]) # テストデータのラベル expected = labels[train_size:] # 分類器でテストデータのラベルを予測 predicted = classifier.predict(images[train_size:]) print('Accuracy:\n',accuracy_score(expected, predicted)) print('Confusion matrix:\n',confusion_matrix(expected, predicted)) print('Precision:\n',precision_score(expected, predicted, pos_label=3)) print('Recall:\n',recall_score(expected, predicted, pos_label=3)) print('F-measure:\n', f1_score(expected, predicted, pos_label=3))
偉人の名言
夢はでっかく根はふかく
相田みつを
動画
無し