Python機械学習の概要-(1)

機械学習の概要

あなたが私のような機械学習の白人である場合は、ここで簡単なプロジェクトを紹介し、機械学習を開始します。行こう!

1.プロジェクトの紹介

このプロジェクトは、アヤメの花を分類するプロジェクトです。データセットには、アヤメの花の3つの亜属の分類情報が含まれており、自動学習を実現するために機械学習を通じてモデルとして保存されます。このプロジェクトは、マルチクラスの問題であり、教師あり学習です。
次の手順があります。
(1)データのインポート
(2)概要データ
(3)データの視覚化
(4)評価アルゴリズム
(5)予測の実装

2.データをインポートする

2.1インポートライブラリ

コードは次のとおりです。

# 导入类库
from pandas import read_csv
from pandas.plotting import scatter_matrix
from matplotlib import pyplot
from sklearn.model_selection import train_test_split
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC

ここでインポートに失敗した場合は、以下にインストールされていないライブラリがあるかどうかを確認することをお勧めします。

2.2データのインポート

アイリスデータセットをUCI機械学習ウェアハウスにダウンロードして、Baiduで検索できます。ダウンロードして作業ディレクトリに保存したら、Pandasを使用してcsvデータとデータの統計分析をインポートし、データの視覚化にMatplotlibを使用します。データをインポートするときに、各データに名前を設定します。これは、後の表示作業に役立ちます。コードは次のとおりです。

# 导入数据
filename = 'iris.data.csv'
names = ['separ-length', 'separ-width', 'petal-length', 'petal-width', 'class']
dataset = read_csv(filename, names=names)

2.3概要データ

私たちは、4件の観光名所
(1)表示データ次元
データそのものを表示する(2)
全ての統計データ機能(3)
のデータ分類の(4)配布
以下は、関連するコードです。

#显示数据维度
print('数据维度: 行 %s,列 %s' % dataset.shape)

# 查看数据的前10行
print(dataset.head(10))

# 统计描述数据信息
print(dataset.describe())

# 分类分布情况
print(dataset.groupby('class').size())

2.4データの可視化

これは私のお気に入りのリンクです。通常の画像に変換できる非常に多くの退屈なデータについて考えるのは非常にエキサイティングです。
コードは次のとおりです。

# 箱线图
dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
pyplot.show()

# 直方图
dataset.hist()
pyplot.show()

# 散点矩阵图
scatter_matrix(dataset)
pyplot.show()

結果は次のとおりです。


2.5評価アルゴリズム

さまざまなアルゴリズムを使用してモデルを追加し、その精度を評価して、最も適切なアルゴリズムを見つけます。次の手順:
(1)評価データセットを分離する
(2)10分割交差検証モデルを使用する
(3)6つの異なるモデルを生成して新しいデータを予測する
(4)最適なモデルを選択する
コードは次のとおりです。

# 分离数据集
array = dataset.values
X = array[:, 0:4]
Y = array[:, 4]
validation_size = 0.2
seed = 7
X_train, X_validation, Y_train, Y_validation = \
    train_test_split(X, Y, test_size=validation_size, random_state=seed)

# 算法审查
models = {}
models['LR'] = LogisticRegression()
models['LDA'] = LinearDiscriminantAnalysis()
models['KNN'] = KNeighborsClassifier()
models['CART'] = DecisionTreeClassifier()
models['NB'] = GaussianNB()
models['SVM'] = SVC()
# 评估算法
results = []
for key in models:
    kfold = KFold(n_splits=10, random_state=seed)
    cv_results = cross_val_score(models[key], X_train, Y_train, cv=kfold, scoring='accuracy')
    results.append(cv_results)
    print('%s: %f (%f)' %(key, cv_results.mean(), cv_results.std()))

# 箱线图比较算法
fig = pyplot.figure()
fig.suptitle('Algorithm Comparison')
ax = fig.add_subplot(111)
pyplot.boxplot(results)
ax.set_xticklabels(models.keys())
pyplot.show()

2.6実装予測

評価結果は、SVMが最も正確なアルゴリズムであることを示しています。予約済みの評価データセットを使用して、このアルゴリズムモデルを検証します。生成アルゴリズムを正確かつ直感的に理解できます。
すべてのトレーニングセットのデータを使用してサポートベクターマシンのアルゴリズムモデルを生成し、予約済みの評価データセットを使用してアルゴリズムモデルのレポートを作成します。コードは次のとおりです。

#使用评估数据集评估算法
svm = SVC()
svm.fit(X=X_train, y=Y_train)
predictions = svm.predict(X_validation)
print(accuracy_score(Y_validation, predictions))
print(confusion_matrix(Y_validation, predictions))
print(classification_report(Y_validation, predictions))

プログラムを実行すると、精度は0.8666666666666667に
なり、結果分析レポートは次のようになります。

おすすめ

転載: www.cnblogs.com/hhwblogs/p/12716165.html