zoukankan      html  css  js  c++  java
  • 机器学习的非监督学习总结

    #分解:可以学习Sklearn的用户指南中独立成分分析、因子分析、稀疏编码等   https://scikit-learn.org/stable/modules/decomposition.html#decompositions

    import numpy as np
    from sklearn.datasets import load_breast_cancer
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import MinMaxScaler
    from sklearn.svm import SVC
    from sklearn.preprocessing import StandardScaler
    from sklearn.decomposition import PCA
    from sklearn.decomposition import NMF
    from sklearn.manifold import TSNE
    from sklearn.cluster import KMeans

    #加载数据
    cancer=load_breast_cancer()
    X_train,X_test,y_train,y_test=train_test_split(cancer.data,cancer.target,random_state=0)

    # 数据预处理与缩放
    #StandardScaler 确保每个特征平均值为零、方差为1
    '''scaler=StandardScaler()
    scaler.fit(X_train)'''
    #RobustScaler 确保特征属性在同一范围,使用的是中位数与四分位数,忽略异常值
    #MinMaxScaler 特征刚好位于0-1之间
    '''scaler=MinMaxScaler()
    scaler.fit(X_train)'''
    #Normalizer对每个特征向量进行缩放,使其欧式距离等于1

    '''X_train_scalered=scaler.transform(X_train)
    X_test_scarlered=scaler.transform(X_test)
    svc=SVC()
    svc.fit(X_train_scalered,y_train)
    print(svc.score(X_test_scarlered,y_test))'''


    #降维、特征提取、流型学习
    #主成分分析;首先找到方差最大的方向向量,然后找到与第一个方向正交的且包含信心量多的正交向量
    scaler=StandardScaler()
    scaler.fit(cancer.data)
    X_scalered=scaler.transform(cancer.data)
    '''pca=PCA(n_components=3)#n_components提取三个主成分,从569个属性中组合出来3各主要方向属性,若特征为正数,那么这个主成分与特征相关,一般主成分数与特征数相同
    pca.fit(X_scalered)
    X_pca=pca.transform(X_scalered)
    print(X_scalered[0])
    #print(cancer.data[0])
    print(pca.components_)'''
    #非负矩阵(NMF):将每个数据点写成一些分量的加权求和,分量和系数大于0,且只能应用非负数据。(有用的特征提取)
    '''nmf=NMF(n_components=15)#提取15个分量
    X_nmf=nmf.fit(X_scalered)'''
    #t-SNE流形学习:找到数据的二维表示,允许更复杂的映射,主要用来做可视化。
    '''tsne=TSNE(random_state=4)
    X_tsne=tsne.fit_transform(cancer.data)#tnse没有transform方法
    print(X_tsne[0])'''
    #聚类
    #k均值聚类:将每个数据点分配分配给最近的簇中心,然后将每个簇中心设置成簇内所有数据点的平均值,直到簇不在变化。
    kmeans=KMeans(n_clusters=5)
    kmeans.fit(cancer.data)
    print(kmeans.labels_)
    #凝聚聚类:首先默认每个点是自己的簇,然后合并最相似的两个簇,直到满足某种停止规则。

    #DBSCAN:首先任意选取一个点,然后找到到这个点的距离小于等于eps的所有点,若这些数据点数小于min_samples,那么这个点被标记为噪声,若大于min_samples,则这个点为核心样本。

    #调整rand指数和归一化信息
  • 相关阅读:
    3月18
    线段树求后继+环——cf1237D
    排序+stl——cf1237C
    思维+双指针+环——cf1244F
    模拟+双指针——cf1244E
    树的性质——cf1244D
    数学思维——cf1244C
    树的直径变形——cf1238F
    ac自动机暴力跳fail匹配——hdu5880
    状态压缩dp增量统计贡献——cf1238E(好题)
  • 原文地址:https://www.cnblogs.com/gao109214/p/13444248.html
Copyright © 2011-2022 走看看