python scikit-learnで机械学习を试してみた

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python scikit-learnで机械学习を试してみた相关的知识,希望对你有一定的参考价值。

#! /usr/bin/env python3

from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing    import StandardScaler
from sklearn.linear_model     import Perceptron
from sklearn.metrics          import accuracy_score
import numpy as np

iris = datasets.load_iris()

x = iris.data[:, [2, 3]]
y = iris.target

x_train, x_test, y_train, y_test = train_test_split(
  x, y, test_size=0.3, random_state=0)

sc = StandardScaler()
sc.fit(x_train)

x_train_std = sc.transform(x_train)
x_test_std  = sc.transform(x_test)

ppn = Perceptron(n_iter=40, eta0=0.1, random_state=0, shuffle=True)
ppn.fit(x_train_std, y_train)

y_pred = ppn.predict(x_test_std)

print('Misclassified samples: %d' % (y_test != y_pred).sum())
print('Accuracy: %.2f' % accuracy_score(y_test, y_pred))


from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt

def plot_decision_regions(x, y, classifier, test_idx=None, resolution=0.02):
    markers = ('s', 'x', 'o', '^', 'v')
    colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')
    cmap = ListedColormap(colors[:len(np.unique(y))])

    x1_min, x1_max = x[:, 0].min(), x[:, 0].max() + 1
    x2_min, x2_max = x[:, 1].min(), x[:, 1].max() + 1

    xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),
                           np.arange(x2_min, x2_max, resolution))

    z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)
    z = z.reshape(xx1.shape)

    plt.contourf(xx1, xx2, z, alpha=0.4, cmap=cmap)

    plt.xlim(xx1.min(), xx1.max())
    plt.ylim(xx2.min(), xx2.max())

    for idx, cl in enumerate(np.unique(y)):
        plt.scatter(x=x[y == cl, 0], y=x[y == cl, 1],
                    alpha=0.8, c=cmap(idx),
                    marker=markers[idx], label=cl)

    if test_idx:
        x_test, y_test = x[test_idx, :], y[test_idx]
        plt.scatter(x_test[:, 0], x_test[:, 1], c='',
            alpha=1.0, linewidths=1, marker='o',
            s=55, label='test set')

x_combined_std = np.vstack((x_train_std, x_test_std))
y_combined     = np.hstack((y_train, y_test))
plot_decision_regions(x=x_combined_std, y=y_combined, classifier=ppn, test_idx=range(105, 150))

plt.show()

以上是关于python scikit-learnで机械学习を试してみた的主要内容,如果未能解决你的问题,请参考以下文章

python MayaCmdsで作成した窗口を最小化する

python GCPのインスタンス名一覧を配列で取得

python 枕头で背景に色をつけて内容を回転させる

python WARPの検索APIを利用するコードの骨组み.Jupyterに埋め込むととりあえずJSONを取得できます。

python PyTorchで检查点を保存しておいて恢复する方法が参考になる

python Slack APIで用户のIDと名の一覧を取得して,出力するスクリプト