python机器学习经典算法代码示例及思维导图(数学建模必备)

这篇具有很好参考价值的文章主要介绍了python机器学习经典算法代码示例及思维导图(数学建模必备)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近几天学习了机器学习经典算法,通过此次学习入门了机器学习,并将经典算法的代码实现并记录下来,方便后续查找与使用。
这次记录主要分为两部分:第一部分是机器学习思维导图,以框架的形式描述机器学习开发流程,并附有相关的具体python库,做索引使用;第二部分是相关算法的代码实现(其实就是调包),方便后面使用时直接复制粘贴,改改就可以用,尤其是在数学建模中很实用。

第一部分,思维导图:
python机器学习经典算法代码示例及思维导图(数学建模必备)

第二部分,代码示例:

机器学习代码示例

导包

import numpy as np
import pandas as pd
from matplotlib.pyplot import plot as plt

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction import DictVectorizer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import VarianceThreshold
from scipy.stats import pearsonr

from sklearn.model_selection import GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import MultinomialNB
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.ensemble import RandomForestClassifier

from sklearn.linear_model import LinearRegression, SGDRegressor, Ridge, LogisticRegression
from sklearn.metrics import mean_squared_error
from sklearn.metrics import classification_report
from sklearn.metrics import roc_auc_score
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
import joblib

特征工程

特征抽取

def dict_demo():
    data = [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 200},
            {'city': '广州', 'temperature': 300}]
    transfer = DictVectorizer()
    data_new = transfer.fit_transform(data)
    data_new = data_new.toarray()
    print(data_new)
    print(transfer.get_feature_names_out())


# dict_demo()

def count_demo():
    data = ["I love love China", "I don't love China"]
    transfer = CountVectorizer()
    data_new = transfer.fit_transform(data)
    data_new = data_new.toarray()
    print(data_new)
    print(transfer.get_feature_names_out())


# count_demo()

def chinese_demo(d):
    tt = " ".join(list(jieba.cut(d)))
    return tt


# data = [
#     "晚风轻轻飘荡,心事都不去想,那失望也不失望,惆怅也不惆怅,都在风中飞扬",
#     "晚风轻轻飘荡,随我迎波逐浪,那欢畅都更欢畅,幻想更幻想,就像 你还在身旁"]
# res = []
# for t in data:
#     res.append(chinese_demo(t))
#
# transfer = TfidfVectorizer()
# new_data = transfer.fit_transform(res)
# new_data = new_data.toarray()
# print(new_data)
# print(transfer.get_feature_names_out())

数据预处理

def minmax_demo():
    data = pd.read_csv("datasets/dating.txt")
    data = data.iloc[:, 0:3]
    print(data)
    transfer = MinMaxScaler()
    data_new = transfer.fit_transform(data)
    print(data_new)
    return None


# minmax_demo()


def standard_demo():
    data = pd.read_csv("datasets/dating.txt")
    data = data.iloc[:, 0:3]
    print(data)
    transfer = StandardScaler()
    data_new = transfer.fit_transform(data)
    print(data_new)
    return None


# standard_demo()

def stats_demo():
    data = pd.read_csv("./datasets/factor_returns.csv")
    data = data.iloc[:, 1:10]
    transfer = VarianceThreshold(threshold=10)
    data_new = transfer.fit_transform(data)
    print(data_new)
    print(data_new.shape)
    df = pd.DataFrame(data_new, columns=transfer.get_feature_names_out())
    print(df)


# stats_demo()

def pear_demo():
    data = pd.read_csv("./datasets/factor_returns.csv")
    data = data.iloc[:, 1:10]
    print(data.corr(method="pearson"))


# pear_demo()

模型训练

分类算法

KNN

# 读取数据
iris = load_iris()
# 数据集划分
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
# 数据标准化
transfer = StandardScaler()
transfer.fit(x_train)
x_train = transfer.transform(x_train)
x_test = transfer.transform(x_test)
# 模型训练
estimator = KNeighborsClassifier(n_neighbors=i)
estimator.fit(x_train, y_train)
# 模型预测
y_predict = estimator.predict(x_test)
score = estimator.score(x_test, y_test)
print("score:", score)

朴素贝叶斯

new = fetch_20newsgroups(subset="all")
x_train, x_test, y_train, y_test = train_test_split(new.data, new.target, random_state=42)
# 文本特征提取
transfer = TfidfVectorizer()
transfer.fit(x_train)
x_train = transfer.transform(x_train)
x_test = transfer.transform(x_test)
estimator = MultinomialNB()
estimator.fit(x_train, y_train)
score = estimator.score(x_test, y_test)
print(score)

决策树

iris = load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
estimator = DecisionTreeClassifier(criterion='gini')
estimator.fit(x_train, y_train)
score = estimator.score(x_test, y_test)
print(score)
# 决策树可视化
export_graphviz(estimator, out_file='tree.dot', feature_names=iris.feature_names)

