小标
2018-09-21
来源 :
阅读 1421
评论 0
摘要:本文主要向大家介绍了机器学习入门之第二篇[机器学习] 学习机器学习,从最简单的线性回归开始,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之第二篇[机器学习] 学习机器学习,从最简单的线性回归开始,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
机器学习,分为监督学习和无监督学习,监督学习里有回归和分类,分类有线性回归和逻辑回归。
从最简单的线性回归开始:
通过已有数据需要预测的线性方程:
实际值和预测值的误差,求最小误差函数(最小二乘法):
1.梯度下降法:
其中ε是步长,步长越大,下降越快,但是可能到不了局部最小值,步长越小,下降越慢,计算越多
2.正规方程直接求解:
最小二乘法正规方程组的详细推导:
https://zhuanlan.zhihu.com/p/28190949?utm_medium=social&utm_source=wechat_session
scikit-learn的线性回归代码,参考网页:
//scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py
input:
# 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 = datasets.load_diabetes()
# Use only one feature
diabetes_X = diabetes.data[:, np.newaxis, 2]
# Split the data into training/testing sets
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
# Split the targets into training/testing sets
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-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))
# Explained variance score: 1 is perfect prediction
print(‘Variance score: %.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()
output:
Coefficients:
[ 938.23786125]
Mean squared error: 2548.07
Variance score: 0.47
在这里,分别将diabetes_X_train和diabetes_y_train带入线性回归算法里拟合,求出了系数矩阵,并输出了均方误差和方差
怎么理解这里的系数,均方误差(MSE),方差?
coefficient,即系数矩阵
方差很简单,数据与平均数之差平方和的平均数
标准差是方差的平方根偏差,个别数据与平均值之差
均方误差,包含偏差和方差
偏差和方差的关系和机器学习容量,欠拟合和过拟合的概念联系比较紧密。
一般来说,偏差较大很可能欠拟合,方差较大可能过拟合。
在这里,我们使用的是最简单的线性回归模型,而且没有考虑怎么优化,没有考虑把数据进行分组进行交叉验证。
接下来,我会用这个模型分析kaggle上面的titanic数据,当然,结果肯定是很不好的,但是,重点是掌握这个方法,之后再考虑选择和优化。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号