【机器学习】机器学习的基本概念、算法的工作原理、实际应用案例

news2024/9/9 0:17:44

一、机器学习的基本概念

定义: 机器学习是人工智能的一个分支,它使计算机能够在没有明确编程的情况下从数据中学习并改进其性能。机器学习的目标是让计算机自动学习模式和规律,从而能够对未知数据做出预测或决策。

主要类型

  • 监督学习:在这种类型的学习中,算法通过已知输入输出数据对进行训练,学习映射函数,以便对新的输入数据进行预测。常见的监督学习任务包括分类和回归。
  • 无监督学习:无监督学习的任务是发现数据中的结构或模式,而不需要预先给定标签。聚类和降维是常见的无监督学习任务。
  • 半监督学习:结合了监督学习和无监督学习的特点,使用少量的标注数据和大量的未标注数据进行学习。
  • 强化学习:在这种类型的学习中,智能体通过与环境互动来学习如何做出决策,以最大化累积奖励。

二、机器学习算法的工作原理

监督学习算法

  • 线性回归:用于回归任务,通过寻找一条直线来拟合数据点,最小化预测值与实际值之间的差距。
  • 逻辑回归:用于分类任务,尽管名称中有“回归”二字,但它实际上是一种分类算法,用于预测事件发生的概率。
  • 决策树:通过构建一棵树形结构来进行决策。每个内部节点代表一个属性上的测试,每个分支代表一个测试结果,每个叶子节点代表一个类别。
  • 支持向量机 (SVM):寻找一个最优超平面,使得不同类别的数据尽可能地被分开,最大化类别之间的间隔。
  • 随机森林:集合多个决策树构成的一种集成学习方法,通过对单个决策树的预测结果进行投票来做出最终预测。

无监督学习算法

  • K-均值聚类:一种常见的聚类算法,通过迭代过程将数据划分为K个簇,每个簇的数据点尽可能相似。
  • 主成分分析 (PCA):一种降维技术,通过保留数据的主要方向来减少数据的维度,同时尽量保留原始数据的信息。
  • DBSCAN:一种基于密度的聚类算法,能够发现任意形状的簇,并且不需要事先指定簇的数量。

强化学习算法

  • Q-Learning:一种基于表格的学习方法,通过学习状态-动作值函数来确定最佳的动作策略。
  • Deep Q-Network (DQN):结合了Q-Learning和深度学习,使用神经网络来近似状态-动作值函数,适用于高维输入空间的情况。

三、机器学习的实际应用案例

1. 医疗诊断

  • 案例:利用机器学习算法对医学影像(如X光片、MRI)进行分析,帮助医生识别病变区域。
  • 技术:卷积神经网络 (CNN) 用于图像特征提取,支持向量机 (SVM) 或随机森林用于分类。

技术栈

  • Python: 用于编写程序逻辑
  • TensorFlow: 用于构建和训练卷积神经网络
  • Keras: 作为TensorFlow的高级API
  • scikit-learn: 用于支持向量机分类器
  • OpenCV: 用于图像处理
  • matplotlib: 用于绘图

代码示例

# 导入所需的库
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report, confusion_matrix

# 图像尺寸
IMAGE_SIZE = 64

# 加载数据
def load_data(data_dir):
    labels = os.listdir(data_dir)
    images = []
    labels = []
    for label in labels:
        path = os.path.join(data_dir, label)
        class_num = labels.index(label)
        for img in os.listdir(path):
            try:
                img_arr = cv2.imread(os.path.join(path, img), cv2.IMREAD_GRAYSCALE)
                resized_img = cv2.resize(img_arr, (IMAGE_SIZE, IMAGE_SIZE))
                images.append(resized_img)
                labels.append(class_num)
            except Exception as e:
                print(e)
    return np.array(images), np.array(labels)

# 加载训练数据
train_images, train_labels = load_data('path/to/training/directory')
test_images, test_labels = load_data('path/to/test/directory')

