python基于sklern的机器学习——一文零基础入门机器学习
Posted gaofeimax
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基于sklern的机器学习——一文零基础入门机器学习相关的知识,希望对你有一定的参考价值。
机器学习有无监督学习和监督学习两个类型,这两者有何区别呢?
1.监督学习(supervised learning)
简单来说监督学习就是既有条件值又有结果值,比如说判断一张图片是猫还是狗,你首先需要给机器模型一大批的数据,并在数据后面告诉计算机这是猫或者这是狗,然后计算机就根据这一大批数据进行经验的总结,在后来使用的过程中你给计算机一张图片信息他可以返回给你一个值告诉你这是什么动物,像这样的就是一个很典型的监督学习的例子。
2.无监督学习(unsupervised learning)
输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。通俗点讲就是没有结果值需要计算机根据样板数据自行分类。例如给计算机一堆人的照片,计算机按照年龄大小对人们进行自动的分类就是无监督的学习。
今天我们就拿监督学习的一个叫决策树的算法实例来给大家讲讲机器学习的实现,带大家入门机器学习。
具体题目是:现有一个excel表格其中记录了一个音乐软件的用户信息,包含年龄、性别(用1代表男、用2代表女,因为这个现有的算法模型只能支持数字)以及喜欢音乐的类型三个字段,通过我们的代码我们得到一个可以通过年龄性别预测喜欢音乐类型的模型。
这里用的是较为理想的数据大家也可以自己建立个excel进行处理(最后用csv形式导出)
1.库准备
pandas,sklearn,joblib
可以通过命令行进行下载
pip install pandas
pip install sklearn
pip install joblib
本文为了演示方便采用conda环境下的jupyter notebook进行示范,大家也可以自己在pycharm上执行。
2.决策树算法的了解
大家可以参考这张图来对决策树有一定的了解, 所谓决策树,就是一个类似于流程图的树形结构,树内部的每一个节点代表的是对一个特征的测试,树的分支代表该特征的每一个测试结果,而树的每一个叶子节点代表一个类别。
准备好之后发车
1.首先打开jupyter界面创建一个python3文件,把准备好的csv文件和jupyter文件放在同一目录下
import pandas as pd
df=pd.read_csv("music data.csv")
x=df.drop(columns=["喜欢音乐类型"])
y=df["喜欢音乐类型"]
用pandas模块打开csv 并得到条件项x和结果项y
2.导入sklearn库进行模型构造和训练
在sklearn中有现成的决策树模型可以采用
from sklearn.tree import DecisionTreeClassifier
model=model=DecisionTreeClassifier()#得到模型对象
model.fit(x,y)#用fit方法对其进行训练
这样一个较为简单的模型就大功告成了!
3.测试数据
我们输入14岁男性计算机便推测它喜欢hiphop 。
4.在实际的操作中我们肯定还需要有数据进行测试
所以我们还可以用sklearn进行划分数据和进行精确度计算,我们先把测试数据x_test传入得到predictions在将predictions和预设的结果值y_test对比
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
model=DecisionTreeClassifier()
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2)
model.fit(x_train,y_train)
predictions=model.predict(x_test)
score=accuracy_score(y_test,predictions)
1代表完全正确,这是由于咱们的数据是高度理想化的。
最后我们在建立了模型之后怎么将他存储起来呢,总不能我们用一次就需要训练一次吧这就用到了我们的joblib模块。
import joblib
joblib.dump(model,'music.joblib')#保存
#model = joblib.load('music.joblib') 读取
这样我们训练好一个模型后就可以多处调用。
下期更新html,css,js网络前段三件套的入门
以上是关于python基于sklern的机器学习——一文零基础入门机器学习的主要内容,如果未能解决你的问题,请参考以下文章