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

2025-11-09 01:01:19

1、Ubuntu 18.04系统默认安装了Python2 和Python3两个环境,这里我们需要将python的命令关联到Python3环境中:

使用如下命令:

$ sudo update-alternatives --install /usr/bin/python python  /usr/bin/python3 150

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

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进行机器学习入门项目

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

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

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

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

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 pandas

from pandas.plotting import scatter_matrix

import matplotlib.pylab as plt

import matplotlib

import sys

from sklearn import model_selection

from sklearn.metrics import  classification

from sklearn.metrics import classification_report

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.linear_model import LogisticRegression

from sklearn.tree import DecisionTreeClassifier

from sklearn.neighbors import KNeighborsClassifier

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

from sklearn.naive_bayes import GaussianNB

from sklearn.svm import SVC

print(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.values

X = dataset_array[:,0:4]

Y = dataset_array[:,4]

validation_ration = 0.2

rand_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。
猜你喜欢