资源简介
线性回归数值型预测:预测鲍鱼的年龄 压缩文件中包含源码以及训练数据、测试数据
代码片段和文件信息
#!/usr/bin/python
# -*- coding utf-8 -*-
# Project: Regression
# Author: jiangnan
# Mail: jiangnanmax@gmail.com
# Date: 2018/10/13
import numpy as np
def loadTrainData(filename):
“““
函数说明:
加载训练数据
:param filename:
文件名
:return:
xArray - x数据集,即为每个训练样本的特征参数
yArray - y数据集,即为每个训练样本的年龄
“““
featNum = len(open(filename).readline().split(‘‘)) - 2 # 特征参数的个数,其中舍掉了第一个性别特征
file = open(filename)
xArray = []
yArray = []
for line in file.readlines():
tempLine = line.strip().split(‘‘)
‘‘‘
if tempLine[0] == ‘M‘:
tempLine[0] = ‘1‘
elif tempLine[0] == ‘F‘:
tempLine[0] = ‘-1‘
else:
tempLine[0] = ‘0‘
‘‘‘
del(tempLine[0])
xArr = []
for i in range(featNum):
xArr.append(float(tempLine[i]))
xArray.append(xArr)
yArray.append(float(tempLine[-1]))
return xArray yArray
def loadTestData(filename):
“““
函数说明:
加载测试数据
:param filename:
文件名
:return:
xArray - x数据集,即为每个测试样本的特征参数
“““
featNum = len(open(filename).readline().split(‘‘)) - 1 # 特征参数的个数,其中舍掉了第一个性别特征
file = open(filename)
xArray = []
for line in file.readlines():
tempLine = line.strip().split(‘‘)
‘‘‘
if tempLine[0] == ‘M‘:
tempLine[0] = ‘1‘
elif tempLine[0] == ‘F‘:
tempLine[0] = ‘-1‘
else:
tempLine[0] = ‘0‘
‘‘‘
del(tempLine[0])
xArr = []
for i in range(featNum):
xArr.append(float(tempLine[i]))
xArray.append(xArr)
return xArray
def lwlRegression(testPoint xArr yArr k=1.0):
“““
函数说明:
使用局部加权线性回归计算回归系数w
:param testPoint:
测试样本
:param xArr:
x训练数据集
:param yArr:
y训练数据集
:param k:
高斯核的k值,默认为1.0,可自定义
:return:
testPoint * ws - 计算得到的系数w对测试样本的预测值
“““
xMat = np.mat(xArr)
yMat = np.mat(yArr).T
m = np.shape(xMat)[0]
weights = np.mat(np.eye((m)))
for i in range(m):
diffMat = testPoint - xMat[i :]
weights[i i] = np.exp(diffMat * diffMat.T / (-2.0 * k ** 2))
xTx = xMat.T * (weights * xMat)
if np.linalg.det(xTx) == 0.0:
print(“不能求逆!“)
return
ws = xTx.I * (xMat.T * (weights * yMat))
return testPoint * ws
def RegressionTest(testArr xArr yArr k=1.0):
“““
函数说明:
局部加权线性回归测试
:param testArr:
测试数据集
:param xArr:
x训练数据集
:param yArr:
y训练数据集
:param k:
高斯核的k值,默认为1.0,可自定义
:return:
yHat - 测试集合的所有预测值
“““
m = np.shape(testArr)[0]
yHat = np.zeros(m)
for i in range(m):
yHat[i] = lwlRegression(testArr[i] xArr yArr k)
return yHat
def main():
“““
函数说明:
主函数,综合调用上述功能函数完成工作
“““
trainX trainY = loadTrainData(‘train.txt‘);
testX = loadTestData(‘test.txt‘)
yHat = Regre
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-28 16:42 Regression\
文件 3667 2018-10-18 19:06 Regression\Regression.py
文件 6148 2018-10-28 16:41 Regression\.DS_Store
目录 0 2018-10-28 16:42 __MACOSX\
目录 0 2018-10-28 16:42 __MACOSX\Regression\
文件 120 2018-10-28 16:41 __MACOSX\Regression\._.DS_Store
文件 156908 2017-11-15 10:27 Regression\train.txt
文件 228 2017-11-15 10:27 __MACOSX\Regression\._train.txt
文件 32768 2017-11-15 10:27 Regression\test.txt
文件 228 2017-11-15 10:27 __MACOSX\Regression\._test.txt
文件 172 2018-10-28 16:42 __MACOSX\._Regression
相关资源
- 逻辑回归分类鸢尾花和红酒等级,源
- 波士顿房价预测数据及代码
- 全国计算机等级考试二级公共基础知
- 鱼c资源全套视频+课件+作业答案
- 新冠病毒数据集包含地理位置、全国
- 神经网络二分类
- requests安装所需包和依赖_whl.rar
- python tsp 求解VRP问题的经典算法
- Pillow安装包
- 精通Django
- R语言实现多元线性回归
- 人脸识别正样本图片库
- vocab.txt词典
- 米字格.pdf
- 飞机大战素材
- caffe学习笔记1-7-完整版-薛开宇
- 2017高职大数据赛真题及参考答案
- Odoo10.0中文开发手册2017
- Django Web开发指南源码
- PC端完整版商城模板在线商城静态页面
- pyecharts中文教程
- pynq-z2_boardfiles.zip
- numpy中文文档
- 爬取喜马拉雅音频.zip
- 计算机专业本科毕设选题探讨
- 辛星tkinter教程第二版-最新完整版
- 2014年辛星Django教程第一版
- 新浪微博爬虫功能包括爬取用户信息
- PyInstaller-3.5-py2.py3-none-any.whl
- class48.ui
评论
共有 条评论