Python数据科学:Scikit-Learn机器学习

这篇具有很好参考价值的文章主要介绍了Python数据科学:Scikit-Learn机器学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

4.1Scikit-Learn机器学习

Scikit-Learn使用的数据表示:二维网格数据表

实例1:通过Seaborn导入数据

def skLearn():

    '''

    scikit Learn基本介绍

    :return:

    '''

    import seaborn as sns

    #导入Iris数据集

    #注:一般网络访问不了

    iris = sns.load_dataset('iris')

    iris.head()

实例2:通过本地导入数据

def skLearn1():

    '''

    本地导入csv数据

    :return:

    '''

    df_iris = pd.read_csv('./data/Iris.csv')

    print(df_iris.head())

鸢尾花数据集说明:

sepal_length:萼片长度

sepal_width:萼片宽度

petal_length:花瓣长度

petal_width:花瓣宽度

species:鸢尾花类型,Iris-setosa(山鸢尾),Iris-versicolor(变色鸢尾),Iris-virginica(维吉尼亚鸢尾)

df_iris.head()

Python数据科学:Scikit-Learn机器学习,Python,python,开发语言,scikit-learn,手写数字识别,鸢尾花分类

样本:鸢尾花数据集矩阵,矩阵的行n_samples;

特征:某些数据参数的列称为特征,特征列数n_features,鸢尾花数据集需要去掉species列;

特征矩阵:数据集的特征列矩阵,一般用X表示。维度为[n_samples,n_features]。

目标数组:一个标签或目标数组,一般为一维数组,一般用y表示。长度为n_samples。

实例3:构建特征矩阵,目标数组

def skLearn1():

    '''

    本地导入csv数据

    :return:

    '''

    df_iris = pd.read_csv('./data/Iris.csv')

    print(df_iris.head())

    #获取数据集行列

    print(df_iris.shape)



    #构建特征矩阵

    X_iris = df_iris.drop('species',axis=1)

    #构建目标数组

    y_iris = df_iris['species']



    #使用seaborn绘制图片

    sns.set()

    sns.pairplot(df_iris,hue='species',height=1.5)

    plt.show()

通过sns.pairplot绘制不同特征值相关性图。

对角线上是单一特征值之间,不同鸢尾花种类在该特征值上数据的重叠程度。

Scikit-Learn的评估器API:

  1. 通过Scikit-Learn中导入合适的评估器类,选择模型类;
  2. 选择合适数值对模型类实例化;
  3. 整理数据,获取特征矩阵,目标数组;
  4. 调用模型fit()方法,对数据进行拟合
  5. 对新的数据应用模型:有监督学习模型中使用predict()方法,无监督学习使用transform()或predict()方法。

Python数据科学:Scikit-Learn机器学习,Python,python,开发语言,scikit-learn,手写数字识别,鸢尾花分类

实例4:构建机器学习有监督学习模型,对鸢尾花进行识别

def skLearn2():

    '''

    有监督学习,鸢尾花分类

    :return:

    '''

    #读取数据

    df_iris = pd.read_csv('./data/Iris.csv')

    #构建特征矩阵

    X_iris = df_iris.drop('species',axis=1)

    #构建目标数组

    y_iris = df_iris['species']

    #划分训练集,测试集

    from sklearn.model_selection import train_test_split

    Xtrain,Xtest,ytrain,ytest = train_test_split(X_iris,y_iris,random_state=1)



    #选择模型

    #高斯朴素贝叶斯

    from sklearn.naive_bayes import GaussianNB

    model = GaussianNB()

    #训练模型

    model.fit(Xtrain,ytrain)

    #使用模型对数据进行预测

    y_model = model.predict(Xtest)

    #如何验证y_model数据准确性?

    #和实际的数据进行比较,确定模型预测准确率

    from sklearn.metrics import accuracy_score

    #ytest:实际数据

    #y_model:模型预测数据

    print(accuracy_score(ytest,y_model))

实例5:无监督学习,鸢尾花数据降维

鸢尾花数据集有四个特征维度,对数据进行降维,保留数据的本质特征,用低维度矩阵表示高维数据。

def skLearn3():

    '''

    无监督学习,鸢尾花数据降维

    :return:

    '''

    #读取数据

    df_iris = pd.read_csv('./data/Iris.csv')

    #构建特征矩阵

    X_iris = df_iris.drop('species',axis=1)

    #构建目标数组

    y_iris = df_iris['species']

    #选择模型

    #主成分分析PCA,快速线性降维

    from sklearn.decomposition import PCA

    #设置超参数

    model = PCA(n_components=2)

    #拟合数据

    model.fit(X_iris)

    #将数据转换为二维数据

    X_2d = model.transform(X_iris)

    #将数据插入原数据

    df_iris['PCA1'] = X_2d[:,0]

    df_iris['PCA2'] = X_2d[:,1]

    print(df_iris)

    #sns绘制二维数据投影图

    sns.lmplot("PCA1","PCA2",hue='species',data=df_iris,fit_reg=False)

    plt.show()

