从头开始学人工智能
文章目录
今日学习目标!
序
前面我们已经简单学习了numpy,pandas,matplotlib,在我学习java的时候都是跟着视频去敲过来的,后面需要自己思考,接着就是看源码,源码基本都在啃书,后面就不再喜欢看视频了,毕竟书的话才算是第一数据来源吧!至于java学的怎么样,也就是看了spring和mybaits源码,然后自己慢慢自己敲,感觉还是蛮不错的!反正现在是喜欢去看书!这个都是看自己的爱好的吧!之前也是跟着老师去研究研究算法,一些单目标,多目标算法,当时的话还是觉得工程好玩,现在的话,我会毫不犹豫的选择算法!真香定理吧!一些传统算法还是可以的,这次蓝桥杯确实打击有点大!不管不管!静下心一起学习!说这么多就是想说,我们可以先跳到这个有成就感的地方来入门这个,随着使用巩固前面的知识,加深前面的知识!至于不会的知识可以去自己了解!去补充!好吧不多说啦!
机器学习分类
是否在人类监督下进行训练(监督,无监督和强化学习)
在机器学习中,无监督学习就是聚类,事先不知道样本的类别,通过某种办法,把相似的样本放在一起归位一类;而监督型学习就是有训练样本,带有属性标签,也可以理解成样本有输入有输出。
所有的回归算法和分类算法都属于监督学习。回归和分类的算法区别在于输出变量的类型,定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测
1.1线性模型
1.1.1普通最小二乘法(分类算法)
这里解释一下分类算法!
解释一下最小二乘法
通俗易懂学习最小二乘法
如果理解了上面的过程,那么我们就可以提到训练和模型了!
那假设上面的公式是错误的呢!
这里加啦一个参数b是不是将两个点拟合了!
也就是说不同的数据值拟合出来的模拟的向量是不同的!
得到的参数也就是【k,b】也就是斜率和偏移量!
经过啦这样的解说!现在对于这个也就有了一定的认识!
先了解一下最小二乘!
简单的来说,每次变化一点,慢慢拟合
这里对[K,J]函数的k=1的切点求导,然后用 J原来-J更新 比较一下,判断是否更新,这样基本就能达到局部最优!为毛是局部最优,后话后话,可以细想想为啥为啥减去求导就会靠近优解,再想想有什么问题!这也就是熟悉的一种,梯度下降算法!
使用最小二乘预测
# Code source: Jaques Grobler
# License: BSD 3 clause
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
# Load the diabetes dataset
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
# Use only one feature
#冒号在前,列项
diabetes_X = diabetes_X[:, np.newaxis, 2]
# Split the data into training/testing sets
print("-------------------------------------")
diabetes_X_train = diabetes_X[:-20]
print(len(diabetes_X_train))
diabetes_X_test = diabetes_X[-20:]
print("-------------------------------------")
print(len(diabetes_X_test))
# Split the targets into training/testing sets
diabetes_y_train = diabetes_y[:-20]
diabetes_y_test = diabetes_y[-20:]
# Create linear regression object
regr = linear_model.LinearRegression()
# Train the model using the training sets
#拟合模型(使用训练集训练模型)
regr.fit(diabetes_X_train, diabetes_y_train)
# Make predictions using the testing set
#预测值
diabetes_y_pred = regr.predict(diabetes_X_test)
# The coefficients
print('Coefficients: \n', regr.coef_)
# The mean squared error
print('Mean squared error: %.2f'
% mean_squared_error(diabetes_y_test, diabetes_y_pred))
# The coefficient of determination: 1 is perfect prediction
print('Coefficient of determination: %.2f'
% r2_score(diabetes_y_test, diabetes_y_pred))
# Plot outputs
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
拟合图
总结
最小二乘线性回归里面的基本算法!具体的代码思路我们要多练练!最近就在慢慢啃这个和比赛!哈哈哈,一起加油!