06データの次元削減
- 次元削減:機能の数を減らします
- 機能の選択
- 主成分分析
特徴選択:
特徴選択の理由
- 冗長性:高い相関の特徴を、消費しやすいコンピューティングのパフォーマンス
- ノイズ:構造に影響を与える部分特徴を計算します
特徴選択は何ですか?
特徴選択は、選択よりも間違いなく良い選択した後、抽出された特徴から、すべての機能が選択前と後の選択に値を変更することができ、あなたが値を変更することはできませんし、トレーニングなどの特性のいくつかを選択するだけではなく、機能の次元の前に:定義小さな。我々はそれらの機能の一部だけを選択しているため。
- 主な方法:
- フィルタ(フィルタリング):分散閾値(濾過分散)
- 組み込み(組み込み):正則、決定木
- Warpper(ラップアラウンド)
VarianceThresholdモジュール
from sklearn.feature_selection import VarianceThreshold
def var():
"""
特征选择-删除低方差的特征
:return: None
"""
var = VarianceThreshold(threshold=0.0) #取值根据实际情况
data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
print(data)
return None
if __name__ == '__main__':
var()
主成分分析(PCA主成分分析)
PCAは何ですか
- エッセンス:アン分析、技術的な簡略化されたデータセット
- 目的:寸法データ圧縮、可能な限りの情報の小さな損失を元のデータ(複雑さ)の寸法を小さくします
- 数量(機能の数百人の数)は、回帰分析やクラスター分析機能を減らす可能性がありますの役割を
問題が発生しやすい高次元データ
- 機能がしばしば関連している間
PCA文法
- 分解
- PCA(n_components =なし)
- n_components - 進:保持機能の寸法比90%〜95%
- n_components - 整数:保持は、次元数が特徴
from sklearn.decomposition import PCA
def pca():
"""
主成分分析进行特征降维
:return: None
"""
pca = PCA(n_components=0.9)
data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])
print(data)
return None
if __name__ == '__main__':
pca()
次元削減ケース
カテゴリへのユーザーinstacart
- お問い合わせ:商品カテゴリのユーザー設定は、次元縮小を細分化
- products.csvの製品情報
- order_products_prior.csv注文および製品情報
- orders.csv顧客の注文情報
- 商品のカテゴリに属する特定の項目aisles.csv
テーブルに情報を統合
- 主成分分析
データベースのWebリンクinstacart Kaggle
import pandas as pd
from sklearn.decomposition import PCA
# 读取4张表的数据
prior = pd.read_csv('./order_products__prior.csv')
products = pd.read_csv('./products.csv')
orders = pd.read_csv('./orders.csv')
aisles = pd.read_csv('./aisles.csv')
# 合并4张表到一张表(用户-物品)
_mg = pd.merge(prior,products, on=['product_id','product_id'])
_mg = pd.merge(_mg, orders, on=['order_id','order_id'])
mt = pd.merge(_mg, aisles, on=['aisle_id','aisle_id'])
# 交叉表(特殊的分组工具)
cross = pd.crosstab(mt['user_id'],mt['aisle'])
# 进行主成分分析
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)