# 归一化图像数据
train_images = train_images / 255.0
test_images = test_images / 255.0

# 扩展维度以适应CNN
train_images = np.expand_dims(train_images, axis=-1)
test_images = np.expand_dims(test_images, axis=-1)

# 构建CNN模型
model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(IMAGE_SIZE, IMAGE_SIZE, 1)),
    MaxPooling2D(pool_size=(2, 2)),
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D(pool_size=(2, 2)),
    Flatten(),
    # 输出层
    Dense(128, activation='relu'),
    Dense(1, activation='sigmoid')  # 二分类问题
])

# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# 训练模型
history = model.fit(train_images, train_labels, epochs=10, validation_split=0.1)

# 提取特征
train_features = model.predict(train_images)
test_features = model.predict(test_images)

# 使用支持向量机进行分类
svm = SVC(kernel='linear')
svm.fit(train_features, train_labels)

# 预测
predictions = svm.predict(test_features)

# 评估模型
print("Classification Report:")
print(classification_report(test_labels, predictions))
print("Confusion Matrix:")
print(confusion_matrix(test_labels, predictions))

# 绘制训练过程中的损失和准确率曲线
plt.figure(figsize=(12, 4))
plt.subplot(1, 2, 1)
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.legend()
plt.title('Loss Over Time')

