機械の未来44回目です。
元のアドレス: https://blog.csdn.net/RobotFutures/article/details/126615267
記事ディレクトリ
1。概要
この記事では、虹彩のデータ前処理を例として、科学計算を機械学習に使用する例を説明します。
2. データセットをロードする
虹彩データセットを例に取ります。
アヤメのデータセットには 4 つの特徴と 1 つのラベルがあります. 特徴は sepal_length, sepal_width, petal_length, 花弁幅, それぞれがく片の長さ, がく片の幅, 花弁の長さ, 花弁の幅です. ラベルは虹彩, 0, 1 の分類です. 、および 2 をそれぞれ表します。Setosa、Versicolor、Virginical を表します。
import numpy as np
data = []
with open(file='iris.txt',mode='r') as f:
f.readline()
while True:
line = f.readline()
if line:
data.append(line.strip().split(','))
else:
break
data = np.array(data,dtype=float)
# 使用切片提取前4列数据作为特征数据
X_data = data[:, :4] # 或者 X_data = data[:, :-1]
# 使用切片提取最后1列数据作为标签数据
y_data = data[:, -1]
data.shape, X_data.shape, y_data.shape
((150, 5), (150, 4), (150,))
3. データの特性を表示する
3.1 データの最初の 5 行を表示する
X_data[0:5], y_data[0:5]
(array([[5.1, 3.5, 1.4, 0.2],
[4.9, 3. , 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2]]),
array([0., 0., 0., 0., 0.]))
3.2 データセットの各特徴の最大値を表示する
# axis = 0指定X轴,取每列的最大值
np.max(X_data, axis=0)
array([7.9, 4.4, 6.9, 2.5])
上記の値は各特徴の最大値で、データセットの萼長の最大値は7.9、萼幅の最大値は4.4、花弁長の最大値は6.9、花弁の幅は 2.5
axis パラメータを削除すると、データセット内のすべてのデータの最大値が取得され、すべての列の最大値が統合されます。
np.max(X_data)
7.9
3.3 各機能の最小値を表示する
np.min(X_data, axis=0)
array([4.3, 2. , 1. , 0.1])
上記の値は各特徴の最小値で、データセットの萼の長さの最小値は 4.3、萼の幅の最小値は 2、花弁の長さの最小値は 1、花弁の長さの最小値は花びらの幅は 0.1
3.4 機能平均の表示
np.mean(X_data, axis=0)
array([5.84333333, 3.05733333, 3.758 , 1.19933333])
3.5 特性パーセンタイルの表示
パーセンタイルは統計で使用される尺度であり、この値より小さい観測のサンプル サイズを持つ母集団のパーセンテージを表します。
# 25%
np.percentile(X_data, 0.25, axis=0)
array([4.33725, 2.0745 , 1.03725, 0.1 ])
# 50%
np.percentile(X_data, 0.50, axis=0)
array([4.3745, 2.149 , 1.0745, 0.1 ])
# 75%
np.percentile(X_data, 0.75, axis=0)
array([4.4 , 2.2 , 1.11175, 0.1 ])
3.6 特性データ分布のゆらぎを見る
np.std(X_data, axis=0)
array([0.82530129, 0.43441097, 1.75940407, 0.75969263])
標準偏差から、特徴的な萼片幅の標準偏差が 0.43441097 でデータ変動が最も小さく、花弁長の標準偏差が 1.75940407 でデータ変動が最も大きいことがわかります。
3.8 特徴サンプルの数を表示する
X_data.shape
(150, 4)
サンプル数は 150 で、各サンプルには 4 つの特徴があることがわかります。
3.9 ラベル データの分布を表示する
一意の ID と対応するサンプル数は np.unique を介して取得され、zip および dict を介してディクショナリに変換されます。
unique, count = np.unique(y_data, return_counts=True)
label_count = dict(zip(unique, count))
label_count
{0.0: 50, 1.0: 50, 2.0: 50}
ラベルはバランスが取れており、各カテゴリのサンプル数は 50 であることがわかります。
4. その他の一般的に使用される科学関数
関数 | 例証する | 例 |
---|---|---|
np.sum | 蓄積を求める | np.sum((y_pred - y_data)**2) |
np.exp | 自然定数 e を底とする指数関数 | np.exp**2 |
np.var | 分散を見つける | np.var(X_data, axis=0) |
np.round | 丸め | np.round(np.var(X_data, axis=0), decimals=2) |
np.square | 四角 | np.square(X_data) |
np.abs | 絶対値を見つける | np.abs([1, -1, -7.9, 6]) |
np.argmax | 最大値の位置インデックスを見つける | np.argmax(X_data, axis=0) |
例: argmin | 最小値の位置インデックスを見つける | np.argmin(X_data, axis=0) |
… |
5. まとめ
上記は numpy の科学関数の簡単な紹介であり、今後の使用でさらに多くの API について説明します。
最後に書く:
- ブログ紹介:AIoT分野にフォーカスし、未来の時代の鼓動を追い、その先の技術成長を記録する!
- コラム紹介: 一般的なデータ サイエンス ライブラリ Numpy、Matploblib、Pandas を 0 から 1 までマスターします。
- 対象者: AI 初等学習者
- コラム企画:次に、人工知能に足を踏み入れるブログ連載を順次公開していきますので、お楽しみに
- Python Zero Basic クイック スタート シリーズ
- Python データ サイエンス シリーズ
- 人工知能開発環境構築シリーズ
- 機械学習シリーズ
- 物体検出クイック スタート シリーズ
- 自動運転物体検知シリーズ
- …