Python数据科学:Scikit-Learn机器学习,Python,python,开发语言,scikit-learn,手写数字识别,鸢尾花分类

实例6:无监督学习,对鸢尾花数据进行聚类分析

def skLearn4():

    '''

    无监督学习,在降维后数据基础上,聚类分析

    高斯混合模型

    :return:

    '''

    #读取数据

    df_iris = pd.read_csv('./data/Iris.csv')

    #构建特征矩阵

    X_iris = df_iris.drop('species',axis=1)

    #构建目标数组

    y_iris = df_iris['species']



    #选择模型

    #主成分分析PCA,快速线性降维

    from sklearn.decomposition import PCA

    #设置超参数

    model_pca = PCA(n_components=2)

    #拟合数据

    model_pca.fit(X_iris)

    #将数据转换为二维数据

    X_2d = model_pca.transform(X_iris)

    #将数据插入原数据

    df_iris['PCA1'] = X_2d[:,0]

    df_iris['PCA2'] = X_2d[:,1]



    #选择模型

    #高斯混合模型GMM

    from sklearn.mixture import GaussianMixture

    #设置超参数

    model = GaussianMixture(n_components=3,covariance_type='full')

    #拟合数据

    model.fit(X_iris)

    #预测数据

    y_model = model.predict(X_iris)



    #将预测数据放入原数据

    df_iris['y_gmm'] = y_model

    #绘制图片

    sns.lmplot("PCA1","PCA2",data=df_iris,hue='species',col='y_gmm',fit_reg=False)

    plt.show()

Python数据科学:Scikit-Learn机器学习,Python,python,开发语言,scikit-learn,手写数字识别,鸢尾花分类

实例7:手写数字识别

步骤1:获取手写数字集,查看数据

def skLearn5():

    '''

    手写数字探索

    :return:

    '''

    #加载手写数字集

    from sklearn.datasets import load_digits

    digits = load_digits()

    #(1798,8,8)

    #一共1798个样本,8x8的像素

    print(digits.images.shape)



    #绘制手写数据图

    fig,axes = plt.subplots(10,10,figsize=(8,8))

    for i,ax in enumerate(axes.flat):

        #显示图片手写数字

        ax.imshow(digits.images[i],cmap='binary',interpolation='nearest')

        #显示目标数字

        ax.text(0.05,0.05,str(digits.target[i]),transform=ax.transAxes,color='blue')

Python数据科学:Scikit-Learn机器学习,Python,python,开发语言,scikit-learn,手写数字识别,鸢尾花分类

步骤2:将数据进行降维处理,查看降维后数据。可以发现还是有许多数字之间是重叠的。

#8x8矩阵相当于64个特征值

#获取特征矩阵

X_digits = digits.data

#获取目标列

y_digits = digits.target



#64维的特征值进行降维处理,流形学习算法

from sklearn.manifold import Isomap

#降到二维

iso = Isomap(n_components=2)

#拟合数据

iso.fit(X_digits)

#获取转换后的数据

X_trans = iso.transform(X_digits)

#显示二维数据

plt.scatter(X_trans[:,0],X_trans[:,1],c=y_digits,edgecolor='none',alpha=0.6,cmap=plt.cm.get_cmap('rainbow',10))

plt.colorbar(label='digit label',ticks=range(10))

Python数据科学:Scikit-Learn机器学习,Python,python,开发语言,scikit-learn,手写数字识别,鸢尾花分类

步骤3:使用高斯朴素贝叶斯模型训练识别模型。使用混淆矩阵判断模型识别效果

#训练模型,数字识别

#划分训练集,测试集

from sklearn.model_selection import train_test_split

Xtrain,Xtest,ytrain,ytest = train_test_split(X_trans,y_digits,random_state=0)

#使用模型

from sklearn.naive_bayes import GaussianNB

model = GaussianNB()

#训练数据

model.fit(Xtrain,ytrain)

#预测测试数据

y_model = model.predict(Xtest)

#获取识别准确率

from sklearn.metrics import accuracy_score

#识别率有70*

print(accuracy_score(ytest,y_model))



#如何知道模型识别的不足?

#使用混淆矩阵

from sklearn.metrics import confusion_matrix

mat = confusion_matrix(ytest,y_model)

print(mat)

#绘制热力图

sns.heatmap(mat,square=True,annot=True,cbar=False)

plt.xlabel('predict value')

