机器学习sklearn无监督学习降维算法nmfnon-negativematrixfactorization(代码片段)

404detective 404detective     2022-12-24     461

关键词:






import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.datasets import make_blobs

from sklearn.decomposition import NMF
from sklearn.datasets import load_iris

iris = load_iris()
iris_X = iris.data   #x有4个属性,共有150个样本点
iris_y = iris.target #y的取值有3个,分别是0,1,2

NMF = NMF(n_components=2)
NMF.fit(iris_X)

X_new = NMF.transform(iris_X)

# plt.scatter(X_new[:], X_new[:], marker='o',c=iris_y)

plt.scatter(X_new[:, 0], X_new[:, 1], marker='o',c=iris_y)

# fig = plt.figure()
# ax = Axes3D(fig, rect=[0, 0, 1, 1], elev=30, azim=20)
# plt.scatter(X_new[:, 0], X_new[:, 1], X_new[:, 2], marker='o',c=iris_y)

plt.show()

降为一维

降为二维


(不指定维度)

降为三维

应用






import sklearn.decomposition as dp
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_olivetti_faces
from numpy.random import RandomState #创建随机种子
n_row,n_col=2,3
n_components=n_row*n_col
image_shape=(64,64)
datasets=fetch_olivetti_faces(shuffle=True,random_state=RandomState(0))
#dataset=fetch_olivetti_faces(data_home=None,shuffle=False,random_state=0,download_if_missing=True)
faces=datasets.data #加载工打开数据

def plot_gallery(title,images,n_col=n_col,n_row=n_row):
    plt.figure(figsize=(2.*n_col,2.26*n_row)) #创建图片,并指定图片大小
    plt.suptitle(title,size=18) #设置标题及字号大小
    
    for i,comp in enumerate(images):
        plt.subplot(n_row,n_col,i+1) #选择绘制的子图
        vmax=max(comp.max(),-comp.min())
        
        plt.imshow(comp.reshape(image_shape),cmap=plt.cm.gray,
                   interpolation='nearest',vmin=-vmax,vmax=vmax) #对数值归一化,并以灰度图形式显示
        plt.xticks(())
        plt.yticks(()) #去除子图的坐标轴标签
    plt.subplots_adjust(0.01,0.05,0.99,0.94,0.04,0.) #对子图位置及间隔调整

plot_gallery('First centered Olivetti faces',faces[:n_components])
estimators=[
        ('Eigenfaces-PCA using randomized SVD',
         dp.PCA(n_components=6,whiten=True)),
         ('Non-negative components - NMF',
          dp.NMF(n_components=6,init='nndsvda',
                            tol=5e-3))] #NMF和PCA实例化

for name,estimator in estimators: #分别调用PCA和NMF
    estimator.fit(faces) #调用PCA或NMF提取特征
    components_=estimator.components_ #获取提取的特征
    plot_gallery(name,components_[:n_components]) #按照固定格式进行排列
plt.show()

效果展示

机器学习sklearn无监督学习降维算法nmfnon-negativematrixfactorization(代码片段)

importmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3Dfromsklearn.datasetsimportmake_blobsfromsklearn.decompositionimportNMFfromsklearn.datasetsimportload_irisiris=load_iris()iris_X= 查看详情

机器学习sklearn无监督学习降维算法nmfnon-negativematrixfactorization(代码片段)

importmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3Dfromsklearn.datasetsimportmake_blobsfromsklearn.decompositionimportNMFfromsklearn.datasetsimportload_irisiris=load_iris()iris_X= 查看详情

机器学习sklearn无监督学习聚类算法dbscan(代码片段)

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportDBSCANfromsklearn.clusterimportKMeansfromsklearnimportdatasets#生成数据x1,y1=datasets.make_circles(n_samples=2000,factor=0.5 查看详情

机器学习sklearn无监督学习聚类算法dbscan(代码片段)

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportDBSCANfromsklearn.clusterimportKMeansfromsklearnimportdatasets#生成数据x1,y1=datasets.make_circles(n_samples=2000,factor=0.5 查看详情

1.2:无监督学习导学

