A method, comprising: receiving, by a device and from one or more data sources, one or more de-identified data sets that include de-identified personal data; receiving, by the device, a request for a feature set of the one or more de-identified data sets, wherein the feature set includes a set of quasi-identifiers included in the de-identified personal data; calculating, by the device, a re-identification risk score for the set of quasi-identifiers; and selectively outputting, by the device and based on the re-identification risk score, one of: actual data, from the one or more de-identified data sets, of the feature set if the re-identification risk score satisfies a condition, or synthetic data, generated by the device from the one or more de-identified data sets, for the feature set, or a combination of the synthetic data and the actual data for the feature set, if the re-identification risk score does not satisfy the condition, and further comprising: determining that the re-identification risk score does not satisfy the condition; identifying a first subset of quasi-identifiers of the set of quasi-identifiers; generating the synthetic data for the first subset of quasi-identifiers based on determining that the re-identification risk score does not satisfy the condition; recalculating the re-identification risk score for the set of quasi-identifiers based on the synthetic data generated for the first subset of quasi-identifiers and actual data for a second subset of quasi-identifiers of the set of quasi-identifiers; determining that the recalculated re-identification risk score satisfies the condition; and outputting the synthetic data generated for the first subset of quasi-identifiers and the actual data for the second subset of quasi-identifiers based on determining that the recalculated re-identification risk score satisfies the condition. receiving, by a device and from one or more data sources, one or more de-identified data sets that include de-identified personal data; receiving, by the device, a request for a feature set of the one or more de-identified data sets, wherein the feature set includes a set of quasi-identifiers included in the de-identified personal data; calculating, by the device, a re-identification risk score for the set of quasi-identifiers; and selectively outputting, by the device and based on the re-identification risk score, one of: actual data, from the one or more de-identified data sets, of the feature set if the re-identification risk score satisfies a condition, or synthetic data, generated by the device from the one or more de-identified data sets, for the feature set, or a combination of the synthetic data and the actual data for the feature set, if the re-identification risk score does not satisfy the condition, and actual data, from the one or more de-identified data sets, of the feature set if the re-identification risk score satisfies a condition, or synthetic data, generated by the device from the one or more de-identified data sets, for the feature set, or a combination of the synthetic data and the actual data for the feature set, if the re-identification risk score does not satisfy the condition, and further comprising: determining that the re-identification risk score does not satisfy the condition; identifying a first subset of quasi-identifiers of the set of quasi-identifiers; generating the synthetic data for the first subset of quasi-identifiers based on determining that the re-identification risk score does not satisfy the condition; recalculating the re-identification risk score for the set of quasi-identifiers based on the synthetic data generated for the first subset of quasi-identifiers and actual data for a second subset of quasi-identifiers of the set of quasi-identifiers; determining that the recalculated re-identification risk score satisfies the condition; and outputting the synthetic data generated for the first subset of quasi-identifiers and the actual data for the second subset of quasi-identifiers based on determining that the recalculated re-identification risk score satisfies the condition. determining that the re-identification risk score does not satisfy the condition; identifying a first subset of quasi-identifiers of the set of quasi-identifiers; generating the synthetic data for the first subset of quasi-identifiers based on determining that the re-identification risk score does not satisfy the condition; recalculating the re-identification risk score for the set of quasi-identifiers based on the synthetic data generated for the first subset of quasi-identifiers and actual data for a second subset of quasi-identifiers of the set of quasi-identifiers; determining that the recalculated re-identification risk score satisfies the condition; and outputting the synthetic data generated for the first subset of quasi-identifiers and the actual data for the second subset of quasi-identifiers based on determining that the recalculated re-identification risk score satisfies the condition.