plt.ylabel('true value')

从图像可以看出,识别数字2时,许多识别成了7或者1;识别5时,也识别错误成其他数字

Python数据科学:Scikit-Learn机器学习,Python,python,开发语言,scikit-learn,手写数字识别,鸢尾花分类文章来源地址https://www.toymoban.com/news/detail-832553.html

到了这里,关于Python数据科学:Scikit-Learn机器学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【python】scikit-learn包:机器学习

    只支持python语言 Win+R ,输入指令: pip install -U scikit-learn 借助pandas和numpy 进行数据导入与处理 机器学习的函数大部分只能对数字信息进行处理,无法对string类数据进行分析,因此需要将string类信息进行编码数字化 参考blog链接,可进行补码 给定数据集 [x1,x2,x3,…,y],拟合y与各

    2024年02月01日
    浏览(41)
  • 探索 Scikit-learn:Python 机器学习初级篇

    Scikit-learn 是 Python 中最著名的机器学习库之一,它提供了大量实用的机器学习算法以及相关的工具,可以方便我们进行数据挖掘和数据分析。在这篇文章中,我们将介绍 Scikit-learn 的基本使用,包括如何导入数据、预处理数据、选择和训练模型,以及评估模型的性能。 在使用

    2024年02月17日
    浏览(43)
  • Python机器学习:Scikit-learn库与应用

    当涉及到Python机器学习时,Scikit-learn是一个非常流行且功能强大的库。它提供了广泛的算法和工具,使得机器学习变得简单而高效。下面是一个简单的Scikit-learn库与应用示例,其中包括代码。 首先,确保你已经安装了Scikit-learn库。你可以使用pip命令来安装它: bash复制代码

    2024年02月19日
    浏览(50)
  • 掌握 Scikit-Learn: Python 中的机器学习库入门

    机器学习 (Machine Learning) 是一个近年来频繁出现在科技新闻, 研究报告, 行业分析和实际应用中的热门领域. 机器学习 (Machine Learning) 正以前所未有的速度影响着我们的生活. 从智能音响的语音识别, 手机摄像头的人脸解锁, 到金融领域的评估, 医疗健康的预测分析. 机器学习的应

    2024年02月07日
    浏览(54)
  • 机器学习实战----使用Python和Scikit-Learn构建简单分类器

    前言: Hello大家好,我是Dream。 今天来学习一下如何使用Python和Scikit-Learn构建一个简单的分类器 今天我们将学习 使用Python和Scikit-Learn创建一个简单的文本分类器来识别垃圾邮件 。我们将先介绍数据集,并通过可视化和数据预处理方式更好地理解数据集。接着,我们将选择一

    2023年04月09日
    浏览(46)
  • 深入Scikit-learn:掌握Python最强大的机器学习库

    本篇博客详细介绍了Python机器学习库Scikit-learn的使用方法和主要特性。内容涵盖了如何安装和配置Scikit-learn,Scikit-learn的主要特性,如何进行数据预处理,如何使用监督学习和无监督学习算法,以及如何评估模型和进行参数调优。本文旨在帮助读者深入理解Scikit-learn,并有效

    2024年02月15日
    浏览(45)
  • 大数据机器学习深入Scikit-learn:掌握Python最强大的机器学习库

    本篇博客详细介绍了Python机器学习库Scikit-learn的使用方法和主要特性。内容涵盖了如何安装和配置Scikit-learn,Scikit-learn的主要特性,如何进行数据预处理,如何使用监督学习和无监督学习算法,以及如何评估模型和进行参数调优。本文旨在帮助读者深入理解Scikit-learn,并有效

    2024年02月03日
    浏览(38)
  • Python机器学习:Scikit-learn和TensorFlow的应用和模型设计

    Python在机器学习领域中已经成为非常受欢迎的编程语言。Scikit-learn和TensorFlow是Python中应用最广泛的两个机器学习库,它们提供了丰富的机器学习算法和工具,帮助开发人员轻松地构建和训练机器学习模型。本文将详细介绍Scikit-learn和TensorFlow的应用和模型设计。   Scikit-learn是

    2024年02月04日
    浏览(38)
  • AI机器学习实战 | 使用 Python 和 scikit-learn 库进行情感分析

    专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow专栏:https://blog.csdn.net/superdangbo/category_869

    2024年02月05日
    浏览(40)
  • 【小尘送书-第三期】Python机器学习:基于PyTorch和Scikit-Learn 》

    大家好,我是小尘,欢迎关注,一起交流学习!欢迎大家在CSDN后台私信我!一起讨论学习,讨论如何找到满意的实习! 近年来,机器学习方法凭借其理解海量数据和自主决策的能力,已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包