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

2025-05-18 05:02:49

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

工具/原料

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

Python3环境准备

1、Ubuntu 18.04系统默认安装了Python2 和Python3两个环娓搠础拔境,这里我们需要将pytho荏鱿胫协n的命令关联到Python3环境中:使用如下命令:$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

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

安装机器学习相关的Python插件

1、安装numpy扩展包,numpy是一个支持数组和矩阵的科学计算库,包含数学函数、线性代数、傅里叶变化和随机数等功能;$sudo apt-get install python3-numpy

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

2、安装Pandas扩展包,Pandas是数据的分析和操作工具,支持以时间序列的以一维数据、二维表格数据和三维数组,支持从CSV文件、excel文件中加载数据。$sudo apt-get install python3-pandas

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

3、安装scikit-learn (Sklearn)扩展包,是学习机器学习的神器,支持数据的分类算法、回归算法、聚类算法、纬度降低算法、交叉验证等$sudo apt-get install python3-sklearn

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

4、安装Scipy扩展包,Scipy是基于numpy基础上的高级科学计算库,支持向量、数学常量、傅里叶变换、积分、统计函数等功能。

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

5、安装Matplotlib扩展库,Matplotlib是一个2D绘图库,通过函数就可以生成绘图、直方图、散点图等,可以直接对机器学习的算法模型进行直观感知。

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

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

1、安装PyCharm工具:在Ubuntu软件搜索栏中输入PyCharm CE,搜索到结果后进行安装

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

2、打开PyCharm CE,进行Python环境的配置,这里选择Python3.6

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

给Python3 Matplotlib增加中文字体支持

1、检查系统中支持中文的字体$fc-list :lang=zh

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

2、下载微软雅黑字体msyh.ttf文件,可以从windows系统中直接复制到Matplotlib的字体目录fonts,如果不存在该目录则需要创建该目录后:matplotlib自定义字体存放目录:/usr/lib/python3/dist-packages/matplotlib/mpl-data/fonts/ttf如下示例: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/ttf

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

3、在python代码中设置自定义字体为微软雅黑#自定义字体,解决中文显示问题plt.rcParams['font.family'] = ['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = False

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

机器学习库基本使用代码

1、import pan蟠校盯昂dasfrom pandas.plotting import scatter_matr足毂忍珩iximport matplotlib.pylab as pltimport matplotlibimport sysfrom sklearn import model_selectionfrom sklearn.metrics import classificationfrom sklearn.metrics import classification_reportfrom sklearn.metrics import confusion_matrixfrom sklearn.metrics import accuracy_scorefrom sklearn.linear_model import LogisticRegressionfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysisfrom sklearn.naive_bayes import GaussianNBfrom sklearn.svm import SVCprint(matplotlib.__file__)print(matplotlib.get_cachedir())#加载鸢尾花的数据集合iris_url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"iris_attrs=['花萼长度','花萼宽度','花瓣长度','花瓣宽度','种类']#注意:这里的参数names需要进行指定,否则或出现数据类型不匹配iris_dataset=pandas.read_csv(iris_url,names=iris_attrs)print(iris_dataset.head(10))#自定义字体,解决中文显示问题plt.rcParams['font.family'] = ['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = False#单变量绘图#iris_dataset.plot(kind='box', subplots=True,layout=(2,2),sharex=False,sharey=False);#柱状图显示#iris_dataset.hist()#属性两两对比散点图#scatter_matrix(iris_dataset)#数据集分割: 80%作为训练集 20%作为验证集dataset_array = iris_dataset.valuesX = dataset_array[:,0:4]Y = dataset_array[:,4]validation_ration = 0.2rand_seed = 7#X_train Y_train 训练集 X_validataion Y_validataion 验证集,X_train,X_validation,Y_train,Y_validation = model_selection.train_test_split(X,Y,test_size=validation_ration,random_state=rand_seed)#测试工具集,使用十折交叉验证来估计算法准确率scoring = 'accuracy'#建立模型:通过评估不同的算法,建立模型iris_models = []#逻辑回归算法iris_models.append(('LR',LogisticRegression()))#线性判别分析法iris_models.append(('LDA',LinearDiscriminantAnalysis()))#K近邻法iris_models.append(('KNN',KNeighborsClassifier()))#分类回归数/决策树iris_models.append(('CART',DecisionTreeClassifier()))#高斯朴素贝叶斯分类器iris_models.append(('NB',GaussianNB()))#支持向量机iris_models.append(('SVM',SVC()))#验证每一个模型results=[]names = []for name,model in iris_models: kfold = model_selection.KFold(n_splits=10,random_state=rand_seed) cv_results = model_selection.cross_val_score(model,X_train,Y_train,cv=kfold,scoring=scoring) results.append(cv_results) names.append(name) result_msg = "模型%s: 均值%f (均方差%f)" % (name,cv_results.mean(),cv_results.std()) print(result_msg)#绘制模型评估结果figure = plt.figure()figure.suptitle("算法验证比对")ax = figure.add_subplot(111)plt.boxplot(results)ax.set_xticklabels(names)plt.show()

使用Python3进行机器学习入门项目
使用Python3进行机器学习入门项目
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