欢迎访问宙启技术站
智能推送

如何使用Python实现机器学习中的常用算法(线性回归、支持向量机、决策树等)

发布时间:2023-06-04 21:13:08

在Python中,有许多机器学习库和框架可以使用,例如scikit-learn、TensorFlow和PyTorch。这些库均提供了实现各种机器学习算法的功能模块。在本文中,我们将介绍如何使用Python实现机器学习中的常用算法,包括线性回归、支持向量机和决策树。

1. 线性回归

在Python中,我们可以使用scikit-learn库的LinearRegression模块来实现线性回归算法。以下是一个示例代码:

from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
import pandas as pd

boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
y = pd.DataFrame(boston.target, columns=['MEDV'])
lm = LinearRegression()
lm.fit(X,y)
print('Intercept:', lm.intercept_)
print('Coefficients:', lm.coef_)

上面代码中,我们使用了波士顿房价数据集(Boston House Prices Dataset),调用sklearn库中的LinearRegression,进行线性回归模型的拟合。当然,我们也可以在不同的数据集上重复上述过程。

2. 支持向量机

支持向量机(Support Vector Machines,SVM)是一种常用的分类算法。在Python中,我们可以使用scikit-learn库的SVC(分类问题)和SVR(回归问题)模块来实现支持向量机算法。

from sklearn import datasets
from sklearn import svm

iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

model = svm.SVC(kernel='linear')
model.fit(X, y)

new_observation = [[5.2, 3.6]]
print(model.predict(new_observation))

上面的代码中,我们使用iris数据集,将它分成了两个属性(花萼长度和花萼宽度)作为特征,用SVC模块来进行支持向量机分类。

3. 决策树

Python中实现决策树算法的主要库是scikit-learn。scikit-learn的决策树模块为DecisionTreeClassifier和DecisionTreeRegressor。

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree.export import export_text

iris = load_iris()
X = iris['data']
y = iris['target']
decision_tree = DecisionTreeClassifier(random_state=0, max_depth=2)
decision_tree = decision_tree.fit(X, y)

tree_rules = export_text(decision_tree, feature_names=iris['feature_names'])
print(tree_rules)

在上述代码中,我们使用决策树对于鸢尾花分类。对于决策树模型的可视化,我们可以使用Graphviz等第三方库。用以下的代码可以把决策树模型生成可视化:

from IPython.display import Image  
from sklearn.tree import export_graphviz
import pydotplus

dot_data = export_graphviz(decision_tree, out_file=None) 
graph = pydotplus.graph_from_dot_data(dot_data)
Image(graph.create_png())

以上的代码呈现了决策树模型的可视化。深度为1时,我们使用矩形呈现每个节点,当深度大于1时,我们采用“发散树”或“决策树”模型。

在Python中,scikit-learn库也提供了其它的机器学习模型,例如K近邻算法、朴素贝叶斯、神经网络等。以上是如何使用Python实现机器学习中的常用算法,欢迎读者尝试。