首页 > 软件开发 > PYTHON >

使用Python3进行机器学习入门项目

来源:互联网 2023-03-16 19:10:42 226

在进行一段时间的机器学习理论课后,如何开始机器学习的第一个入门项目呢?本文一步一步教你在Ubunt系统上使用Python3构建机器学习项目实践。yeS办公区 - 实用经验教程分享!

工具/原料

  • 电脑安装从 18操作系统并连接互联网

Python3环境准备

  • 1

    Ubuntu 18.04系统默认安装了Python2 和Python3两个环境,这里我们需要将python的命令关联到Python3环境中:yeS办公区 - 实用经验教程分享!

    使用如下命令:yeS办公区 - 实用经验教程分享!

    $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 1相关内容未经授权抓取自百度经验
  • 安装机器学习相关的Python插件

  • 1

    安装numpy扩展包,numpy是一个支持数组和矩阵的科学计算库,包含数学函数、线性代数、傅里叶变化和随机数等功能;yeS办公区 - 实用经验教程分享!

    $sudo apt-get install python3-numpyyeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 2

    安装Pandas扩展包,Pandas是数据的分析和操作工具,支持以时间序列的以一维数据、二维表格数据和三维数组,支持从CSV文件、excel文件中加载数据。yeS办公区 - 实用经验教程分享!

    $sudo apt-get install python3-pandasyeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 3

    安装scikit-learn (Sklearn)扩展包,是学习机器学习的神器,支持数据的分类算法、回归算法、聚类算法、纬度降低算法、交叉验证等yeS办公区 - 实用经验教程分享!

    $sudo apt-get install python3-sklearnyeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 4

    安装Scipy扩展包,Scipy是基于numpy基础上的高级科学计算库,支持向量、数学常量、傅里叶变换、积分、统计函数等功能。yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 5

    安装Matplotlib扩展库,Matplotlib是一个2D绘图库,通过函数就可以生成绘图、直方图、散点图等,可以直接对机器学习的算法模型进行直观感知。yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 安装Ubuntu环境的Python图形化开发工具

  • 1

    安装PyCharm工具:在Ubuntu软件搜索栏中输入PyCharm CE,搜索到结果后进行安装yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 2

    打开PyCharm CE,进行Python环境的配置,这里选择Python3.6yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 给Python3 Matplotlib增加中文字体支持

  • 1

    检查系统中支持中文的字体yeS办公区 - 实用经验教程分享!

    $fc-list :lang=zhyeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 2

    下载微软雅黑字体msyh.ttf文件,可以从windows系统中直接复制到Matplotlib的字体目录fonts,如果不存在该目录则需要创建该目录后:yeS办公区 - 实用经验教程分享!

    matplotlib自定义字体存放目录:/usr/lib/python3/dist-packages/matplotlib/mpl-data/fonts/ttfyeS办公区 - 实用经验教程分享!

    如下示例:yeS办公区 - 实用经验教程分享!

    hxb@omg:/usr/lib/python3/dist-packages/matplotlib/mpl-data/fonts/ttf$ ll msyh.ttf -rwxr-xr-x 1 root root 21767952 10月 24 17:39 msyh.ttf*hxb@omg:/usr/lib/python3/dist-packages/matplotlib/mpl-data/fonts/ttfyeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 3

    在python代码中设置自定义字体为微软雅黑yeS办公区 - 实用经验教程分享!

    #自定义字体,解决中文显示问题plt.rcParams['font.family'] = ['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = FalseyeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 机器学习库基本使用代码

  • 1

    import pandasyeS办公区 - 实用经验教程分享!

    from pandas.plotting import scatter_matrixyeS办公区 - 实用经验教程分享!

    import matplotlib.pylab as pltyeS办公区 - 实用经验教程分享!

    import matplotlibyeS办公区 - 实用经验教程分享!

    import sys

    from sklearn import model_selectionyeS办公区 - 实用经验教程分享!

    from sklearn.metrics import classificationyeS办公区 - 实用经验教程分享!

    from sklearn.metrics import classification_reportyeS办公区 - 实用经验教程分享!

    from sklearn.metrics import confusion_matrixyeS办公区 - 实用经验教程分享!

    from sklearn.metrics import accuracy_scoreyeS办公区 - 实用经验教程分享!

    from sklearn.linear_model import LogisticRegressionyeS办公区 - 实用经验教程分享!

    from sklearn.tree import DecisionTreeClassifieryeS办公区 - 实用经验教程分享!

    from sklearn.neighbors import KNeighborsClassifieryeS办公区 - 实用经验教程分享!

    from sklearn.discriminant_analysis import LinearDiscriminantAnalysisyeS办公区 - 实用经验教程分享!

    from sklearn.naive_bayes import GaussianNByeS办公区 - 实用经验教程分享!

    from sklearn.svm import SVCyeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    print(matplotlib.__file__)yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    print(matplotlib.get_cachedir())yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #加载鸢尾花的数据集合yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_attrs=['花萼长度','花萼宽度','花瓣长度','花瓣宽度','种类']yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #注意:这里的参数names需要进行指定,否则或出现数据类型不匹配yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_dataset=pandas.read_csv(iris_url,names=iris_attrs)yeS办公区 - 实用经验教程分享!

    print(iris_dataset.head(10))yeS办公区 - 实用经验教程分享!

    #自定义字体,解决中文显示问题yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    plt.rcParams['font.family'] = ['Microsoft YaHei']yeS办公区 - 实用经验教程分享!

    plt.rcParams['axes.unicode_minus'] = FalseyeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #单变量绘图yeS办公区 - 实用经验教程分享!

    #iris_dataset.plot(kind='box', subplots=True,layout=(2,2),sharex=False,sharey=False);yeS办公区 - 实用经验教程分享!

    #柱状图显示yeS办公区 - 实用经验教程分享!

    #iris_dataset.hist()yeS办公区 - 实用经验教程分享!

    #属性两两对比散点图yeS办公区 - 实用经验教程分享!

    #scatter_matrix(iris_dataset)yeS办公区 - 实用经验教程分享!

    #数据集分割: 80%作为训练集 20%作为验证集yeS办公区 - 实用经验教程分享!

    dataset_array = iris_dataset.valuesyeS办公区 - 实用经验教程分享!

    X = dataset_array[:,0:4]yeS办公区 - 实用经验教程分享!

    Y = dataset_array[:,4]yeS办公区 - 实用经验教程分享!

    validation_ration = 0.2yeS办公区 - 实用经验教程分享!

    rand_seed = 7yeS办公区 - 实用经验教程分享!

    #X_train Y_train 训练集 X_validataion Y_validataion 验证集,yeS办公区 - 实用经验教程分享!

    X_train,X_validation,Y_train,Y_validation = model_selection.train_test_split(X,Y,test_size=validation_ration,random_state=rand_seed)yeS办公区 - 实用经验教程分享!

    #测试工具集,使用十折交叉验证来估计算法准确率yeS办公区 - 实用经验教程分享!

    scoring = 'accuracy'yeS办公区 - 实用经验教程分享!

    #建立模型:通过评估不同的算法,建立模型yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_models = []yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #逻辑回归算法yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_models.append(('LR',LogisticRegression()))yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #线性判别分析法yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_models.append(('LDA',LinearDiscriminantAnalysis()))yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #K近邻法yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_models.append(('KNN',KNeighborsClassifier()))yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #分类回归数/决策树yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_models.append(('CART',DecisionTreeClassifier()))yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #高斯朴素贝叶斯分类器yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_models.append(('NB',GaussianNB()))yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #支持向量机yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    iris_models.append(('SVM',SVC()))yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #验证每一个模型yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    results=[]yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    names = []yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    for name,model in iris_models:yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    kfold = model_selection.KFold(n_splits=10,random_state=rand_seed)yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    cv_results = model_selection.cross_val_score(model,X_train,Y_train,cv=kfold,scoring=scoring)yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    results.append(cv_results)yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    names.append(name)yeS办公区 - 实用经验教程分享!

    result_msg = "模型%s: 均值%f (均方差%f)" % (name,cv_results.mean(),cv_results.std())yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    print(result_msg)yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    #绘制模型评估结果yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    figure = plt.figure()yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    figure.suptitle("算法验证比对")yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    ax = figure.add_subplot(111)yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    plt.boxplot(results)yeS办公区 - 实用经验教程分享!

    yeS办公区 - 实用经验教程分享!

    ax.set_xticklabels(names)yeS办公区 - 实用经验教程分享!

    plt.show()

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

    使用Python3进行机器学习入门项目yeS办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!yeS办公区 - 实用经验教程分享!


    标签: python

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码