我编写了一个程序来找出数据之间的区别并给出输出。下面是代码:
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数据。
发布于 2021-03-13 23:48:03
也许你应该检查输入的有效性,并再次询问输入是否错误?
while baseData["collecting"]:
baseData["x"].append(float(input("X:")))这永远是真的,所以就放弃这一部分吧:
if len(baseData["x"]) == len(baseData["y"]):也许你该选择退出?
while True:
data = input("X/Data:")
print(int(data)-median)一般说来,把这叫做“马奇尼学习”是一种很大的想象力,不是吗?也许你应该看看如何拟合数据。即基本线性模型拟合。
发布于 2021-03-14 00:30:00
baseData应该被分成三个独立的变量(collecting、xdata、ydata);没有理由让它成为一个小块。
nums = []
for i in range(len(xdata)):
nums.append(xdata[i] - ydata[i])可以编写得更简洁一些,如:
nums = []
for x, y in zip(xdata, ydata):
nums.append(x - y)甚至只是:
nums = [x - y for x, y in zip(xdata, ydata)]您不需要只为媒体导入numpy;stdlib statistics.median应该工作得很好。
https://codereview.stackexchange.com/questions/257111
复制相似问题