随机森林

x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.7)
estimator = RandomForestClassifier(random_state=42, max_features='sqrt')
param_dict = {'n_estimators': range(10, 50), 'max_depth': range(5, 10)}
estimator = GridSearchCV(estimator=estimator, param_grid=param_dict, cv=3)
estimator.fit(x_train, y_train)
print(estimator.best_score_)
print(estimator.best_estimator_)
print(estimator.best_params_)

回归算法

线性回归

def demo1():
    data_url = "http://lib.stat.cmu.edu/datasets/boston"
    raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
    data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
    target = raw_df.values[1::2, 2]
    x_train, x_test, y_train, y_test = train_test_split(data, target, train_size=0.7, random_state=42)
    transfer = StandardScaler()
    transfer.fit(x_train)
    x_train = transfer.transform(x_train)
    x_test = transfer.transform(x_test)
    estimator = LinearRegression()
    estimator.fit(x_train, y_train)
    y_predict = estimator.predict(x_test)
    mse = mean_squared_error(y_test, y_predict)
    print("正规方程-", estimator.coef_)
    print("正规方程-", estimator.intercept_)
    print(mse)


def demo2():
    data_url = "http://lib.stat.cmu.edu/datasets/boston"
    raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
    data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
    target = raw_df.values[1::2, 2]
    x_train, x_test, y_train, y_test = train_test_split(data, target, train_size=0.7, random_state=42)
    transfer = StandardScaler()
    transfer.fit(x_train)
    x_train = transfer.transform(x_train)
    x_test = transfer.transform(x_test)
    estimator = SGDRegressor()
    estimator.fit(x_train, y_train)
    y_predict = estimator.predict(x_test)
    mse = mean_squared_error(y_test, y_predict)
    print("梯度下降", estimator.coef_)
    print("梯度下降", estimator.intercept_)
    print(mse)
岭回归
def demo3():
    data_url = "http://lib.stat.cmu.edu/datasets/boston"
    raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
    data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
    target = raw_df.values[1::2, 2]
    x_train, x_test, y_train, y_test = train_test_split(data, target, train_size=0.7, random_state=42)
    transfer = StandardScaler()
    transfer.fit(x_train)
    x_train = transfer.transform(x_train)
    x_test = transfer.transform(x_test)
    estimator = Ridge()
    estimator.fit(x_train, y_train)
    y_predict = estimator.predict(x_test)
    mse = mean_squared_error(y_test, y_predict)
    print("梯度下降", estimator.coef_)
    print("梯度下降", estimator.intercept_)
    print(mse)
逻辑回归
def demo4():
    data = pd.read_csv("./datasets/breast-cancer-wisconsin.data",
                       names=['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size',
                              'Uniformity of Cell Shape',
                              'Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin',
                              ' Normal Nucleoli', 'Mitoses', 'Class'])
    data.replace(to_replace="?", value=np.nan, inplace=True)
    data.dropna(inplace=True)
    x = data.iloc[:, 1:-1]
    y = data['Class']
    x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.7, random_state=42)
    transfer = StandardScaler()
    transfer.fit(x_train)
    x_train = transfer.transform(x_train)
    x_test = transfer.transform(x_test)
    estimator = LogisticRegression()
    estimator.fit(x_train, y_train)
    # joblib.dump(estimator, 'estimator.pkl')
    # estimator = joblib.load('estimator.pkl')
    y_predict = estimator.predict(x_test)
    print(estimator.coef_)
    print(estimator.intercept_)
    score = estimator.score(x_test, y_test)
    print(score)
    report = classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "恶性"])
    print(report)
    auc = roc_auc_score(y_test, y_predict)
    print(auc)

聚类算法

KMeans

data = pd.read_csv("./datasets/factor_returns.csv")
data = data.iloc[:, 1:10]
transfer = VarianceThreshold(threshold=10)
data_new = transfer.fit_transform(data)
# df = pd.DataFrame(data_new, columns=transfer.get_feature_names_out())
estimator = KMeans()
estimator.fit(data_new)
y_predict = estimator.predict(data_new)
print(y_predict)
s = silhouette_score(data_new, y_predict)
print(s)

模型调优

# 网格搜索与交叉验证:以KNN为例
iris = load_iris()
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
transfer = StandardScaler()
transfer.fit(x_train)
x_train = transfer.transform(x_train)
x_test = transfer.transform(x_test)
estimator = KNeighborsClassifier()
# 网格搜素设置
para_dict = {"n_neighbors": range(1, 10)}
estimator = GridSearchCV(estimator, para_dict, cv=10)
estimator.fit(x_train, y_train)
# 最佳参数
print("best_score_:", estimator.best_score_)
print("best_estimator_:", estimator.best_estimator_)
print("best_params_:", estimator.best_params_)

