如何更改Django默认主页为自定义主页,更改Djago默认主页为自定义主页,这是开始网页的第一步。......
使用Python3进行机器学习入门项目
在进行一段时间的机器学习理论课后,如何开始机器学习的第一个入门项目呢?本文一步一步教你在Ubunt系统上使用Python3构建机器学习项目实践。
工具/原料
- 电脑安装从 18操作系统并连接互联网
Python3环境准备
Ubuntu 18.04系统默认安装了Python2 和Python3两个环境,这里我们需要将python的命令关联到Python3环境中:
使用如下命令:
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
安装机器学习相关的Python插件
安装numpy扩展包,numpy是一个支持数组和矩阵的科学计算库,包含数学函数、线性代数、傅里叶变化和随机数等功能;
$sudo apt-get install python3-numpy
安装Pandas扩展包,Pandas是数据的分析和操作工具,支持以时间序列的以一维数据、二维表格数据和三维数组,支持从CSV文件、excel文件中加载数据。
$sudo apt-get install python3-pandas
安装scikit-learn (Sklearn)扩展包,是学习机器学习的神器,支持数据的分类算法、回归算法、聚类算法、纬度降低算法、交叉验证等
$sudo apt-get install python3-sklearn
安装Scipy扩展包,Scipy是基于numpy基础上的高级科学计算库,支持向量、数学常量、傅里叶变换、积分、统计函数等功能。
安装Matplotlib扩展库,Matplotlib是一个2D绘图库,通过函数就可以生成绘图、直方图、散点图等,可以直接对机器学习的算法模型进行直观感知。
安装Ubuntu环境的Python图形化开发工具
安装PyCharm工具:在Ubuntu软件搜索栏中输入PyCharm CE,搜索到结果后进行安装
打开PyCharm CE,进行Python环境的配置,这里选择Python3.6
给Python3 Matplotlib增加中文字体支持
检查系统中支持中文的字体
$fc-list :lang=zh
下载微软雅黑字体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
在python代码中设置自定义字体为微软雅黑
#自定义字体,解决中文显示问题plt.rcParams['font.family'] = ['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = False
机器学习库基本使用代码
import pandas
from pandas.plotting import scatter_matrix
import matplotlib.pylab as plt
import matplotlib
import sysfrom 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()以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: python
相关文章
- 详细阅读
-
python中关于单/双引号和转义引号的区别详细阅读
python中关于单/双引号和转义引号的区别,ytho中单/双引号的作用是将引号中间的符号以字符串的形式传递,而在ytho中它们两个的功能是一样的,只不过在遇到转义引号的时候,两者的使用才有所区别,现......
2023-03-16 326 python
- 详细阅读