机器学习入门一(适合像我这样的小白)

1.简单介绍机器学习

        作者还是机器学习方面的萌新,比较擅长的语言为python,只具备一定的pandas、numpy、matplotlib库的知识,从今天起,作者将记录自己在学习机器学习的过程,希望感兴趣的小伙伴可以一起交流促进学习。同时作者也希望自己的博客能像别人的一样帮助一些被bug困扰的学生。

那话不多说先简单介绍一下概念吧,其实在我的认知中,无非就是预测,和分类。机器学习可以根据以前的数据去预测将要出现的数据,也可以把不同的数据做到合理的分类。

专业的介绍是这样的:

机器学习是一种人工智能的分支,它使用算法和统计模型来让计算机系统自动从数据中学习并提高性能。它的目标是让计算机能够从经验中学习,而不是只依靠程序员编写的规则和指令来执行任务。

机器学习的核心思想是将数据输入一个算法或模型中,然后该算法会自动学习数据中的规律、模式和趋势,并用这些知识来进行预测和决策。机器学习的应用领域非常广泛,包括图像、语音和自然语言处理、数据挖掘、信用评估、推荐系统等。

机器学习的主要类别有三种:监督学习、非监督学习和半监督学习。监督学习需要给定标签的训练数据,而非监督学习则不需要。半监督学习的最主要的特点是:学习器能够不依赖外界交互,自动的利用未标记样本来提升学习的性能,通俗来讲就是训练集有写有标签,有些无标签。

机器学习入门一(适合像我这样的小白)_第1张图片 

 

2.我们需要的环境

        需要的环境比较简单,有Anaconda 或者是已经搭建好的python环境即可。pycharm这款编译器也是可以使用的。不过因为作者更偏向学习数据分析方面的内容,所以机器学习这块,作者更偏向于哟个Anaconda。

        如果使用Anaconda,所需要的库应该是齐全的。如果是pycharm,请WIN + R 后输入cmd,然后安装所需的numpy库 ,pandas库,scikit-learn库。

#在黑框种依次输入哈
pip install pandas
pip install numpy
pip install scikit-learn

而我们想写关于深度学习的代码时引入这些库即可。

import pandas as pd
import numpy as np
import sklearn

#pandas  用于 dataframe的数据清洗
#numpy   方便矩阵运算
#sklearn 里面有一个个模型,划分好数据集就可以进行机器学习啦

3.小型实战(降雨量预测)

实战内容已知30年的年降雨量,预测第31年的。我才用了Arima模型(一个专门用于预测时间序列数据的模型)虽然效果一般般。

#要导入的其他库
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
from statsmodels.tsa.arima_model import ARIMA

#先划分数据集
data = pd.read_excel('data1.xlsx')
ts_train = data[4].iloc[:24]
test_X = data[4].iloc[24:]
arima200 = sm.tsa.SARIMAX(ts_train, order=(1,2,2))#order里边的三个参数p,d,q#这里的pdq和ACF和PACF图有关
model_results = arima200.fit()#fit模型
model_results.summary()#模型结果
pred = model_results.predict(start=24,end=29)#预测
pred
plt.plot(ts_train,label="训练集")
plt.plot(test_X,label="真实值")
plt.plot(pred,label="预测值")
plt.legend()
plt.show()

下面为plt画出的图

机器学习入门一(适合像我这样的小白)_第2张图片

 

虽然效果不是很好,因为数据集太少了,作者只用了24个数据去预测6个数据,所以图中的差距很大,但是大家可以想想如果数据量庞大的时候,我们就可以拟合出一条较为准确的预测曲线了。

该怎么说呢,其实机器学习没我们想的这么难,因为大部分的算法已经被人为的写好了。别人造的轮子真香,这些库不得不说真的好用。我们其实要做的就是调整需要调整的参数,至于算法部分我们要做到的其实就是理解,短短30行代码就可以写出一个ARIMA模型的预测,是不是很简单呢各位。

4.结语

哈哈哈哈,我希望在接下来的博客里我可以给大家讲清楚每一个模型的原理,让我自己学的明白,同时让大家学以致用。这是我第一次写博客,如果有写的不好的地方可以私信指正。作者将虚心接受各位大牛的建议。

你可能感兴趣的:(机器学习入门,机器学习,人工智能)