本文作者:CodingOrange
本文链接:https://www.cnblogs.com/CodingOrange/p/17642747.html
转载请注明出处!文章来源地址https://www.toymoban.com/news/detail-657847.html

到了这里,关于python机器学习经典算法代码示例及思维导图(数学建模必备)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构】八大排序算法(内含思维导图和画图分析)

    作者主页: paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏:

    2024年02月08日
    浏览(58)
  • SpringBoot知识范围-学习步骤--【思维导图知识范围】

    添加链接描述语言视频选择 收录专辑链接 C 张雪峰推荐选择了计算机专业之后-在大学期间卷起来-【大学生活篇】 JAVA 黑马B站视频JAVA部分的知识范围、学习步骤详解 JAVAWEB 黑马B站视频JAVAWEB部分的知识范围、学习步骤详解 SpringBoot SpringBoot知识范围-学习步骤【思维导图知识范

    2024年02月13日
    浏览(34)
  • 详细解析python视频选择--【思维导图知识范围】

    C ,JAVA JAVAWEB ,微信小程序等 都有视频选择的分析。 语言视频选择 收录专辑链接 C 张雪峰推荐选择了计算机专业之后-在大学期间卷起来-【大学生活篇】 JAVA 黑马B站视频JAVA部分的知识范围、学习步骤详解 JAVAWEB 黑马B站视频JAVAWEB部分的知识范围、学习步骤详解 SpringBoot SpringB

    2024年02月16日
    浏览(52)
  • 经典机器学习算法之GBDT算法

    本篇文章旨在让完全不懂的小伙伴对该算法有一个初步认识与理解,只适用于小白 GBDT(Gradient Boosting Decision Trees,梯度提升决策树)是一种迭代的 决策树算法 ,由多棵决策树组成,所有树的 结论累加 起来作为最终答案,我们根据其名字来展开推导过程是一种集成学习方法

    2024年02月11日
    浏览(48)
  • 2023最新首发,全网最全 Spring Boot 学习宝典(附思维导图)

    作者: bug菌 博客:CSDN、掘金、infoQ、51CTO等 简介:CSDN/阿里云/华为云/51CTO博客专家,博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者,全网粉丝合计10w+,硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费领取简历模板/学习资料

    2024年02月11日
    浏览(50)
  • AIGC+思维导图:提升你的学习与工作效率的「神器」

    目录 一、产品简介 二、功能介绍 2.1 AI一句话生成思维导图 2.2百万模版免费用 2.3分屏视图,一屏读写 2.4团队空间,多人协作 2.5  云端跨平台化 2.6 免费够用,会员功能更强大 2.7 支持多种格式的导入导出 三、使用教程 3.1 使用AI一键生成 3.2 AI导图不满意,想要自己新建 四

    2024年02月10日
    浏览(34)
  • 经典机器学习算法——决策树

    优质博文:IT-BLOG-CN 树模型是机器学习中最常用的一类模型,包括随机森林、AdaBoost、GBDT(XGBoost和Lightgbm)等,基本原理都是通过集成弱学习器的即式来进一步提升准确度。这里的弱学习器包括线性模型和决策树模型,本期介绍的就是决策树模型(DecisionTree)。 决策树属于有

    2024年04月29日
    浏览(36)
  • 机器学习十大经典算法

    机器学习算法是计算机科学和人工智能领域的关键组成部分,它们用于从数据中学习模式并作出预测或做出决策。本文将为大家介绍十大经典机器学习算法,其中包括了线性回归、逻辑回归、支持向量机、朴素贝叶斯、决策树等算法,每种算法都在特定的领域发挥着巨大的价

    2024年02月14日
    浏览(40)
  • 深度学习实战30-AIGC项目:自动生成思维导图文件,解放双手

    大家好,我是微学AI,今天给大家介绍一下深度学习实战30-AIGC项目:自动生成思维导图文件,解放双手,思维导图是一种常见的工具,用于将复杂的信息和概念以图形化方式展示出来。AIGC项目旨在将这种思维导图的创建过程自动化,并通过使用ChatGPT作为生成器,使其变得更

    2024年02月14日
    浏览(49)
  • B站视频JAVA部分的知识与学习-【思维导图知识范围】

    JAVA本系列 黑马的JAVA学习路线–详解JAVA部分的学习 语言视频选择 收录专辑链接 C 张雪峰推荐选择了计算机专业之后-在大学期间卷起来-【大学生活篇】 JAVA 黑马B站视频JAVA部分的知识范围、学习步骤详解 JAVAWEB 黑马B站视频JAVAWEB部分的知识范围、学习步骤详解 SpringBoot Spring

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包