plt.subplot(1, 2, 2)
plt.plot(history.history['accuracy'], label='Training Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.legend()
plt.title('Accuracy Over Time')

plt.show()

通过上述代码示例,我们构建了一个简单的医学影像分析模型,该模型能够识别医学影像中的病变区域。卷积神经网络 (CNN) 用于提取图像特征,支持向量机 (SVM) 用于分类。这种方法可以扩展到更复杂的医学影像分析任务,比如使用更深的神经网络架构进行更精细的特征提取。随着技术的进步,未来的医学影像分析系统将能够更准确地识别和定位病变区域,为医生提供有力的辅助诊断工具。

2. 金融风控

  • 案例:通过分析客户的信用记录、交易行为等数据,预测信贷违约的可能性。
  • 技术:逻辑回归用于风险评分,随机森林用于识别关键风险因素。

技术栈

  • Python: 用于编写程序逻辑
  • Pandas: 用于数据处理
  • Scikit-learn: 用于机器学习模型的训练和评估
  • Matplotlib 和 Seaborn: 用于数据可视化

数据集说明

假设我们有一个名为 credit_data.csv 的数据集文件,包含以下字段:

  • customer_id: 客户ID
  • age: 年龄
  • income: 收入
  • credit_score: 信用评分
  • loan_amount: 贷款金额
  • defaulted: 是否违约 (0: 否, 1: 是)

 代码实现

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

# 加载数据
data = pd.read_csv('credit_data.csv')

# 查看数据概览
print(data.head())

# 数据预处理
# 检查缺失值
print(data.isnull().sum())

# 假设我们没有缺失值,如果有需要填充或删除
# data.fillna(data.mean(), inplace=True)  # 填充缺失值

# 特征选择
features = ['age', 'income', 'credit_score', 'loan_amount']
X = data[features]
y = data['defaulted']

# 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

# 逻辑回归模型
logreg = LogisticRegression()
logreg.fit(X_train, y_train)

# 随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)

# 逻辑回归预测
y_pred_logreg = logreg.predict(X_test)

# 随机森林预测
y_pred_rf = rf.predict(X_test)

# 评估逻辑回归模型
print("Logistic Regression Model Evaluation:")
print("Accuracy:", accuracy_score(y_test, y_pred_logreg))
print("Confusion Matrix:\n", confusion_matrix(y_test, y_pred_logreg))
print("Classification Report:\n", classification_report(y_test, y_pred_logreg))

# 评估随机森林模型
print("\nRandom Forest Model Evaluation:")
print("Accuracy:", accuracy_score(y_test, y_pred_rf))
print("Confusion Matrix:\n", confusion_matrix(y_test, y_pred_rf))
print("Classification Report:\n", classification_report(y_test, y_pred_rf))

# 特征重要性分析
feature_importances = rf.feature_importances_
indices = np.argsort(feature_importances)[::-1]

# 打印特征及其重要性
for f in range(X.shape[1]):
    print(f"{f + 1}. feature {features[indices[f]]} ({feature_importances[indices[f]]:.3f})")

# 可视化特征重要性
plt.figure(figsize=(10, 6))
sns.barplot(x=feature_importances[indices], y=np.array(features)[indices])
plt.xlabel("Feature Importance")
plt.ylabel("Features")
plt.title("Feature Importance for Credit Default Prediction")
plt.show()

通过上述代码示例,我们构建了一个简单的金融风控模型,该模型能够预测信贷违约的可能性。逻辑回归被用来进行风险评分,而随机森林则用来识别哪些因素对违约可能性影响最大。这种类型的模型可以进一步优化,例如通过增加更多的特征工程步骤,或者调整模型参数来提高性能。随着更多数据的积累和更深入的数据分析,这些模型能够帮助金融机构更好地管理信贷风险。 

3. 推荐系统

  • 案例:在线购物网站根据用户的历史购买记录和浏览行为,向用户推荐可能感兴趣的商品。
  • 技术:协同过滤用于用户-物品的相似度计算,矩阵分解用于推荐。

技术栈

  • Python: 用于编写程序逻辑
  • Pandas: 用于数据处理
  • Scikit-surprise: 用于构建推荐系统模型
  • NumPy: 用于数值计算

数据集说明

假设我们有一个名为 ratings.csv 的数据集文件,包含以下字段:

  • user_id: 用户ID
  • item_id: 商品ID
  • rating: 用户对该商品的评分 (1-5)
  • timestamp: 评分时间戳

代码实现

import pandas as pd
import numpy as np
from surprise import Dataset, Reader, SVD, KNNBasic
from surprise.model_selection import cross_validate, train_test_split
from surprise import accuracy

# 加载数据
ratings_df = pd.read_csv('ratings.csv')

# 定义数据集
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(ratings_df[['user_id', 'item_id', 'rating']], reader)

# 使用SVD进行矩阵分解
svd = SVD()

# 交叉验证评估SVD模型
cv_results_svd = cross_validate(svd, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

# 使用KNNBasic进行协同过滤
knn = KNNBasic(k=50, sim_options={'name': 'cosine', 'user_based': True})

# 交叉验证评估KNN模型
cv_results_knn = cross_validate(knn, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

# 训练完整数据集
trainset = data.build_full_trainset()
svd.fit(trainset)
knn.fit(trainset)

# 获取所有用户ID和商品ID
all_user_ids = ratings_df['user_id'].unique()
all_item_ids = ratings_df['item_id'].unique()

# 生成推荐
def generate_recommendations(model, user_id, n_items=10):
    """
    生成给定用户的推荐列表。
    :param model: 训练好的推荐系统模型
    :param user_id: 用户ID
    :param n_items: 推荐商品数量
    :return: 推荐商品列表
    """
    user_items = ratings_df[ratings_df['user_id'] == user_id]['item_id']
    all_items = set(all_item_ids) - set(user_items)
    
    recommendations = []
    for item_id in all_items:
        prediction = model.predict(user_id, item_id)
        recommendations.append((item_id, prediction.est))
    
    # 根据预测评分排序
    recommendations.sort(key=lambda x: x[1], reverse=True)
    
    # 返回前n_items个推荐商品
    return recommendations[:n_items]

# 示例:为用户1生成推荐
user_id = 1
recommendations = generate_recommendations(svd, user_id)
print(f"Top 10 recommendations for user {user_id}:")
for item_id, est_rating in recommendations:
    print(f"Item ID: {item_id}, Estimated Rating: {est_rating:.2f}")

通过上述代码示例,我们构建了一个简单的推荐系统,该系统能够根据用户的购买和浏览历史来推荐可能感兴趣的商品。我们使用了协同过滤算法来计算用户-物品的相似度,并使用了矩阵分解技术来生成推荐列表。这种类型的推荐系统可以进一步优化,例如通过增加更多的特征工程步骤,或者结合其他类型的推荐算法(如基于内容的推荐)来提高推荐的多样性和准确性。随着更多用户数据的积累,推荐系统的性能也会不断提高。

4. 自然语言处理 (NLP)

  • 案例:社交媒体情绪分析,通过分析用户发布的内容来了解公众对某个话题的态度。
  • 技术:词袋模型 (Bag of Words) 和TF-IDF用于文本特征提取,支持向量机 (SVM) 或深度学习模型用于分类。

技术栈

  • Python: 用于编写程序逻辑
  • scikit-learn: 用于特征提取和机器学习模型
  • pandas: 用于数据处理
  • nltk: 用于文本预处理

代码示例

# 导入所需的库
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import classification_report, accuracy_score
from nltk.corpus import stopwords
import nltk
nltk.download('stopwords')

# 加载数据
# 假设我们有一个CSV文件,其中包含两列:'comment' 和 'sentiment'
data = pd.read_csv('social_media_comments.csv')

# 数据预处理
# 删除停用词
stop_words = set(stopwords.words('english'))
data['clean_comment'] = data['comment'].apply(lambda x: ' '.join([word for word in x.split() if word not in stop_words]))

# 特征提取
count_vectorizer = CountVectorizer()
X_counts = count_vectorizer.fit_transform(data['clean_comment'])

# 使用TF-IDF转换计数矩阵
tfidf_transformer = TfidfTransformer()
X_tfidf = tfidf_transformer.fit_transform(X_counts)

# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X_tfidf, data['sentiment'], test_size=0.2, random_state=42)

# 构建支持向量机模型
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)

# 预测
y_pred = svm.predict(X_test)

# 评估模型
print("Accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))

# 示例预测
new_comment = ["This product is amazing!"]
new_comment_clean = [' '.join([word for word in comment.split() if word not in stop_words]) for comment in new_comment]
new_comment_counts = count_vectorizer.transform(new_comment_clean)
new_comment_tfidf = tfidf_transformer.transform(new_comment_counts)
predicted_sentiment = svm.predict(new_comment_tfidf)
print("Predicted sentiment:", predicted_sentiment)

通过上述代码示例,我们构建了一个简单的社交媒体情绪分析模型,该模型能够对社交媒体上的评论进行正面或负面情绪的分类。词袋模型 (Bag of Words) 和 TF-IDF 用于提取文本特征,支持向量机 (SVM) 用于分类。这种方法可以扩展到更复杂的情感分析任务,比如使用深度学习模型进行更高级的特征提取和分类。随着技术的进步,未来的情绪分析系统将能够更准确地捕捉到文本中的细微差别,为用户提供更深入的洞察。

四、结论

机器学习在现代社会中扮演着越来越重要的角色,它的应用范围涵盖了几乎所有的行业。随着技术的进步,未来会有更多的应用场景被发掘出来,机器学习将在解决复杂问题和提高生活质量方面发挥更大的作用。

【AI资讯早报】往期回顾:

【AI资讯早报】AI科技前沿资讯概览:2024年7月29日早报

【AI资讯早报】AI科技前沿资讯概览:2024年7月28日早报

【AI资讯早报】AI科技前沿资讯概览:2024年7月27日早报

【AI资讯早报】AI科技前沿资讯概览:2024年7月26日早报

【AI资讯早报】AI科技前沿资讯概览:2024年7月25日早报

人工智能相关文章推荐阅读:

1.【AI在金融科技中的应用】详细介绍人工智能在金融分析、风险管理、智能投顾等方面的最新应用和发展趋势

2.【人工智能】人工智能可解释性和透明度的详细探讨

3.【人工智能】AI开源项目的浪潮:机遇与挑战并存的深度探索

4.【机器学习】FlyFlowerSong【人工智能】资源指南

5.【专家系统】系统地掌握专家系统的基本概念、技术原理、实现方法以及应用实践。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

泰迪智能科技大数据实验室——陕西省高校合作成功案例

近年来,陕西省紧跟国家大数据发展战略,积极推进大数据产业发展。在政策扶持、产业布局、技术创新等方面取得显著成效。泰迪智能科技大数据实验室立足陕西,携手西安邮电大学、西安财经大学、陕西科技大学镐京学院、宝鸡文理学院、渭南师范学院…

编译期链接时共享库搜索路径优先级实验

编译期链接时共享库搜索路径优先级实验 前言实验环境目录说明准备工作单独测试不配置路径默认路径LIBRARY_PATH-L 优先级测试默认路径和LIBRARY_PATH-L和默认路径 DEBUG模式编译器配置详细信息链接器详细信息DEBUG总结验证 默认路径>LIBRARY_PATH原因附录库文件源码主程序源…

bugku-web-ctf-变量1

<?php error_reporting(0); include "flag1.php"; highlight_file(__file__); if(isset($_GET[args])){$args $_GET[args];if(!preg_match("/^\w$/",$args)){die("args error!");}eval("var_dump($$args);"); } ?> error_r…

Apache、nginx

一、Web 1、概述 Web&#xff1a;为⽤户提供的⼀种在互联⽹上浏览信息的服务&#xff0c;Web 服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为⽤户提供各种互联⽹服务&#xff0c;这些服务包括信息浏览服务&#xff0c;以及各种交互式服务&#xff0c;包括聊天、购物…

React基础知识 精简全面 推荐

这篇博文主要对一些刚入门react框架的同学&#xff0c;以及对react基本知识进行巩固的&#xff0c;最后就是精简一下基本知识&#xff0c;以方便自己查看&#xff0c;感谢参考&#xff0c;有问题评论区交流&#xff0c;谢谢。 目录 1.JSX 2.Props 和 State 3.组件生命周期…

“八股文”在实际工作中是助力、阻力还是空谈?

程序员面试中的“八股文”&#xff1a;助力、阻力还是空谈&#xff1f; 在当前的技术行业&#xff0c;程序员的招聘面试过程中频繁出现对“八股文”的考核。“八股文”通常指的是关于编程知识的标准化回答&#xff0c;这些问题在网络上大量流传&#xff0c;并被求职者反复背诵…

Socket通信(C++)

文章目录 什么是SocketSocket通信过程C Socket通信APIint socket(int domain, int type, int protocol);int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);struct sockaddrstruct sockaddr_unstruct sockaddr_in / struct sockaddr_in6 int connect(int …

IP Fabric三层路由

IP Fabric指的是在IP网络基础上建立起来的Overlay隧道技术。即为基于胖树的SpineLeaf拓扑结构的IP Fabric组网图。 在这种组网方式中&#xff0c;任何两台服务器间的通信不超过3台设备&#xff0c;每个Spine和Leaf节点全互连&#xff0c;可以方便地通过扩展Spine节点来实现网络…

Godot学习笔记6——数组和for

一、定义一个数组 在Godot中&#xff0c;定义一个数组的关键字也是“var”&#xff0c;数组里面的内容使用方括号括起来。在没有限定类型时&#xff0c;我们可以放入任何类型的数据&#xff1a; 我们甚至可以将另一个数组放入此数组中&#xff1a; 和其他类型的变量类似&#…

【数据结构】包装类泛型

1.包装类 在 Java 中&#xff0c;由于基本类型不是继承自 Object &#xff0c;为了在泛型代码中可以支持基本类型&#xff0c; Java 给每个基本类型都对应了 一个包装类型。 1.1.基本的数据类型对应的包装类 1.2装箱和拆箱 //装箱int a10;Integer cInteger.valueOf(a);System.…

鸿蒙应用框架开发【简单时钟】 UI框架

简单时钟 介绍 本示例通过使用ohos.display接口以及Canvas组件来实现一个简单的时钟应用。 效果预览 使用说明 1.界面通过setInterval实现周期性实时刷新时间&#xff0c;使用Canvas绘制时钟&#xff0c;指针旋转角度通过计算得出。 例如&#xff1a;"2 * Math.PI / …

Synchronized的锁升级过程是怎样的?

文章目录 一、Synchronized的使用1、修饰实例方法2、修饰静态方法3、修饰代码块4、总结&#xff1a; 二、Monitor1、Java对象头1.1 32 位虚拟机的对象头1.2 64位虚拟机的对象头 2、Mark Word 结构3、Moniter4、Synchronized 字节码5、轻量级锁6、锁膨胀7、自旋优化8、偏向锁9、…

Python for循环迭代原理(迭代器 Iterator)

在使用Python时&#xff0c;我们经常会使用for循环来访问容器对象&#xff08;列表、字符、字典等&#xff09;中的元素。其幕后实际是通过迭代协议来完成的&#xff0c;迭代是一种依次访问对象中元素的方式&#xff0c;for循环在对象上调用iter()函数生成一个迭代器&#xff0…

从后端开发视角认识向量数据库

以ChatGPT为代表的大语言模型应用自问世以来已经火了好几年。在这期间国内外类似产品层出不穷&#xff0c;甚至公司内部团队都开发了好几个AI小助手。刚好最近看了几篇关于大语言模型应用开发的文章&#xff0c;借此了解了一下应用层面的基本知识&#xff0c;也算是接触到了大语…

轻松入门Linux—CentOS,直接拿捏 —/— <2>

一 、权限问题详细讲解 读写的权限可以分别写成 r, w, x 总共有九个权限&#xff0c;可以分组三大组分别是&#xff1a; user&#xff1a;当前文件所属用户的权限 group&#xff1a;与当前文件所属用户同一组的用户权限 others&#xff1a;其他用户的权限 故使用 u, g, o 来代表…

Qt Creator 与 ESP-IDF QEMU 模拟器使用指南

标题: Qt Creator 与 ESP-IDF QEMU 模拟器使用指南 概要: 本文为开发者提供了使用 Qt Creator 和 ESP-IDF QEMU 模拟器进行 ESP32 开发的详细指南&#xff0c;包括环境准备、项目创建和编译、模拟器设置、编程和调试等方面的内容。通过本指南&#xff0c;可以快速上手 Qt Crea…

bean管理

获取bean bean作用域 第三方bean

如何使用虚拟机如何安装 Kali Linux ?

1.下载虚拟机&#xff1a;https://www.virtualbox.org/wiki/Downloads 选择你的系统版本 2.下载kali linux系统镜像&#xff1a;https://www.kali.org/get-kali/#kali-virtual-machines 全部下载完成后&#xff0c;我们会得到以下文件&#xff01; 1.压缩Kali Linux压缩包 2.安…

OpenCV C++的网络实时视频流传输——基于Yolov5 face与TCP实现实时推流的深度学习图像处理客户端与服务器端

前言 在Windows下使用TCP协议&#xff0c;基于OpenCV C与Yolov5实现了一个完整的实时推流的深度学习图像处理客户端与服务器端&#xff0c;为了达到实时传输的效果&#xff0c;客户端使用了多线程的方式实现。深度学习模型是基于onnxruntime的GPU推理。&#xff0c;实现效果如…

跨境电商网红营销SOP流程2.0丨出海笔记

之前几位大神已经在出海笔记分享过网红营销一些很落地的干货&#xff0c;无论是想自己找红人还是找Agency都很有必要了解下这里面的流程的&#xff0c;下面我大概总结了一个SOP2.0 供大家快速上手&#xff1a; 以上是网红营销的SOP&#xff0c;做到以上部分基本60分没问题了…