什么是机器学习,机器学习的用途?

        目前,普遍认为,机器学习(Machine Learning,ML)是人工智能领域中的一个方向,主要是研究如何通过计算的手段,改进系统自身的性能,说到底是通过分析足够量的数据,不断改进已有的算法,从而使得算法更加的智能,进一步地提高了其泛化的能力。

        所谓的泛化能力简单地讲就是通过算法训练得到的模型对新的数据预测的准确性有很大的提高与改进。

        模型泛指从数据中学习到的结果,也可以理解为潜在的一种规律。

        机器学习已经广泛应用于日常的生活中,如智能手机的语言识别,人脸识别等,目前最广为报道的自动驾驶,都应用了大量的机器学习算法。

        机器学习背后的原理则是数学知识的应用,比如线性代数和概率论等。

        机器学习现在普遍应用的编程语言是Python。

        现在,以《Programming Machine Learning From Coding to Deep Learning》一书中的程序为例。

  • 需要解决的问题:在一家比萨店中,从预定的座位数量判断比萨的销量,二者之间的关系。
  • 解决的思路:
  • 首先,我们可以将两者之间的已有的数据绘制在二维坐标上,我们可以自己在网上寻找到一些座位数量和比萨的销量的相关数据。  
  • 接着,需要对这些数据进行拟合,所谓的拟合就是找到一条直线,看这些点是否较好地散落在这条直线的周围,那么这条直线是代表预定的座位数与比萨销量的数学模型,这里我们以测试预定座位数量为20个时,比萨的销售量是多少。 
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns  # 美化图像

X, Y = np.loadtxt("pizza.txt", skiprows=1, unpack=True)  # skiprows是跳过第几行,unpack是指会把每一列当成一个向量输出, 而不是合并在一起


# print(X[0:5], Y[0:5])

# w为权重
def predict(X, w):
    return X * w

# 采用均方误差法计算误差
def loss(X, Y, w):
    return np.average((predict(X, w) - Y) ** 2)

# 训练
def train(X, Y, iterations, lr):
    w = 0
    for i in range(iterations):
        current_loss = loss(X, Y, w)
        print("Iterations %4d => Loss: %.6f" % (i, current_loss))
        if loss(X, Y, w + lr) < current_loss:
            w += lr
        elif loss(X, Y, w - lr) < current_loss:
            w -= lr
        else:
            return w
    raise Exception("Couldn't converge within %d iterations" % iterations)


w = train(X, Y, iterations=10000, lr=0.01)
print("\nw=%.3f" % w)

print("Prediction: x=%d => y=%.2f" % (20, predict(20, w)))

# 画图
sns.set()
plt.plot(X, Y, "bo")
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("Reservations", fontsize=15)
plt.ylabel("Pizzas", fontsize=20)
x_edge, y_edge = 50, 50
plt.axis([0, x_edge, 0, y_edge])
plt.plot([0, x_edge], [0, predict(x_edge, w)], linewidth=1.0, color="g")
plt.show()
  • 进一步地改善这个模型,增加一个参数b,就是截距,在ML中被称为偏置。接下来,修改上述的代码。 
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

X, Y = np.loadtxt("pizza.txt", skiprows=1, unpack=True)


# b是y轴的截距,在机器学习中称之为偏置
def predict(X, w, b):
    return X * w + b


def loss(X, Y, w, b):
    return np.average((predict(X, w, b) - Y) ** 2)


def train(X, Y, iterations, lr):
    w = b = 0
    for i in range(iterations):
        current_loss = loss(X, Y, w, b)
        print("Iterations %4d => Loss: %.6f" % (i, current_loss))
        if loss(X, Y, w + lr, b) < current_loss:
            w += lr
        elif loss(X, Y, w - lr, b) < current_loss:
            w -= lr
        elif loss(X, Y, w, b + lr) < current_loss:
            b += lr
        elif loss(X, Y, w, b - lr) < current_loss:
            b -= lr
        else:
            return w, b
    raise Exception("Couldn't converge within %d iterations" % iterations)


w, b = train(X, Y, iterations=10000, lr=0.01)
print("\nw=%.3f, b=%.3f" % (w, b))

print("Prediction: x=%d => y=%.2f" % (20, predict(20, w, b)))


sns.set()
plt.plot(X, Y, "bo")
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.xlabel("Reservations", fontsize=15)
plt.ylabel("Pizzas", fontsize=20)
x_edge, y_edge = 50, 50
plt.axis([0, x_edge, 0, y_edge])
plt.plot([0, x_edge], [b, predict(x_edge, w, b)], linewidth=1.0, color="g")
plt.show()

        预测后的图像   

        可以对上述的算法做进一步地改进,使得预测的结果更加接近于实际值! 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在机器学习中占据了重要地位,支持向量机(SVM)、决策树和随机森林等算法的提出和发展,使得机器学习能够更好地处理分类、回归和聚类等任务。进入21世纪,深度学习成为机器学习领域的重要突破,采用多层神经网络模型,通过大量数据和强大的计算能力来训练模型,在计算机视觉、自然语言处理和语音识别等领域取得了显著的成果。 机器学习算法在各个领域都有广泛的应用,包括医疗保健、金融、零售和电子商务、智能交通、生产制造等。例如,在医疗领域,机器学习技术可以帮助医生识别医疗影像,辅助诊断疾病,预测病情发展趋势,并为患者提供个性化的治疗方案。在金融领域,机器学习模型可以分析金融数据,识别潜在风险,预测股票市场的走势等。 未来,随着传感器技术和计算能力的提升,机器学习将在自动驾驶、智能家居等领域发挥更大的作用。同时,随着物联网技术的普及,机器学习将助力智能家居设备实现更加智能化和个性化的功能。在工业制造领域,机器学习也将实现广泛应用,如智能制造、工艺优化和质量控制等。 总之,机器学习是一门具有广阔应用前景和深远影响的学科,它将持续推动人工智能技术的发展,为人类社会的进步做出重要贡献。
机器学习常用的分析工具有很多种,下面列举一些常用的工具及其主要用途: 1. Python编程语言:Python机器学习领域最常用的编程语言之一,它的科学计算库和机器学习框架非常丰富。Python可以用于数据分析、数据可视化、机器学习模型的构建和评估等。 2. R编程语言:R是另一种常用的机器学习编程语言,它拥有很多数据分析和机器学习库。R可以用于数据分析、数据可视化、机器学习模型的构建和评估等。 3. MATLAB:MATLAB是一个广泛使用的数值计算软件,它也拥有很多机器学习工具箱。MATLAB可以用于数据可视化、机器学习模型的构建和评估等。 4. Excel:虽然Excel不是专门为机器学习设计的工具,但是它提供了一些简单的数据分析和可视化功能。Excel可以用于数据预处理、数据可视化等。 5. Tableau:Tableau是一种数据可视化工具,它可以帮助用户将数据可视化成易于理解的图表和图形。Tableau可以用于数据探索和可视化分析等。 6. RapidMiner:RapidMiner是一种开源的数据挖掘工具,它提供了一些机器学习算法和数据预处理功能。RapidMiner可以用于快速构建和评估机器学习模型等。 这些工具在机器学习的各个阶段都有不同的用途,例如数据预处理、特征工程、模型选择、模型训练和模型评估等。根据具体问题和数据情况,选择合适的工具和方法对于解决问题非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值