PDF合併工具

PDF 合併 / PDF Merger

在瀏覽器內合併,不會把 PDF 上傳到伺服器。檔案很大/很多頁時會比較吃記憶體。
未選擇任何檔案
拖曳調整順序(上 → 下 = 先 → 後):

    PDF合併工具說明

    免費 PDF 合併工具(免上傳、拖曳排序、快速下載)Browser-based
    這是一個線上 PDF 合併工具,可直接在瀏覽器內將多個 PDF 合併成一個檔案:不需安裝、免註冊、免費,並支援拖曳排序與自訂輸出檔名。
    主要特色
    免上傳、隱私友善:所有處理在你的瀏覽器本機完成,不會把 PDF 上傳到伺服器。
    拖曳排序:可直接拖拉清單調整順序(上 → 下 = 先 → 後)。
    自訂檔名:輸出檔名可自由命名(預設 merged.pdf)。
    適用情境:合併報告、論文附件、合約、掃描文件、教學講義等。
    使用方式(30 秒完成)
    1
    在上方工具選取多個 PDF 檔案。
    2
    拖曳清單,調整合併順序。
    3
    (可選)輸入輸出檔名。
    4
    按「合併下載」,取得合併後 PDF。

    Free PDF Merger (No Upload, Drag to Reorder, Instant Download)
    A free online PDF merge tool that runs in your browser: no installation, no sign-up, drag-and-drop ordering, and a custom output filename.
    Key features
    No upload: processed locally in your browser (privacy-friendly).
    Drag to reorder: top → bottom = first → last.
    Custom filename: default merged.pdf.

    2024年6月2日 星期日

    [文章轉貼] 通透! !特徵和標籤處理全總結! !

    文章轉自微信公眾號:機器學習與人工智慧AI 

    文章原始連結:https://mp.weixin.qq.com/s/qLPG2YJHNgA0oDn19Ex6NA

    大家好!咱們今兒來聊聊特徵和標籤處理

    大家都知道,在整體的演算法專案中,資料處理占到龐大的工程量。

    特徵工程的重要性不言而喻的,從原始資料中提取關鍵資訊、降維去噪,提高模型效能。

    良好的特徵選擇和建構有助於提高模型泛化能力和解釋性。標籤處理確保目標變數格式正確,影響模型學習的準確性。

    下面,從特徵工程、特徵、標籤處理的細節及重要性做一個詳細的介紹:

    特徵工程

    特徵工程是機器學習中非常關鍵的一步,它包括對原始資料進行轉換、組合、選擇等操作,以提取對模型建模更有意義的特徵。

    好的特徵工程能夠幫助模型更好地捕捉資料的模式,並提高模型效能。

    1. 特徵提取: 從原始資料中抽取出有用的信息。例如,從文字中提取關鍵字,從圖像中提取紋理特徵等。

    2. 特徵轉換: 對原始特徵進行變換,使其更適合模型。例如,對數轉換、標準化、歸一化等。

    3. 特徵選擇: 選擇對模型建模最有影響的特徵,去除冗餘資訊。可以使用統計方法、模型權重、遞歸特徵消除等來選擇。

    特徵

    特徵是輸入模型的變數或屬性,用來描述樣本的特性。在機器學習中,特徵是模型學習的關鍵。特徵的選擇和建構需要根據特定問題和資料集來進行,以確保模型具有足夠的表達能力。

    標籤處理

    標籤是我們要預測的目標變數。在標籤處理中,通常需要進行編碼或轉換,使其適合模型的訓練。對於分類問題,通常使用獨熱編碼(One-Hot Encoding)等方式處理標籤。

    一個完整案例

    使用開源資料集Iris(鳶尾花)進行分類,預測花的種類(setosa、versicolor、virginica)。

    導入庫:

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

    載入資料集:

    from sklearn.datasets import load_iris
    iris = load_iris()
    X = pd.DataFrame(iris.data, columns=iris.feature_names)
    y = pd.DataFrame(iris.target, columns=['species'])

    特徵處理:

    # 特征选择
    selected_features = ['sepal length (cm)''sepal width (cm)']
    X = X[selected_features]

    # 特征转换
    scaler = StandardScaler()
    X = scaler.fit_transform(X)

    標籤處理:

    label_encoder = LabelEncoder()
    y = label_encoder.fit_transform(y)

    拆分資料集:

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    建立模型:

    model = RandomForestClassifier(random_state=42)
    model.fit(X_train, y_train)

    模型評估:

    y_pred = model.predict(X_test)
    accuracy = accuracy_score(y_test, y_pred)
    confusion_mat = confusion_matrix(y_test, y_pred)

    畫圖:

    plt.figure(figsize=(86))
    sns.heatmap(confusion_mat, annot=True, fmt='d', cmap='Blues', xticklabels=iris.target_names, yticklabels=iris.target_names)
    plt.xlabel('Predicted')
    plt.ylabel('True')
    plt.title('Confusion Matrix')
    plt.show()

    在整個的案例中,特徵工程包括了特徵選擇和特徵轉換,標籤處理使用了標籤編碼。

    透過拆分資料集、建立模型和模型評估,最終畫出了混淆矩陣圖。



    2024年5月31日 星期五

    [文章轉貼] 通透! !監督學習與無監督學習全總結!

     文章轉自微信公眾號:機器學習與人工智慧AI 

    文章原始連結:https://mp.weixin.qq.com/s/-h22tpCi-ewjymG1INcRng

    咱們今天詳細資訊的總結一下有監督和無監督演算法的區別和聯繫! !

    監督學習和無監督學習是機器學習中兩種基本的學習範式,它們之間的主要區別在於訓練資料的標籤資訊是否提供。

    監督學習(Supervised Learning):

    1. 標籤資訊: 監督學習使用帶有標籤的訓練資料。這意味著每個訓練樣本都有一個相關聯的標籤,即對應的輸出或目標值。
    2. 任務類型: 監督學習用於解決分類和回歸等任務。在分類任務中,模型預測輸入資料屬於哪個類別;而在迴歸任務中,模型預測一個連續值。
    3. 學習過程: 模型透過學習輸入與對應標籤之間的關係來進行訓練。演算法透過最小化預測值與實際標籤之間的差距來優化模型。
    4. 例: 支援向量機(SVM)、決策樹、神經網路等都是監督學習的例子。

    無監督學習(Unsupervised Learning)

    1. 標籤資訊: 無監督學習使用沒有標籤的訓練資料。訓練樣本不包含對應的輸出或目標值。

    2. 任務類型: 無監督學習用於聚類、降維和關聯規則挖掘等任務。在聚類任務中,演算法試圖將資料集中的樣本分為不同的群組;在降維任務中,演算法試圖減少資料的維度;在關聯規則挖掘中,演算法試圖找到資料中的關聯性。

    3. 學習過程: 模型在沒有明確目標的情況下,自動發現資料中的結構和模式。它不需要事先知道正確的輸出。

    4. 例:  K均值聚類、主成分分析(PCA)、Apriori演算法等都是無監督學習的例子。

    差別

    1. 數據標籤: 監督學習使用標籤的數據,而無監督學習使用沒有標籤的數據。

    2. 任務類型: 監督學習用於分類和回歸等標籤任務,而無監督學習用於聚類、降維和關聯規則挖掘等無標籤任務。

    3. 學習過程: 監督式學習著重於模型預測與真實標籤的關係,而無監督學習則著重於發現資料中的模式和結構,不依賴事先提供的輸出資訊。

    監督學習演算法範例

    支援向量機(Support Vector Machine,SVM) 支援向量機是一種用於分類和迴歸分析的監督學習演算法。其基本思想是找到一個超平面,該超平面能夠將資料集劃分為兩個類別,並且使得兩個類別之間的間隔最大。支援向量機在高維空間中透過資料點之間的最優超平面進行劃分,從而在低維空間中實現非線性分類。

    給定一個訓練樣本集 ,其中  是特徵, 是類別標籤(+1 或-1),SVM 的目標是找到一個超平面 ,使得對於所有的 ,有 

    此外,要最大化間隔 

    完整程式碼

    # 导入必要的库
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn import datasets
    from sklearn.model_selection import train_test_split
    from sklearn.svm import SVC

    # 生成示例数据集
    iris = datasets.load_iris()
    X = iris.data[:, :2]  # 只使用前两个特征,便于可视化
    y = iris.target

    # 将数据集分为训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    # 创建SVM模型
    svm_model = SVC(kernel='linear', C=1)
    svm_model.fit(X_train, y_train)

    # 绘制决策边界和支持向量
    def plot_decision_boundary(model, X, y):
        h = .02  # 步长
        x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
        y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
        xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
        
        Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
        Z = Z.reshape(xx.shape)
        
        plt.contourf(xx, yy, Z, cmap=plt.cm.coolwarm, alpha=0.8)
        plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.coolwarm)
        plt.xlabel('Feature 1')
        plt.ylabel('Feature 2')
        plt.title('SVM Decision Boundary')
        plt.show()

    # 绘制决策边界和支持向量
    plot_decision_boundary(svm_model, X_test, y_test)

    使用了Iris資料集的前兩個特徵,創建了一個線性核的支援向量機模型,並繪製了決策邊界以及支援向量。圖形展示了SVM是如何找到一個最大間隔的超平面來分割不同類別的資料點的。



    無監督學習演算法

    K均值聚類(K-Means Clustering)

    K均值聚類是一種迭代優化的聚類演算法,其目標是將資料集劃分為K個簇,每個簇內的資料點相似度較高,而不同簇之間的相似度較低。演算法的基本概念是透過迭代更新資料點與簇中心之間的距離,將資料點分配到距離最近的簇,然後更新每個簇的中心。

    完整程式碼

    # 导入必要的库
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.datasets import make_blobs
    from sklearn.cluster import KMeans

    # 生成示例数据集
    X, y = make_blobs(n_samples=300, centers=4, random_state=42, cluster_std=1.0)

    # 可视化原始数据
    plt.scatter(X[:, 0], X[:, 1], c='gray', s=50, alpha=0.8)
    plt.xlabel('Feature 1')
    plt.ylabel('Feature 2')
    plt.title('Original Data')
    plt.show()

    # 创建K均值聚类模型
    kmeans = KMeans(n_clusters=4, random_state=42)
    kmeans.fit(X)

    # 获取簇中心
    centers = kmeans.cluster_centers_

    # 预测每个数据点的簇标签
    labels = kmeans.predict(X)

    # 可视化K均值聚类结果
    plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', s=50, alpha=0.8)
    plt.scatter(centers[:, 0], centers[:, 1], c='red', marker='X', s=200, label='Cluster Centers')
    plt.xlabel('Feature 1')
    plt.ylabel('Feature 2')
    plt.title('K-Means Clustering')
    plt.legend()
    plt.show()

    我們使用make_blobs產生一個包含4個簇的合成資料集。

    然後,使用K均值聚類演算法將資料點分為4個簇,並繪製了原始資料和K均值聚類的結果。

    圖形清楚地展示了K均值聚類是如何將資料點分組為具有相似特徵的簇的。