系列文章目录
数据挖掘之线性回归(二),转自educoder
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
一、相关知识
(一)线性回归
线性回归假设特征和结果满足线性关系
一元线性回归问题函数关系可表示:
y
=
a
∗
x
+
b
y=a*x+b
y=a∗x+b
根据上式,在确定a、b的情况下,给定一个 x 值,我们就能够得到一个确定的 y 值,通常根据上式预测的 y 值与实际的 y 值存在一个误差。a、b 为参数(parameters)或称回归系数(regression coefficients)。
(二)最小二乘法
基本思想
保证回归直线与所有训练样本点都近。
若有 n 个样本点:(x1,y1),… ,(xn,yn),可以用下面的表达式来刻画这些样本点与回归直线 y=a+bx 的接近程度:
求该值最小时的直线的方法称为最小二乘法
多元线性回归 原理类似
二、实现代码
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
def data_astype(x):
"""数据类型转换"""
x['hour'] = x['hour'].astype('float32')
x['DEWP'] = x['DEWP'].astype('float32')
x['TEMP'] = x['TEMP'].astype('float32')
x['PRES'] = x['PRES'].astype('float32')
x['Iws'] = x['Iws'].astype('float32')
x['Is'] = x['Is'].astype('float32')
x['Ir'] = x['Ir'].astype('float32')
x['cbwd_NE'] = x['cbwd_NE'].astype('float32')
x['cbwd_NW'] = x['cbwd_NW'].astype('float32')
x['cbwd_SE'] = x['cbwd_SE'].astype('float32')
x['cbwd_cv'] = x['cbwd_cv'].astype('float32')
x['year'] = x['year'].astype('float32')
x['month'] = x['month'].astype('float32')
x['day'] = x['day'].astype('float32')
x['week'] = x['week'].astype('float32')
if __name__ == "__main__":
# 加载数据
x = pd.read_csv('src/step1/data/pm25_data.csv', encoding='utf-8')
data_astype(x)
# 加载标签
y = pd.read_csv('src/step1/data/result.csv')['pm2.5']
# 对数据进行线性回归预测
#####Begin#####
reg=LinearRegression().fit(x,y)
#####End#####
# 加载未来18天的数据
x_val = pd.read_csv('src/step1/data/test_1.csv')
# 预测
y_val_pre = reg.predict(x_val)
print('未来18天的pm25预测值:', y_val_pre)