...学习。无监督学习最常应用的场景是聚类和降维。聚类(sklearn.cluster模块)定义聚类(clustering),就是根据数据的“相似性”将数据分为多类的过程。评估两个不同样本之间的“相似性”,通常使用的方法就是计算两... 查看详情

有监督学习和无监督学习算法怎么理解?

...什么是学习(learning)?一个成语就可概括:举一反三。机器学习的思路有点类似高考一套套做模拟试题,从而熟悉各种题型,能够面对陌生的问题时算出答案。简而言之,机器学习就是看能不能利用一些训练数据(已经做过的... 查看详情

机器学习sklearn无监督学习聚类算法k-means(代码片段)

importmatplotlib.pyplotaspltfromsklearn.datasets.samples_generatorimportmake_blobsfromsklearn.clusterimportKMeans#生成测试数据#X为样本特征,Y为样本簇类别,共1000个样本,每个样本2个特征,对应x和y轴,共4个簇 查看详情

python与机器学习

...学习的目标机器学习分类pythonscikit-learnscikit-learn常用函数sklearn库的简介无监督学习聚类clustering欧式距离曼哈顿距离马氏距离夹角余弦降维k-means聚类算法DBSCAN密度聚类PCA方法及其应用非负矩阵分解(NMF)基于聚类的“图... 查看详情

machinelearning:机器学习算法

...https://riboseyim.github.io/2018/02/10/Machine-Learning-Algorithms/摘要机器学习算法分类:监督学习、半监督学习、无监督学习、强化学习基本的机器学习算法:线性回归、支持向量机(SVM)、最近邻居(KNN)、逻辑回归、决策树、k平均、随机森林... 查看详情

无监督学习——降维

...什么要降维?维数少可以使算法有更快的计算速度,减少机器内存占用等多个特征携带的“信息”有相同或类似的情况(冗余)用于数据可视化如何降维?简单的例子,对于二位数据可以找到一条线将所有的数据映射到这条线上... 查看详情

python机器学习入门之导学+无监督学习

...效的工具集*依赖Python的NumPy,SciPy和matplotlib库*开源可复用sklearn库的安装DOS窗口中输入pipinstall**NumPy(开源科学计算库),SciPy(集成多种数学算法和函数模块)和matplotlib(提供大量绘图工具)库基础上开发的,因此需要先装这些依赖库安装... 查看详情

机器学习sklearn监督学习回归算法岭回归ridgeregression(代码片段)

fromsklearn.linear_modelimportRidge,LinearRegressionfromsklearn.model_selectionimporttrain_test_splitimportmatplotlib.pyplotaspltimportnumpyasnp#导入数据data_x=[]data_y=[]f=open('E:\\Deskt 查看详情

机器学习sklearn监督学习回归算法岭回归ridgeregression(代码片段)

fromsklearn.linear_modelimportRidge,LinearRegressionfromsklearn.model_selectionimporttrain_test_splitimportmatplotlib.pyplotaspltimportnumpyasnp#导入数据data_x=[]data_y=[]f=open('E:\\Deskt 查看详情

机器学习sklearn监督学习回归算法线性回归linearregression(代码片段)

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_model#设置中文字体plt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=False#设置自变量和因变 查看详情

机器学习sklearn监督学习回归算法多项式回归polynomialregression(代码片段)

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_modelfromsklearn.preprocessingimportPolynomialFeaturesplt.rcParams['font.sans-serif']='SimHei'plt.rcParams['a 查看详情

机器学习sklearn监督学习回归算法多项式回归polynomialregression(代码片段)

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_modelfromsklearn.preprocessingimportPolynomialFeaturesplt.rcParams['font.sans-serif']='SimHei'plt.rcParams['a 查看详情

机器学习图解

机器学习图解机器学习(MachineLearning)是计算机科学的一个方向。利用统计学的技巧,机器学习算法(MachineLearningAlgorithms)能够自动学习并识别数据内的规律。凭着这些规律,算法便能作出高度准确的预测。每当提到机器学习,大家... 查看详情

机器学习基本概念

...kevdp.github.io/PythonDataScienceHandbook/00.00-preface.html1、什么是机器学习  机器学习是用数据科学的计算能力和算法能力去弥补统计方法的不足,其最终结果是为那些目前既没有高效的理论支持、又没有高效的计算方法的统计推理与... 查看详情