马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
先上一段简单的代码解释一下机器学习大概的意思:import numpy
import pandas as pd
import math
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from matplotlib import pyplot as plt
a=numpy.linspace(0,numpy.cos(2*math.pi),100).reshape(50,2)
b=numpy.linspace(0,numpy.cos(2*math.pi),50)
x_train,x_test,y_train,y_test=train_test_split(a,b)
linreg=LinearRegression()
model=linreg.fit(x_train,y_train)
y_hat=linreg.predict(numpy.array(x_test))
t = numpy.arange(len(x_test))
plt.plot(t, y_test, 'r-', linewidth=2, label='Test')
plt.plot(t, y_hat, 'go', linewidth=2, label='Predict')
plt.legend(loc='upper right')
plt.grid()
plt.show()
我们先自己瞎编一些数据,变量a为50行2列的矩阵(其实就是个2维数组),变量b就是一个数组来作为a矩阵的输出项(就是假设是由a产生的结果)。第九行x_train,x_test,y_train,y_test=train_test_split(a,b)这句话的意思是把a和b两组数据由电脑随机各分为2份,10,11,12行语句的作用是:用第一份数据用来训练出一个模型(这个模型就是让电脑学会分析a和b数据之间的关系,然后利用这个关系,如果我们再给它新的数据a,它就会自己预测出数据b来),第二份数据用作测试这个模型,测试电脑预测的准确率。最后几条语句是画出图来,看看预测的怎么样。如图:
上图那条红线是我们并没有提供给电脑的测试结果,那绿点是电脑预测出的结果,这里电脑预测跟实际值完全一样是因为我们给的数据规律性太强(特征太大),就是说如果我们给的数据稍微有点规律电脑就会预测的跟实际差不多。当然如果就给一些随机值无论哪种机器学习也没用,我们人猜不到的电脑照样猜不出,就比如彩票,你们听说过有哪个机器学习能预测彩票的?所以机器学习的重点在于分析处理数据,我们做的大部分工作是把给电脑的数据调试好,把一些没什么特征的数据删掉,只留下有规律的数据,让电脑预测的更准确。让电脑通过算法预测只需要几行语句就够了。
你可以把数据换成自己的试试,比如你提供每个人的胸围跟臀围来预测身高(身高为输出项),或者是提供房子的经纬度和每个城市的GDP来预测房价(房价为输出项)。现在机器学习在医学上的应用也很广泛,比如提供每种疾病的症状来预测是哪种病等等。
以后我们学习的思路差不多就是这些。这个系列我要写的主要是按照这本书:
这书虽然是全英文的,看着费点劲但是思路很清晰,书里讲的知识很易懂,几乎没有什么数学方程公式之类的。不像有的中文的书全是讲的数学,就算全学懂了也没用。学这个主要靠兴趣,接下来我基本每天发一个帖子,会很枯燥。学这个只要会点python基础语法就行,基本上是零基础。
python我使用的是3.5,我的代码在3.5以上版本基本都适用。我建议直接安装anaconda省事,IDE就用自带的jupyter。 |