首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器学习计划

机器学习计划
EN

Code Review用户
提问于 2021-03-13 20:37:41
回答 2查看 52关注 0票数 0

我编写了一个程序来找出数据之间的区别并给出输出。下面是代码:

代码语言:javascript
复制
import json
import numpy as np
print("This is a basic machine learning thing.")
baseData = {"collecting":True,"x":[],"y":[]}
while baseData["collecting"]:
  baseData["x"].append(float(input("X:")))
  baseData["y"].append(float(input("Y:")))
  if input("Do you want to keep feeding data? Press enter for yes, or type anything for no.") != "":
    baseData["collecting"] = False
if len(baseData["x"]) == len(baseData["y"]):
  xdata = baseData["x"]
  ydata = baseData["y"]
  nums = []
  for i in range(len(xdata)):
    nums.append(xdata[i] - ydata[i])
  median = np.median(nums)
else:
  print("malformed data")
def getY(x):
  pass
while True:
  data = input("X/Data:")
  print(int(data)-median)

要运行程序,给它X和Y数据,然后给它X数据,它将预测Y数据。

EN

回答 2

Code Review用户

发布于 2021-03-13 23:48:03

也许你应该检查输入的有效性,并再次询问输入是否错误?

代码语言:javascript
复制
while baseData["collecting"]:
  baseData["x"].append(float(input("X:")))

这永远是真的,所以就放弃这一部分吧:

代码语言:javascript
复制
if len(baseData["x"]) == len(baseData["y"]):

也许你该选择退出?

代码语言:javascript
复制
while True:
  data = input("X/Data:")
  print(int(data)-median)

一般说来,把这叫做“马奇尼学习”是一种很大的想象力,不是吗?也许你应该看看如何拟合数据。即基本线性模型拟合。

票数 2
EN

Code Review用户

发布于 2021-03-14 00:30:00

baseData应该被分成三个独立的变量(collectingxdataydata);没有理由让它成为一个小块。

代码语言:javascript
复制
nums = []
for i in range(len(xdata)):
  nums.append(xdata[i] - ydata[i])

可以编写得更简洁一些,如:

代码语言:javascript
复制
nums = []
for x, y in zip(xdata, ydata):
  nums.append(x - y)

甚至只是:

代码语言:javascript
复制
nums = [x - y for x, y in zip(xdata, ydata)]

您不需要只为媒体导入numpy;stdlib statistics.median应该工作得很好。

票数 2
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/257111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档