用Jupter进行机器学习的入门练习(自用)——(1)模型的建立和精确度测试

本人是跟着b站学习Python的小白,走了许多弯路,怕忘记所以记下来方便查阅。

 学习Python的b站视频🔗https://www.bilibili.com/video/BV14J411U7hj

视频中所提到的下载数据的网站是外网,不太方便,所以这里推荐一个中文的网站:

和鲸社区https://www.heywhale.com/mw/project/5d91f803037db3002d3b77cd 

(有和视频中一样的数据,但是一天只有免费下载一个数据集的机会)


一、建立简单的机器学习模型进行预测

  • 导入数据集
import pandas as pd
music_data = pd.read_csv('music.csv')

 注意:自己创建表格时先用excel进行编辑,保存成xlsx格式后再另存为csv格式,才能顺利导入数据集(直接改后缀可能无法实现,记得一定要另存为csv格式!!!)

注意:一般情况下,接下来的一个步骤应该是clean the data,对数据进行去重、删除、修改、变成可用形式(例如:数值)等操作。这里的案例不需要这些步骤。

  • 将数据集分成两个独立的集合
X = music_data.drop(columns = ['genre'])
y = music_data['genre']

(1)使用.drop生成没有genre这列值的输入集X

(2)生成只有genre这列值的输出集y

  • 建立机器学习的模型

机器学习的模型有很多种,这个案例使用的是决策树。

(1)导入决策树分类器

from sklearn.tree import DecisionTreeClassifier

(2)建立模型

model = DecisionTreeClassifier()
model.fit(X,y)

(3)调用模型进行预测

predictions = model.predict([ [21,1], [22,0] ])  #数组为输入的需要预测的值

注意:一般情况下会选择70%左右的数据作为训练数据,30%左右的数据作为测试数据,以验证预测数据与实际情况的偏差。


二、模型评估

  • 评估模型的准确性

(1)导入分割数据的模块,将数据集分成训练集和测试集两个部分

from sklearn.model_selection import train_test_split

(2)设置X_train和X_test这两个输入集变量以及y_train和y_test两个输出集变量

X_train,X_test,y_train,y_test = train_test_split(X, y, test_size = 0.2)

0.2是测试集在数据集中的占比,可根据需要更改,建议在0.3左右。

(3)修改模型参数

因为是为了测试输入集预测的正确性,所以这里只用传递训练数据集。

model = DecisionTreeClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)

(4)引入准确度模块

from sklearn.metrics import accuracy_score

(5)测试准确度

将预测值与测试集的实际值进行对比。

score = accuracy_score(y_test,predictions)

注意:本次测试的精确度只有0.5,可能是因为数据太少了,正常的一个项目需要成千上万个数据。

此部分完整的代码

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

music_data = pd.read_csv('music.csv')
X = music_data.drop(columns=['genre'])
y = music_data['genre']
X_train,X_test,y_train,y_test = train_test_split(X, y, test_size = 0.2)

model = DecisionTreeClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)

score = accuracy_score(y_test,predictions)
score

 

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值